From a7b7a4934d28c4873edace3a042076bec7d318cb Mon Sep 17 00:00:00 2001 From: Laurent Bartholdi Date: Sat, 12 Oct 2024 22:38:59 +0200 Subject: [PATCH] Replaced fflas by tarball --- deps/build.jl | 4 +- .../AUTHORS | 1 - .../COPYING | 0 .../COPYING.LESSER | 0 .../ChangeLog | 0 .../INSTALL | 0 .../Makefile.am | 2 +- deps/fflas-ffpack-2.5.0/Makefile.in | 1045 + .../README.md | 18 +- .../{fflas-ffpack => fflas-ffpack-2.5.0}/TODO | 0 deps/fflas-ffpack-2.5.0/aclocal.m4 | 1524 ++ .../autotune/Makefile.am | 0 deps/fflas-ffpack-2.5.0/autotune/Makefile.in | 1027 + .../autotune/arithprog.C | 0 .../autotune/charpoly.C | 0 .../autotune/fsyrk.C | 0 .../autotune/fsytrf.C | 0 .../autotune/ftrtri.C | 0 .../autotune/pluq.C | 0 .../autotune/tune_charpoly.sh | 0 .../autotune/tune_fgemm.sh | 0 .../autotune/tune_fsyrk.sh | 0 .../autotune/tune_fsytrf.sh | 0 .../autotune/tune_ftrtri.sh | 0 .../autotune/tune_pluq.sh | 0 .../autotune/winograd.C | 0 .../benchmarks/Makefile.am | 5 +- .../fflas-ffpack-2.5.0/benchmarks/Makefile.in | 1321 + .../benchmarks/benchmark-charpoly-mp.C | 0 .../benchmarks/benchmark-charpoly.C | 0 .../benchmarks/benchmark-checkers.C | 0 .../benchmarks/benchmark-dgemm.C | 0 .../benchmarks/benchmark-dgetrf.C | 0 .../benchmarks/benchmark-dgetri.C | 0 .../benchmarks/benchmark-dsytrf.C | 0 .../benchmarks/benchmark-dtrsm.C | 0 .../benchmarks/benchmark-dtrtri.C | 0 .../benchmarks/benchmark-fadd-lvl2.C | 0 .../benchmarks/benchmark-fdot.C | 0 .../benchmarks/benchmark-fgemm-mp.C | 5 +- .../benchmarks/benchmark-fgemm-rns.C | 0 .../benchmarks/benchmark-fgemm.C | 9 +- .../benchmarks/benchmark-fgemv-mp.C | 50 +- .../benchmarks/benchmark-fgemv.C | 0 .../benchmarks/benchmark-fgesv.C | 0 .../benchmarks/benchmark-fsyr2k.C | 0 .../benchmarks/benchmark-fsyrk.C | 0 .../benchmarks/benchmark-fsytrf.C | 0 .../benchmarks/benchmark-ftrsm-mp.C | 0 .../benchmarks/benchmark-ftrsm.C | 0 .../benchmarks/benchmark-ftrsv.C | 0 .../benchmarks/benchmark-ftrtri.C | 0 .../benchmarks/benchmark-inverse.C | 0 .../benchmarks/benchmark-lqup-mp.C | 11 +- .../benchmarks/benchmark-lqup.C | 0 .../benchmarks/benchmark-pluq.C | 12 +- .../benchmarks/benchmark-quasisep.C | 28 +- .../benchmarks/benchmark-storage-transpose.C | 0 .../benchmarks/benchmark-wino.C | 0 deps/fflas-ffpack-2.5.0/build-aux/ar-lib | 270 + deps/fflas-ffpack-2.5.0/build-aux/compile | 348 + .../fflas-ffpack-2.5.0/build-aux/config.guess | 1480 ++ deps/fflas-ffpack-2.5.0/build-aux/config.sub | 1801 ++ deps/fflas-ffpack-2.5.0/build-aux/depcomp | 791 + deps/fflas-ffpack-2.5.0/build-aux/install-sh | 518 + deps/fflas-ffpack-2.5.0/build-aux/ltmain.sh | 11251 ++++++++ deps/fflas-ffpack-2.5.0/build-aux/missing | 215 + deps/fflas-ffpack-2.5.0/build-aux/test-driver | 148 + deps/fflas-ffpack-2.5.0/config.h.in | 145 + deps/fflas-ffpack-2.5.0/configure | 21496 ++++++++++++++++ .../configure.ac | 7 +- .../doc/Doxyfile | 0 .../doc/DoxyfileDev | 0 .../doc/Makefile.am | 0 deps/fflas-ffpack-2.5.0/doc/Makefile.in | 560 + .../doc/fflas-ffpack.html | 0 .../doc/mainpage.doxy | 0 .../examples/Makefile.am | 0 deps/fflas-ffpack-2.5.0/examples/Makefile.in | 865 + .../examples/charpoly.C | 0 .../examples/det.C | 0 .../examples/matmul.C | 0 .../examples/pluq.C | 0 .../examples/rank.C | 0 .../examples/solve.C | 0 .../fflas-ffpack-config.in | 2 +- .../fflas-ffpack.pc.in | 6 +- .../fflas-ffpack/Makefile.am | 0 .../fflas-ffpack/Makefile.in | 752 + .../fflas-ffpack/checkers/Makefile.am | 0 .../fflas-ffpack/checkers/Makefile.in | 643 + .../checkers/checker_charpoly.inl | 0 .../fflas-ffpack/checkers/checker_det.inl | 0 .../fflas-ffpack/checkers/checker_empty.h | 0 .../fflas-ffpack/checkers/checker_fgemm.inl | 0 .../fflas-ffpack/checkers/checker_ftrsm.inl | 0 .../fflas-ffpack/checkers/checker_invert.inl | 0 .../fflas-ffpack/checkers/checker_pluq.inl | 0 .../fflas-ffpack/checkers/checkers.doxy | 0 .../fflas-ffpack/checkers/checkers_fflas.h | 0 .../fflas-ffpack/checkers/checkers_fflas.inl | 0 .../fflas-ffpack/checkers/checkers_ffpack.h | 0 .../fflas-ffpack/checkers/checkers_ffpack.inl | 0 .../fflas-ffpack/config-blas.h | 12 +- deps/fflas-ffpack-2.5.0/fflas-ffpack/config.h | 225 + .../fflas-ffpack/fflas-ffpack-config.h | 0 .../fflas-ffpack-default-thresholds.h | 0 .../fflas-ffpack/fflas-ffpack-thresholds.h | 1 + .../fflas-ffpack/fflas-ffpack.doxy | 0 .../fflas-ffpack/fflas-ffpack.h | 0 .../fflas-ffpack/fflas/Makefile.am | 0 .../fflas-ffpack/fflas/Makefile.in | 792 + .../fflas-ffpack/fflas/fflas.doxy | 0 .../fflas-ffpack/fflas/fflas.h | 0 .../fflas-ffpack/fflas/fflas_bounds.inl | 0 .../fflas-ffpack/fflas/fflas_enum.h | 0 .../fflas-ffpack/fflas/fflas_fadd.h | 0 .../fflas-ffpack/fflas/fflas_fadd.inl | 0 .../fflas-ffpack/fflas/fflas_fassign.h | 0 .../fflas-ffpack/fflas/fflas_fassign.inl | 0 .../fflas-ffpack/fflas/fflas_faxpy.inl | 0 .../fflas-ffpack/fflas/fflas_fdot.inl | 0 .../fflas-ffpack/fflas/fflas_fgemm.inl | 4 +- .../fflas/fflas_fgemm/Makefile.am | 0 .../fflas/fflas_fgemm/Makefile.in | 641 + .../fflas/fflas_fgemm/fgemm_classical.inl | 0 .../fflas/fflas_fgemm/fgemm_classical_mp.inl | 0 .../fflas/fflas_fgemm/fgemm_winograd.inl | 0 .../fflas/fflas_fgemm/matmul.doxy | 0 .../fflas/fflas_fgemm/schedule_bini.inl | 0 .../fflas/fflas_fgemm/schedule_winograd.inl | 0 .../fflas_fgemm/schedule_winograd_acc.inl | 0 .../fflas_fgemm/schedule_winograd_acc_ip.inl | 0 .../fflas_fgemm/schedule_winograd_ip.inl | 0 .../fflas-ffpack/fflas/fflas_fgemv.inl | 2 +- .../fflas-ffpack/fflas/fflas_fgemv_mp.inl | 0 .../fflas-ffpack/fflas/fflas_fger.inl | 0 .../fflas-ffpack/fflas/fflas_fger_mp.inl | 0 .../fflas-ffpack/fflas/fflas_freduce.h | 0 .../fflas-ffpack/fflas/fflas_freduce.inl | 0 .../fflas-ffpack/fflas/fflas_freduce_mp.inl | 0 .../fflas-ffpack/fflas/fflas_freivalds.inl | 0 .../fflas-ffpack/fflas/fflas_fscal.h | 0 .../fflas-ffpack/fflas/fflas_fscal.inl | 0 .../fflas-ffpack/fflas/fflas_fscal_mp.inl | 0 .../fflas-ffpack/fflas/fflas_fsyr2k.inl | 2 +- .../fflas-ffpack/fflas/fflas_fsyrk.inl | 0 .../fflas/fflas_fsyrk_strassen.inl | 0 .../fflas-ffpack/fflas/fflas_ftrmm.inl | 0 .../fflas-ffpack/fflas/fflas_ftrmm_src.inl | 0 .../fflas-ffpack/fflas/fflas_ftrsm.inl | 0 .../fflas-ffpack/fflas/fflas_ftrsm_mp.inl | 0 .../fflas-ffpack/fflas/fflas_ftrsm_src.inl | 0 .../fflas-ffpack/fflas/fflas_ftrsv.inl | 0 .../fflas-ffpack/fflas/fflas_helpers.inl | 0 .../fflas/fflas_igemm/Makefile.am | 0 .../fflas/fflas_igemm/Makefile.in | 638 + .../fflas-ffpack/fflas/fflas_igemm/igemm.doxy | 0 .../fflas-ffpack/fflas/fflas_igemm/igemm.h | 0 .../fflas-ffpack/fflas/fflas_igemm/igemm.inl | 0 .../fflas/fflas_igemm/igemm_kernels.h | 0 .../fflas/fflas_igemm/igemm_kernels.inl | 0 .../fflas/fflas_igemm/igemm_tools.h | 0 .../fflas/fflas_igemm/igemm_tools.inl | 0 .../fflas-ffpack/fflas/fflas_level1.inl | 0 .../fflas-ffpack/fflas/fflas_level2.inl | 0 .../fflas-ffpack/fflas/fflas_level3.inl | 0 .../fflas-ffpack/fflas/fflas_pfgemm.inl | 0 .../fflas-ffpack/fflas/fflas_pftrsm.inl | 0 .../fflas-ffpack/fflas/fflas_simd.h | 14 - .../fflas-ffpack/fflas/fflas_simd/Makefile.am | 0 .../fflas-ffpack/fflas/fflas_simd/Makefile.in | 657 + .../fflas-ffpack/fflas/fflas_simd/simd.doxy | 0 .../fflas-ffpack/fflas/fflas_simd/simd128.inl | 0 .../fflas/fflas_simd/simd128_double.inl | 0 .../fflas/fflas_simd/simd128_float.inl | 24 +- .../fflas/fflas_simd/simd128_int16.inl | 0 .../fflas/fflas_simd/simd128_int32.inl | 0 .../fflas/fflas_simd/simd128_int64.inl | 0 .../fflas-ffpack/fflas/fflas_simd/simd256.inl | 0 .../fflas/fflas_simd/simd256_double.inl | 0 .../fflas/fflas_simd/simd256_float.inl | 0 .../fflas/fflas_simd/simd256_int16.inl | 0 .../fflas/fflas_simd/simd256_int32.inl | 0 .../fflas/fflas_simd/simd256_int64.inl | 0 .../fflas-ffpack/fflas/fflas_simd/simd512.inl | 0 .../fflas/fflas_simd/simd512_double.inl | 0 .../fflas/fflas_simd/simd512_float.inl | 0 .../fflas/fflas_simd/simd512_int32.inl | 0 .../fflas/fflas_simd/simd512_int64.inl | 0 .../fflas/fflas_simd/simd_modular.inl | 0 .../fflas-ffpack/fflas/fflas_sparse.h | 0 .../fflas-ffpack/fflas/fflas_sparse.inl | 0 .../fflas/fflas_sparse/Makefile.am | 0 .../fflas/fflas_sparse/Makefile.in | 757 + .../fflas-ffpack/fflas/fflas_sparse/coo.h | 0 .../fflas/fflas_sparse/coo/Makefile.am | 0 .../fflas/fflas_sparse/coo/Makefile.in | 634 + .../fflas/fflas_sparse/coo/coo_spmm.inl | 0 .../fflas/fflas_sparse/coo/coo_spmv.inl | 0 .../fflas/fflas_sparse/coo/coo_utils.inl | 0 .../fflas-ffpack/fflas/fflas_sparse/csr.h | 0 .../fflas/fflas_sparse/csr/Makefile.am | 0 .../fflas/fflas_sparse/csr/Makefile.in | 636 + .../fflas/fflas_sparse/csr/csr_pspmm.inl | 0 .../fflas/fflas_sparse/csr/csr_pspmv.inl | 0 .../fflas/fflas_sparse/csr/csr_spmm.inl | 0 .../fflas/fflas_sparse/csr/csr_spmv.inl | 0 .../fflas/fflas_sparse/csr/csr_utils.inl | 0 .../fflas-ffpack/fflas/fflas_sparse/csr_hyb.h | 0 .../fflas/fflas_sparse/csr_hyb/Makefile.am | 0 .../fflas/fflas_sparse/csr_hyb/Makefile.in | 636 + .../fflas_sparse/csr_hyb/csr_hyb_pspmm.inl | 0 .../fflas_sparse/csr_hyb/csr_hyb_pspmv.inl | 0 .../fflas_sparse/csr_hyb/csr_hyb_spmm.inl | 0 .../fflas_sparse/csr_hyb/csr_hyb_spmv.inl | 0 .../fflas_sparse/csr_hyb/csr_hyb_utils.inl | 0 .../fflas-ffpack/fflas/fflas_sparse/ell.h | 0 .../fflas/fflas_sparse/ell/Makefile.am | 0 .../fflas/fflas_sparse/ell/Makefile.in | 636 + .../fflas/fflas_sparse/ell/ell_pspmm.inl | 0 .../fflas/fflas_sparse/ell/ell_pspmv.inl | 0 .../fflas/fflas_sparse/ell/ell_spmm.inl | 0 .../fflas/fflas_sparse/ell/ell_spmv.inl | 0 .../fflas/fflas_sparse/ell/ell_utils.inl | 0 .../fflas/fflas_sparse/ell_simd.h | 0 .../fflas/fflas_sparse/ell_simd/Makefile.am | 0 .../fflas/fflas_sparse/ell_simd/Makefile.in | 634 + .../fflas_sparse/ell_simd/ell_simd_pspmv.inl | 0 .../fflas_sparse/ell_simd/ell_simd_spmv.inl | 0 .../fflas_sparse/ell_simd/ell_simd_utils.inl | 0 .../fflas-ffpack/fflas/fflas_sparse/hyb_zo.h | 0 .../fflas/fflas_sparse/hyb_zo/Makefile.am | 0 .../fflas/fflas_sparse/hyb_zo/Makefile.in | 636 + .../fflas_sparse/hyb_zo/hyb_zo_pspmm.inl | 0 .../fflas_sparse/hyb_zo/hyb_zo_pspmv.inl | 0 .../fflas/fflas_sparse/hyb_zo/hyb_zo_spmm.inl | 0 .../fflas/fflas_sparse/hyb_zo/hyb_zo_spmv.inl | 0 .../fflas_sparse/hyb_zo/hyb_zo_utils.inl | 0 .../fflas/fflas_sparse/read_sparse.h | 0 .../fflas-ffpack/fflas/fflas_sparse/sell.h | 0 .../fflas/fflas_sparse/sell/Makefile.am | 0 .../fflas/fflas_sparse/sell/Makefile.in | 634 + .../fflas/fflas_sparse/sell/sell_pspmv.inl | 0 .../fflas/fflas_sparse/sell/sell_spmv.inl | 0 .../fflas/fflas_sparse/sell/sell_utils.inl | 0 .../fflas/fflas_sparse/sparse_matrix_traits.h | 0 .../fflas-ffpack/fflas/fflas_sparse/utils.h | 0 .../fflas-ffpack/fflas/fflas_transpose.h | 0 .../fflas-ffpack/ffpack/Makefile.am | 1 - .../fflas-ffpack/ffpack/Makefile.in | 662 + .../fflas-ffpack/ffpack/ffpack.doxy | 0 .../fflas-ffpack/ffpack/ffpack.h | 173 +- .../fflas-ffpack/ffpack/ffpack.inl | 0 .../fflas-ffpack/ffpack/ffpack_bruhatgen.inl | 0 .../fflas-ffpack/ffpack/ffpack_charpoly.inl | 0 .../ffpack/ffpack_charpoly_danilevski.inl | 0 .../ffpack/ffpack_charpoly_kgfast.inl | 0 .../ffpack_charpoly_kgfastgeneralized.inl | 0 .../ffpack/ffpack_charpoly_kglu.inl | 0 .../ffpack/ffpack_charpoly_mp.inl | 0 .../fflas-ffpack/ffpack/ffpack_det_mp.inl | 0 .../ffpack/ffpack_echelonforms.inl | 0 .../fflas-ffpack/ffpack/ffpack_fgesv.inl | 0 .../fflas-ffpack/ffpack/ffpack_fgetrs.inl | 0 .../fflas-ffpack/ffpack/ffpack_frobenius.inl | 0 .../fflas-ffpack/ffpack/ffpack_fsytrf.inl | 0 .../fflas-ffpack/ffpack/ffpack_ftrssyr2k.inl | 0 .../fflas-ffpack/ffpack/ffpack_ftrstr.inl | 0 .../fflas-ffpack/ffpack/ffpack_ftrtr.inl | 0 .../fflas-ffpack/ffpack/ffpack_invert.inl | 0 .../fflas-ffpack/ffpack/ffpack_krylovelim.inl | 0 .../fflas-ffpack/ffpack/ffpack_ludivine.inl | 0 .../ffpack/ffpack_ludivine_mp.inl | 0 .../fflas-ffpack/ffpack/ffpack_minpoly.inl | 0 .../ffpack/ffpack_permutation.inl | 0 .../fflas-ffpack/ffpack/ffpack_pluq.inl | 0 .../fflas-ffpack/ffpack/ffpack_pluq_mp.inl | 0 .../fflas-ffpack/ffpack/ffpack_ppluq.inl | 0 .../ffpack/ffpack_rankprofiles.inl | 0 .../fflas-ffpack/field/Makefile.am | 0 .../fflas-ffpack/field/Makefile.in | 643 + .../fflas-ffpack/field/field-traits.h | 0 .../fflas-ffpack/field/field.doxy | 0 .../fflas-ffpack/field/rns-double-elt.h | 0 .../fflas-ffpack/field/rns-double-recint.inl | 0 .../fflas-ffpack/field/rns-double.h | 0 .../fflas-ffpack/field/rns-double.inl | 0 .../fflas-ffpack/field/rns-integer-mod.h | 0 .../fflas-ffpack/field/rns-integer.h | 0 .../fflas-ffpack/field/rns.h | 0 .../fflas-ffpack/field/rns.inl | 0 .../fflas-ffpack/interfaces/Makefile.am | 0 .../fflas-ffpack/interfaces/Makefile.in | 687 + .../fflas-ffpack/interfaces/interfaces.doxy | 0 .../fflas-ffpack/interfaces/libs/Makefile.am | 0 .../fflas-ffpack/interfaces/libs/Makefile.in | 881 + .../interfaces/libs/fflas_L1_inst.C | 0 .../interfaces/libs/fflas_L1_inst.h | 0 .../interfaces/libs/fflas_L1_inst_implem.inl | 0 .../interfaces/libs/fflas_L2_inst.C | 0 .../interfaces/libs/fflas_L2_inst.h | 0 .../interfaces/libs/fflas_L2_inst_implem.inl | 0 .../interfaces/libs/fflas_L3_inst.C | 0 .../interfaces/libs/fflas_L3_inst.h | 0 .../interfaces/libs/fflas_L3_inst_implem.inl | 0 .../fflas-ffpack/interfaces/libs/fflas_c.h | 0 .../fflas-ffpack/interfaces/libs/fflas_lvl1.C | 0 .../fflas-ffpack/interfaces/libs/fflas_lvl2.C | 0 .../fflas-ffpack/interfaces/libs/fflas_lvl3.C | 0 .../interfaces/libs/fflas_sparse.C | 0 .../fflas-ffpack/interfaces/libs/ffpack.C | 0 .../fflas-ffpack/interfaces/libs/ffpack_c.h | 0 .../interfaces/libs/ffpack_inst.C | 0 .../interfaces/libs/ffpack_inst.h | 0 .../interfaces/libs/ffpack_inst_implem.inl | 0 .../fflas-ffpack/paladin/Makefile.am | 0 .../fflas-ffpack/paladin/Makefile.in | 633 + .../fflas-ffpack/paladin/blockcuts.inl | 0 .../fflas-ffpack/paladin/fflas_plevel1.h | 0 .../fflas-ffpack/paladin/kaapi_routines.inl | 0 .../fflas-ffpack/paladin/parallel.h | 0 .../fflas-ffpack/paladin/pfgemm_variants.inl | 0 .../fflas-ffpack/paladin/pfgemv.inl | 0 .../fflas-ffpack/utils/Makefile.am | 0 .../fflas-ffpack/utils/Makefile.in | 645 + .../fflas-ffpack/utils/Matio.h | 0 .../fflas-ffpack/utils/align-allocator.h | 0 .../fflas-ffpack/utils/args-parser.h | 0 .../fflas-ffpack/utils/bit_manipulation.h | 0 .../fflas-ffpack/utils/cast.h | 0 .../fflas-ffpack/utils/debug.h | 0 .../fflas-ffpack/utils/fflas_intrinsic.h | 0 .../fflas-ffpack/utils/fflas_io.h | 0 .../fflas-ffpack/utils/fflas_memory.h | 0 .../fflas-ffpack/utils/fflas_randommatrix.h | 0 .../fflas-ffpack/utils/flimits.h | 0 .../fflas-ffpack/utils/test-utils.h | 0 .../fflas-ffpack/utils/timer.h | 0 .../macros/CodeChunk/Makefile.am | 0 .../macros/CodeChunk/Makefile.in | 514 + .../macros/CodeChunk/cblas.C | 0 .../macros/CodeChunk/clapack.C | 0 .../macros/CodeChunk/cuda.C | 0 .../macros/CodeChunk/fblas.C | 0 .../macros/CodeChunk/lapack.C | 0 .../macros/Makefile.am | 0 deps/fflas-ffpack-2.5.0/macros/Makefile.in | 688 + .../macros/ax_cxx_compile_stdcxx_11.m4 | 0 .../macros/common.m4 | 10 + .../macros/config-header.m4 | 0 .../macros/debug.m4 | 75 +- .../macros/fflas-ffpack-blas.m4 | 75 +- .../macros/fflas-ffpack-doc.m4 | 0 .../macros/fflas-ffpack-misc.m4 | 0 .../macros/fflas-ffpack-precompile.m4 | 0 .../macros/givaro-check.m4 | 18 + deps/fflas-ffpack-2.5.0/macros/libtool.m4 | 8394 ++++++ deps/fflas-ffpack-2.5.0/macros/ltoptions.m4 | 437 + deps/fflas-ffpack-2.5.0/macros/ltsugar.m4 | 124 + deps/fflas-ffpack-2.5.0/macros/ltversion.m4 | 23 + deps/fflas-ffpack-2.5.0/macros/lt~obsolete.m4 | 99 + .../macros/mkl-check.m4 | 0 .../macros/omp-check.m4 | 23 +- .../tests/Makefile.am | 2 - deps/fflas-ffpack-2.5.0/tests/Makefile.in | 2214 ++ .../tests/data/Makefile.am | 0 .../fflas-ffpack-2.5.0/tests/data/Makefile.in | 688 + .../tests/data/mat11.sms | 0 .../tests/regression-check.C | 0 .../tests/test-charpoly-check.C | 0 .../tests/test-charpoly.C | 0 .../tests/test-compressQ.C | 0 .../tests/test-det-check.C | 0 .../tests/test-det.C | 0 .../tests/test-echelon.C | 0 .../tests/test-fadd.C | 0 .../tests/test-fdot.C | 0 .../tests/test-fgemm-check.C | 0 .../tests/test-fgemm.C | 0 .../tests/test-fgemv.C | 0 .../tests/test-fger.C | 0 .../tests/test-fgesv.C | 0 .../tests/test-finit.C | 0 .../tests/test-fscal.C | 0 .../tests/test-fsyr2k.C | 1 - .../tests/test-fsyrk.C | 0 .../tests/test-fsytrf.C | 0 .../tests/test-ftrmm.C | 0 .../tests/test-ftrmv.C | 0 .../tests/test-ftrsm-check.C | 0 .../tests/test-ftrsm.C | 0 .../tests/test-ftrssyr2k.C | 0 .../tests/test-ftrstr.C | 0 .../tests/test-ftrsv.C | 0 .../tests/test-ftrtri.C | 0 .../tests/test-interfaces-c.c | 0 .../tests/test-invert-check.C | 0 .../tests/test-io.C | 0 .../tests/test-lu.C | 0 .../tests/test-maxdelayeddim.C | 0 .../tests/test-minpoly.C | 0 .../tests/test-multifile1.C | 0 .../tests/test-multifile2.C | 0 .../tests/test-nullspace.C | 0 .../tests/test-permutations.C | 0 .../tests/test-pluq-check.C | 0 .../tests/test-quasisep.C | 23 +- .../tests/test-rankprofiles.C | 0 .../tests/test-rpm.C | 0 .../tests/test-simd.C | 0 .../tests/test-solve.C | 0 .../tests/test-storage-transpose.C | 0 .../tutorials/101-fgemm.C | 0 .../tutorials/2x2-fgemm.C | 0 .../tutorials/2x2-ftrsv.C | 0 .../tutorials/2x2-pluq.C | 0 .../tutorials/Makefile.am | 0 deps/fflas-ffpack-2.5.0/tutorials/Makefile.in | 807 + .../tutorials/fflas-101_1.C | 0 .../tutorials/fflas-101_3.C | 0 .../tutorials/fflas_101.C | 0 .../tutorials/fflas_101_lvl1.C | 0 .../tutorials/ffpack-fgesv.C | 0 .../tutorials/ffpack-solve.C | 0 .../.github/workflows/ci-sage.yml | 145 - deps/fflas-ffpack/.gitignore | 134 - deps/fflas-ffpack/.travis.yml | 99 - deps/fflas-ffpack/_clang-format | 52 - deps/fflas-ffpack/autogen.sh | 28 - deps/fflas-ffpack/benchmarks/Makefile.tests | 28 - .../benchmarks/benchmark-echelon.C | 340 - .../fflas-ffpack/benchmarks/benchmark-fspmm.C | 197 - .../fflas-ffpack/benchmarks/benchmark-fspmv.C | 191 - .../benchmarks/benchmark-pfspmv.C | 167 - .../benchmarks/benchmark-qscomp.C | 219 - deps/fflas-ffpack/benchmarks/benchmark-sss.C | 145 - .../files/mat1916-1916x1916-195985.smf.gz | Bin 541753 -> 0 bytes .../files/mat1916-1916x1916-195985.sms.gz | Bin 541762 -> 0 bytes deps/fflas-ffpack/benchmarks/perfpublisher.sh | 181 - .../fflas-ffpack/fflas/fflas_sparse/ell_r.h | 84 - .../fflas/fflas_sparse/ell_r/Makefile.am | 28 - .../fflas/fflas_sparse/ell_r/ell_r_spmv.inl | 319 - .../fflas-ffpack/ffpack/ffpack_sss.inl | 539 - .../fflas-ffpack/interfaces/libs/c_libs.doxy | 38 - .../interfaces/libs/ffpack_compiled_spec.inl | 80 - deps/fflas-ffpack/incremente-versions | 135 - deps/fflas-ffpack/macros/CodeChunk/gmp.C | 6 - deps/fflas-ffpack/macros/aclocal-include.m4 | 39 - deps/fflas-ffpack/macros/cuda-check.m4 | 114 - deps/fflas-ffpack/tests/Makefile.template | 48 - deps/fflas-ffpack/tests/jenkins-maker.sh | 109 - deps/fflas-ffpack/tests/perfpublisher.sh | 171 - deps/fflas-ffpack/tests/test-bini-p.C | 2453 -- deps/fflas-ffpack/tests/test-frobenius.C | 88 - deps/fflas-ffpack/tests/test-fspmm-dlp.C | 310 - deps/fflas-ffpack/tests/test-fspmm-recint.C | 128 - .../tests/test-fullranksubmatrix.C | 81 - deps/fflas-ffpack/tests/test-igemm.C | 372 - deps/fflas-ffpack/tests/test-invert.C | 142 - deps/fflas-ffpack/tests/test-krylov-elim.C | 112 - deps/fflas-ffpack/tests/test-matrix-io.h | 36 - .../tests/test-paladin-splitter.C | 265 - deps/fflas-ffpack/tests/test-paladin-task.C | 158 - deps/fflas-ffpack/tests/test-pfgemm-DSL.C | 210 - deps/fflas-ffpack/tests/test-pluq.C | 270 - deps/fflas-ffpack/tests/test-ppluq.C | 316 - deps/fflas-ffpack/tests/test-sparse.C | 391 - deps/fflas-ffpack/tests/test-sss.C | 378 - deps/fflas-ffpack/tests/testeur_fgemm.C | 281 - deps/fflas-ffpack/tests/testeur_ftrsm.C | 230 - deps/fflas-ffpack/tests/testeur_lqup.C | 311 - .../src/kernel/integer/random-integer.h | 2 +- 473 files changed, 72792 insertions(+), 10493 deletions(-) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/AUTHORS (93%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/COPYING (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/COPYING.LESSER (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/ChangeLog (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/INSTALL (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/Makefile.am (99%) create mode 100644 deps/fflas-ffpack-2.5.0/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/README.md (93%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/TODO (100%) create mode 100644 deps/fflas-ffpack-2.5.0/aclocal.m4 rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/autotune/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/arithprog.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/charpoly.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/fsyrk.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/fsytrf.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/ftrtri.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/pluq.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/tune_charpoly.sh (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/tune_fgemm.sh (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/tune_fsyrk.sh (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/tune_fsytrf.sh (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/tune_ftrtri.sh (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/tune_pluq.sh (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/autotune/winograd.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/Makefile.am (96%) create mode 100644 deps/fflas-ffpack-2.5.0/benchmarks/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-charpoly-mp.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-charpoly.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-checkers.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-dgemm.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-dgetrf.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-dgetri.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-dsytrf.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-dtrsm.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-dtrtri.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fadd-lvl2.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fdot.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fgemm-mp.C (98%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fgemm-rns.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fgemm.C (97%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fgemv-mp.C (79%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fgemv.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fgesv.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fsyr2k.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fsyrk.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-fsytrf.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-ftrsm-mp.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-ftrsm.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-ftrsv.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-ftrtri.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-inverse.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-lqup-mp.C (91%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-lqup.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-pluq.C (96%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-quasisep.C (88%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-storage-transpose.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/benchmarks/benchmark-wino.C (100%) create mode 100755 deps/fflas-ffpack-2.5.0/build-aux/ar-lib create mode 100755 deps/fflas-ffpack-2.5.0/build-aux/compile create mode 100755 deps/fflas-ffpack-2.5.0/build-aux/config.guess create mode 100755 deps/fflas-ffpack-2.5.0/build-aux/config.sub create mode 100755 deps/fflas-ffpack-2.5.0/build-aux/depcomp create mode 100755 deps/fflas-ffpack-2.5.0/build-aux/install-sh create mode 100644 deps/fflas-ffpack-2.5.0/build-aux/ltmain.sh create mode 100755 deps/fflas-ffpack-2.5.0/build-aux/missing create mode 100755 deps/fflas-ffpack-2.5.0/build-aux/test-driver create mode 100644 deps/fflas-ffpack-2.5.0/config.h.in create mode 100755 deps/fflas-ffpack-2.5.0/configure rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/configure.ac (97%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/doc/Doxyfile (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/doc/DoxyfileDev (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/doc/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/doc/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/doc/fflas-ffpack.html (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/doc/mainpage.doxy (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/examples/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/examples/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/examples/charpoly.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/examples/det.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/examples/matmul.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/examples/pluq.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/examples/rank.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/examples/solve.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack-config.in (99%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack.pc.in (66%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checker_charpoly.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checker_det.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checker_empty.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checker_fgemm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checker_ftrsm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checker_invert.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checker_pluq.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checkers.doxy (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checkers_fflas.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checkers_fflas.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checkers_ffpack.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/checkers/checkers_ffpack.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/config-blas.h (97%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/config.h rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas-ffpack-config.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas-ffpack-default-thresholds.h (100%) create mode 100755 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack-thresholds.h rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas-ffpack.doxy (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas-ffpack.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas.doxy (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_bounds.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_enum.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fadd.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fadd.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fassign.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fassign.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_faxpy.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fdot.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm.inl (99%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm/fgemm_classical.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm/fgemm_classical_mp.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm/fgemm_winograd.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm/matmul.doxy (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm/schedule_bini.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_acc.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_acc_ip.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_ip.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemv.inl (99%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fgemv_mp.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fger.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fger_mp.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_freduce.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_freduce.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_freduce_mp.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_freivalds.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fscal.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fscal.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fscal_mp.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fsyr2k.inl (98%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fsyrk.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_fsyrk_strassen.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_ftrmm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_ftrmm_src.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_ftrsm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_ftrsm_mp.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_ftrsm_src.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_ftrsv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_helpers.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_igemm/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_igemm/igemm.doxy (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_igemm/igemm.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_igemm/igemm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_igemm/igemm_kernels.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_igemm/igemm_kernels.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_igemm/igemm_tools.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_igemm/igemm_tools.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_level1.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_level2.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_level3.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_pfgemm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_pftrsm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd.h (98%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd.doxy (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd128.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd128_double.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd128_float.inl (96%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd128_int16.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd128_int32.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd128_int64.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd256.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd256_double.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd256_float.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd256_int16.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd256_int32.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd256_int64.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd512.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd512_double.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd512_float.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd512_int32.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd512_int64.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_simd/simd_modular.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/coo.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/coo/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/coo/coo_spmm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/coo/coo_spmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/coo/coo_utils.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr/csr_pspmm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr/csr_pspmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr/csr_spmm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr/csr_spmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr/csr_utils.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr_hyb.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_pspmm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_pspmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_spmm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_spmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_utils.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell/ell_pspmm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell/ell_pspmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell/ell_spmm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell/ell_spmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell/ell_utils.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell_simd.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_pspmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_spmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_utils.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/hyb_zo.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_pspmm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_pspmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_spmm.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_spmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_utils.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/read_sparse.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/sell.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/sell/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/sell/sell_pspmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/sell/sell_spmv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/sell/sell_utils.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/sparse_matrix_traits.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_sparse/utils.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/fflas/fflas_transpose.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/Makefile.am (97%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack.doxy (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack.h (91%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_bruhatgen.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_charpoly.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_charpoly_danilevski.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_charpoly_kgfast.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_charpoly_kgfastgeneralized.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_charpoly_kglu.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_charpoly_mp.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_det_mp.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_echelonforms.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_fgesv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_fgetrs.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_frobenius.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_fsytrf.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_ftrssyr2k.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_ftrstr.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_ftrtr.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_invert.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_krylovelim.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_ludivine.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_ludivine_mp.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_minpoly.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_permutation.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_pluq.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_pluq_mp.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_ppluq.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/ffpack/ffpack_rankprofiles.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/field/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/field-traits.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/field.doxy (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/rns-double-elt.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/rns-double-recint.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/rns-double.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/rns-double.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/rns-integer-mod.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/rns-integer.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/rns.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/field/rns.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/interfaces.doxy (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_L1_inst.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_L1_inst.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_L1_inst_implem.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_L2_inst.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_L2_inst.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_L2_inst_implem.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_L3_inst.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_L3_inst.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_L3_inst_implem.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_c.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_lvl1.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_lvl2.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_lvl3.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/fflas_sparse.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/ffpack.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/ffpack_c.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/ffpack_inst.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/ffpack_inst.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/interfaces/libs/ffpack_inst_implem.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/paladin/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/paladin/blockcuts.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/paladin/fflas_plevel1.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/paladin/kaapi_routines.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/paladin/parallel.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/paladin/pfgemm_variants.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/paladin/pfgemv.inl (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/Matio.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/align-allocator.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/args-parser.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/bit_manipulation.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/cast.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/debug.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/fflas_intrinsic.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/fflas_io.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/fflas_memory.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/fflas_randommatrix.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/flimits.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/test-utils.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/fflas-ffpack/utils/timer.h (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/CodeChunk/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/macros/CodeChunk/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/CodeChunk/cblas.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/CodeChunk/clapack.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/CodeChunk/cuda.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/CodeChunk/fblas.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/CodeChunk/lapack.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/macros/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/ax_cxx_compile_stdcxx_11.m4 (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/common.m4 (90%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/config-header.m4 (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/debug.m4 (60%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/fflas-ffpack-blas.m4 (64%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/fflas-ffpack-doc.m4 (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/fflas-ffpack-misc.m4 (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/fflas-ffpack-precompile.m4 (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/givaro-check.m4 (92%) create mode 100644 deps/fflas-ffpack-2.5.0/macros/libtool.m4 create mode 100644 deps/fflas-ffpack-2.5.0/macros/ltoptions.m4 create mode 100644 deps/fflas-ffpack-2.5.0/macros/ltsugar.m4 create mode 100644 deps/fflas-ffpack-2.5.0/macros/ltversion.m4 create mode 100644 deps/fflas-ffpack-2.5.0/macros/lt~obsolete.m4 rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/mkl-check.m4 (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/macros/omp-check.m4 (84%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/Makefile.am (98%) create mode 100644 deps/fflas-ffpack-2.5.0/tests/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/data/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/tests/data/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/data/mat11.sms (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/regression-check.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-charpoly-check.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-charpoly.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-compressQ.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-det-check.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-det.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-echelon.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fadd.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fdot.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fgemm-check.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fgemm.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fgemv.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fger.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fgesv.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-finit.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fscal.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fsyr2k.C (98%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fsyrk.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-fsytrf.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-ftrmm.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-ftrmv.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-ftrsm-check.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-ftrsm.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-ftrssyr2k.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-ftrstr.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-ftrsv.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-ftrtri.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-interfaces-c.c (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-invert-check.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-io.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-lu.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-maxdelayeddim.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-minpoly.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-multifile1.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-multifile2.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-nullspace.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-permutations.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-pluq-check.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-quasisep.C (93%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-rankprofiles.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-rpm.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-simd.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-solve.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tests/test-storage-transpose.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/101-fgemm.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/2x2-fgemm.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/2x2-ftrsv.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/2x2-pluq.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/Makefile.am (100%) create mode 100644 deps/fflas-ffpack-2.5.0/tutorials/Makefile.in rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/fflas-101_1.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/fflas-101_3.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/fflas_101.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/fflas_101_lvl1.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/ffpack-fgesv.C (100%) rename deps/{fflas-ffpack => fflas-ffpack-2.5.0}/tutorials/ffpack-solve.C (100%) delete mode 100644 deps/fflas-ffpack/.github/workflows/ci-sage.yml delete mode 100644 deps/fflas-ffpack/.gitignore delete mode 100644 deps/fflas-ffpack/.travis.yml delete mode 100644 deps/fflas-ffpack/_clang-format delete mode 100755 deps/fflas-ffpack/autogen.sh delete mode 100644 deps/fflas-ffpack/benchmarks/Makefile.tests delete mode 100644 deps/fflas-ffpack/benchmarks/benchmark-echelon.C delete mode 100644 deps/fflas-ffpack/benchmarks/benchmark-fspmm.C delete mode 100644 deps/fflas-ffpack/benchmarks/benchmark-fspmv.C delete mode 100644 deps/fflas-ffpack/benchmarks/benchmark-pfspmv.C delete mode 100644 deps/fflas-ffpack/benchmarks/benchmark-qscomp.C delete mode 100644 deps/fflas-ffpack/benchmarks/benchmark-sss.C delete mode 100644 deps/fflas-ffpack/benchmarks/files/mat1916-1916x1916-195985.smf.gz delete mode 100644 deps/fflas-ffpack/benchmarks/files/mat1916-1916x1916-195985.sms.gz delete mode 100755 deps/fflas-ffpack/benchmarks/perfpublisher.sh delete mode 100644 deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r.h delete mode 100644 deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r/Makefile.am delete mode 100644 deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r/ell_r_spmv.inl delete mode 100644 deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_sss.inl delete mode 100644 deps/fflas-ffpack/fflas-ffpack/interfaces/libs/c_libs.doxy delete mode 100644 deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_compiled_spec.inl delete mode 100755 deps/fflas-ffpack/incremente-versions delete mode 100644 deps/fflas-ffpack/macros/CodeChunk/gmp.C delete mode 100644 deps/fflas-ffpack/macros/aclocal-include.m4 delete mode 100644 deps/fflas-ffpack/macros/cuda-check.m4 delete mode 100644 deps/fflas-ffpack/tests/Makefile.template delete mode 100755 deps/fflas-ffpack/tests/jenkins-maker.sh delete mode 100755 deps/fflas-ffpack/tests/perfpublisher.sh delete mode 100644 deps/fflas-ffpack/tests/test-bini-p.C delete mode 100644 deps/fflas-ffpack/tests/test-frobenius.C delete mode 100644 deps/fflas-ffpack/tests/test-fspmm-dlp.C delete mode 100644 deps/fflas-ffpack/tests/test-fspmm-recint.C delete mode 100644 deps/fflas-ffpack/tests/test-fullranksubmatrix.C delete mode 100644 deps/fflas-ffpack/tests/test-igemm.C delete mode 100644 deps/fflas-ffpack/tests/test-invert.C delete mode 100644 deps/fflas-ffpack/tests/test-krylov-elim.C delete mode 100644 deps/fflas-ffpack/tests/test-matrix-io.h delete mode 100644 deps/fflas-ffpack/tests/test-paladin-splitter.C delete mode 100644 deps/fflas-ffpack/tests/test-paladin-task.C delete mode 100644 deps/fflas-ffpack/tests/test-pfgemm-DSL.C delete mode 100644 deps/fflas-ffpack/tests/test-pluq.C delete mode 100644 deps/fflas-ffpack/tests/test-ppluq.C delete mode 100644 deps/fflas-ffpack/tests/test-sparse.C delete mode 100644 deps/fflas-ffpack/tests/test-sss.C delete mode 100644 deps/fflas-ffpack/tests/testeur_fgemm.C delete mode 100644 deps/fflas-ffpack/tests/testeur_ftrsm.C delete mode 100644 deps/fflas-ffpack/tests/testeur_lqup.C diff --git a/deps/build.jl b/deps/build.jl index 343a56c17..abd428081 100644 --- a/deps/build.jl +++ b/deps/build.jl @@ -7,8 +7,8 @@ cd("givaro-4.2.0") do run(`make install`) end -cd("fflas-ffpack") do - run(`./autogen.sh PKG_CONFIG_PATH=$installdir/lib/pkgconfig --prefix=$installdir`) +cd("fflas-ffpack-2.5.0") do + run(`./configure PKG_CONFIG_PATH=$installdir/lib/pkgconfig --prefix=$installdir --with-blas-libs="-lcblas"`) run(`make install`) end diff --git a/deps/fflas-ffpack/AUTHORS b/deps/fflas-ffpack-2.5.0/AUTHORS similarity index 93% rename from deps/fflas-ffpack/AUTHORS rename to deps/fflas-ffpack-2.5.0/AUTHORS index a27fe6f57..101415ffd 100644 --- a/deps/fflas-ffpack/AUTHORS +++ b/deps/fflas-ffpack-2.5.0/AUTHORS @@ -9,7 +9,6 @@ Romain Lebreton Philippe Ledent Ozden Ozturk Clément Pernet -Hippolyte Signargout Ziad Sultan Bastien Vialla diff --git a/deps/fflas-ffpack/COPYING b/deps/fflas-ffpack-2.5.0/COPYING similarity index 100% rename from deps/fflas-ffpack/COPYING rename to deps/fflas-ffpack-2.5.0/COPYING diff --git a/deps/fflas-ffpack/COPYING.LESSER b/deps/fflas-ffpack-2.5.0/COPYING.LESSER similarity index 100% rename from deps/fflas-ffpack/COPYING.LESSER rename to deps/fflas-ffpack-2.5.0/COPYING.LESSER diff --git a/deps/fflas-ffpack/ChangeLog b/deps/fflas-ffpack-2.5.0/ChangeLog similarity index 100% rename from deps/fflas-ffpack/ChangeLog rename to deps/fflas-ffpack-2.5.0/ChangeLog diff --git a/deps/fflas-ffpack/INSTALL b/deps/fflas-ffpack-2.5.0/INSTALL similarity index 100% rename from deps/fflas-ffpack/INSTALL rename to deps/fflas-ffpack-2.5.0/INSTALL diff --git a/deps/fflas-ffpack/Makefile.am b/deps/fflas-ffpack-2.5.0/Makefile.am similarity index 99% rename from deps/fflas-ffpack/Makefile.am rename to deps/fflas-ffpack-2.5.0/Makefile.am index 3bee56c13..8647a31b8 100644 --- a/deps/fflas-ffpack/Makefile.am +++ b/deps/fflas-ffpack-2.5.0/Makefile.am @@ -85,4 +85,4 @@ git: EXTRA_DIST= README.md -VERSION=2.5.1alpha0 +VERSION=2.5.0 diff --git a/deps/fflas-ffpack-2.5.0/Makefile.in b/deps/fflas-ffpack-2.5.0/Makefile.in new file mode 100644 index 000000000..433d933af --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/Makefile.in @@ -0,0 +1,1045 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# adapted from LinBox configuration +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = fflas-ffpack-config fflas-ffpack.pc +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)" +SCRIPTS = $(bin_SCRIPTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(pkgconfig_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir distdir-am dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/fflas-ffpack-config.in $(srcdir)/fflas-ffpack.pc.in \ + $(top_srcdir)/build-aux/ar-lib $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/ltmain.sh \ + $(top_srcdir)/build-aux/missing AUTHORS COPYING COPYING.LESSER \ + ChangeLog INSTALL TODO build-aux/ar-lib build-aux/compile \ + build-aux/config.guess build-aux/config.sub \ + build-aux/install-sh build-aux/ltmain.sh build-aux/missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +DIST_TARGETS = dist-gzip +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = 2.5.0 +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ACLOCAL_AMFLAGS = -I macros +SUBDIRS = autotune fflas-ffpack tests doc benchmarks macros examples tutorials +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = fflas-ffpack.pc +bin_SCRIPTS = fflas-ffpack-config +EXTRA_DIST = README.md +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +fflas-ffpack-config: $(top_builddir)/config.status $(srcdir)/fflas-ffpack-config.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +fflas-ffpack.pc: $(top_builddir)/config.status $(srcdir)/fflas-ffpack.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-binSCRIPTS: $(bin_SCRIPTS) + @$(NORMAL_INSTALL) + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(SCRIPTS) $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-pkgconfigDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-binSCRIPTS + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-binSCRIPTS uninstall-pkgconfigDATA + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-hook +.MAKE: $(am__recursive_targets) all install-am install-strip \ + uninstall-am + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-binSCRIPTS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pkgconfigDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-binSCRIPTS \ + uninstall-hook uninstall-pkgconfigDATA + +.PRECIOUS: Makefile + + +# include_HEADERS=fflas-ffpack-config.h +#!@todo add examples dir XXX + +docs:doc/fflas-ffpack-html/index.html + +doc/fflas-ffpack-html/index.html: + (cd doc; ${MAKE} docs) + +docs_dev:doc/fflas-ffpack-dev-html/index.html + +doc/fflas-ffpack-dev-html/index.html: + (cd doc; ${MAKE} docs_dev) + +autotune: + (cd autotune; ${MAKE} autotune) + +perfpublisher: benchmarks/perfpublisher tests/perfpublisher + +benchmarks/perfpublisher: + (cd benchmarks; ${MAKE} perfpublisher) + +tests/perfpublisher: + (cd tests; ${MAKE} perfpublisher) + +examples: + (cd examples; ${MAKE} examples) + +tutorials: + (cd tutorials; ${MAKE} tutorials) + +benchmarks: + (cd benchmarks; ${MAKE} benchmarks) + +uninstall-hook: + (test -d "$(includedir)/fflas-ffpack" && rm -rf \ + "$(mandir)/man1" "$(mandir)" \ + "$(includedir)/fflas-ffpack/fflas" \ + "$(includedir)/fflas-ffpack/fflas/fflas_fgemm" \ + "$(includedir)/fflas-ffpack/ffpack" \ + "$(includedir)/fflas-ffpack/field" \ + "$(includedir)/fflas-ffpack/utils" \ + "$(includedir)/fflas-ffpack/paladin" \ + "$(includedir)/fflas-ffpack/interfaces" \ + "$(includedir)/fflas-ffpack/interfaces/libs" \ + "$(includedir)/fflas-ffpack/" "$(datarootdir)/" ) || \ + true + +.PHONY:tutorials examples benchmarks autotune + +git: + git commit -a; git pull; git push + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/README.md b/deps/fflas-ffpack-2.5.0/README.md similarity index 93% rename from deps/fflas-ffpack/README.md rename to deps/fflas-ffpack-2.5.0/README.md index c66d814c7..19e9d37fb 100644 --- a/deps/fflas-ffpack/README.md +++ b/deps/fflas-ffpack-2.5.0/README.md @@ -2,6 +2,8 @@ CI Inria: [![Build Status](https://ci.inria.fr/linbox/buildStatus/icon?job=FFLAS-FFPACK)](https://ci.inria.fr/linbox/view/LinBox%20ecosystem/job/FFLAS-FFPACK/) +Travis: [![Build Status](https://travis-ci.org/linbox-team/fflas-ffpack.svg?branch=master)](https://travis-ci.org/linbox-team/fflas-ffpack/) + ## PURPOSE The FFLAS-FFPACK library provides a set of basic routines for linear algebra over a finite field or the ring of integers with dense and sparse matrices. @@ -13,7 +15,7 @@ It is inspired by the BLAS interface (Basic Linear Algebra Subprograms) and the ## LICENSE -FFLAS-FFPACK is distributed unded the terms of the GNU LGPL v2.1 or later (see COPYING.LESSER). +FFLAS-FFPACK is distributed unded the terms of the GNU LGPL v2.1 or later (see LICENSE). ## REQUIREMENTS: - a C++ compiler supporting C++11 standard. More precisely g++ v5 or greater, clang++ v3.4 or greater, icpc v16 or greater (earlier versions of clang and icpc might also work but have not been tested) @@ -22,11 +24,11 @@ FFLAS-FFPACK is distributed unded the terms of the GNU LGPL v2.1 or later (see C ## INSTALLATION -### In brief: +In brief: - if you are compiling a released tar.gz archive, use ```./configure && make && make install``` - if you are compiling the upstream git master branch, juste replace `configure` by `autogen.sh` in the above command: the configure script will be auto-generated and run with the arguments passed to `autogen.sh` -### Most commonly used options +The most commonly used option include: - `--with-blas-libs=` : to specify the arguments for the linker to find the BLAS - `--enable-precompilation` : to precompile the standard templates specializations (and gain some compilation time later on) @@ -61,17 +63,9 @@ Note that running the `autotune` target is optional but recommended as it will t see INSTALL for further details. -### Homebrew install on Mac OSX - -Homebrew bottles for fflas-ffpack and givaro are made available by Macaulay2's [tap](https://github.com/Macaulay2/homebrew-tap). You can install them with the following steps: -``` -brew tap Macaulay2/tap -brew install givaro -brew install fflas-ffpack -``` - ## KNOWN BUGS + - `test-ftrsm` fails due to a problem with multiprecision arithmetic used with small fields (not used in practice). See https://github.com/linbox-team/fflas-ffpack/issues/29 ## AVAILABILITY diff --git a/deps/fflas-ffpack/TODO b/deps/fflas-ffpack-2.5.0/TODO similarity index 100% rename from deps/fflas-ffpack/TODO rename to deps/fflas-ffpack-2.5.0/TODO diff --git a/deps/fflas-ffpack-2.5.0/aclocal.m4 b/deps/fflas-ffpack-2.5.0/aclocal.m4 new file mode 100644 index 000000000..80dc28b28 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/aclocal.m4 @@ -0,0 +1,1524 @@ +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- + +# Copyright (C) 1996-2018 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +dnl serial 11 (pkg-config-0.29.1) +dnl +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.1]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.16' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.16.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.16.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_AR([ACT-IF-FAIL]) +# ------------------------- +# Try to determine the archiver interface, and trigger the ar-lib wrapper +# if it is needed. If the detection of archiver interface fails, run +# ACT-IF-FAIL (default is to abort configure with a proper error message). +AC_DEFUN([AM_PROG_AR], +[AC_BEFORE([$0], [LT_INIT])dnl +AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([ar-lib])dnl +AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) +: ${AR=ar} + +AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], + [AC_LANG_PUSH([C]) + am_cv_ar_interface=ar + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], + [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + ]) + AC_LANG_POP([C])]) + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + m4_default([$1], + [AC_MSG_ERROR([could not determine $AR interface])]) + ;; +esac +AC_SUBST([AR])dnl +]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_COND_IF -*- Autoconf -*- + +# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_COND_IF +# _AM_COND_ELSE +# _AM_COND_ENDIF +# -------------- +# These macros are only used for tracing. +m4_define([_AM_COND_IF]) +m4_define([_AM_COND_ELSE]) +m4_define([_AM_COND_ENDIF]) + +# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE]) +# --------------------------------------- +# If the shell condition COND is true, execute IF-TRUE, otherwise execute +# IF-FALSE. Allow automake to learn about conditional instantiating macros +# (the AC_CONFIG_FOOS). +AC_DEFUN([AM_COND_IF], +[m4_ifndef([_AM_COND_VALUE_$1], + [m4_fatal([$0: no such condition "$1"])])dnl +_AM_COND_IF([$1])dnl +if test -z "$$1_TRUE"; then : + m4_n([$2])[]dnl +m4_ifval([$3], +[_AM_COND_ELSE([$1])dnl +else + $3 +])dnl +_AM_COND_ENDIF([$1])dnl +fi[]dnl +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? + done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. +AC_DEFUN([AM_MAKE_INCLUDE], +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([macros/ax_cxx_compile_stdcxx_11.m4]) +m4_include([macros/common.m4]) +m4_include([macros/config-header.m4]) +m4_include([macros/debug.m4]) +m4_include([macros/fflas-ffpack-blas.m4]) +m4_include([macros/fflas-ffpack-doc.m4]) +m4_include([macros/fflas-ffpack-misc.m4]) +m4_include([macros/fflas-ffpack-precompile.m4]) +m4_include([macros/givaro-check.m4]) +m4_include([macros/libtool.m4]) +m4_include([macros/ltoptions.m4]) +m4_include([macros/ltsugar.m4]) +m4_include([macros/ltversion.m4]) +m4_include([macros/lt~obsolete.m4]) +m4_include([macros/mkl-check.m4]) +m4_include([macros/omp-check.m4]) diff --git a/deps/fflas-ffpack/autotune/Makefile.am b/deps/fflas-ffpack-2.5.0/autotune/Makefile.am similarity index 100% rename from deps/fflas-ffpack/autotune/Makefile.am rename to deps/fflas-ffpack-2.5.0/autotune/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/autotune/Makefile.in b/deps/fflas-ffpack-2.5.0/autotune/Makefile.in new file mode 100644 index 000000000..4a0594b10 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/autotune/Makefile.in @@ -0,0 +1,1027 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2016 FFLAS-FFPACK +# written by Clément Pernet +# Philippe LEDENT +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +EXTRA_PROGRAMS = $(am__EXEEXT_7) +subdir = autotune +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__EXEEXT_1 = winograd-modular-float$(EXEEXT) \ + winograd-modular-double$(EXEEXT) \ + winograd-modularbalanced-float$(EXEEXT) \ + winograd-modularbalanced-double$(EXEEXT) +am__EXEEXT_2 = pluq$(EXEEXT) +am__EXEEXT_3 = charpoly-LUK-ArithProg$(EXEEXT) \ + charpoly-Danilevskii-LUK$(EXEEXT) arithprog$(EXEEXT) +am__EXEEXT_4 = ftrtri$(EXEEXT) +am__EXEEXT_5 = fsytrf$(EXEEXT) +am__EXEEXT_6 = fsyrk$(EXEEXT) +am__EXEEXT_7 = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ + $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) +am_arithprog_OBJECTS = arithprog.$(OBJEXT) +arithprog_OBJECTS = $(am_arithprog_OBJECTS) +arithprog_LDADD = $(LDADD) +am__DEPENDENCIES_1 = +arithprog_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +am_charpoly_Danilevskii_LUK_OBJECTS = \ + charpoly_Danilevskii_LUK-charpoly.$(OBJEXT) +charpoly_Danilevskii_LUK_OBJECTS = \ + $(am_charpoly_Danilevskii_LUK_OBJECTS) +charpoly_Danilevskii_LUK_LDADD = $(LDADD) +charpoly_Danilevskii_LUK_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +charpoly_Danilevskii_LUK_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(charpoly_Danilevskii_LUK_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_charpoly_LUK_ArithProg_OBJECTS = \ + charpoly_LUK_ArithProg-charpoly.$(OBJEXT) +charpoly_LUK_ArithProg_OBJECTS = $(am_charpoly_LUK_ArithProg_OBJECTS) +charpoly_LUK_ArithProg_LDADD = $(LDADD) +charpoly_LUK_ArithProg_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +charpoly_LUK_ArithProg_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(charpoly_LUK_ArithProg_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_fsyrk_OBJECTS = fsyrk.$(OBJEXT) +fsyrk_OBJECTS = $(am_fsyrk_OBJECTS) +fsyrk_LDADD = $(LDADD) +fsyrk_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_fsytrf_OBJECTS = fsytrf.$(OBJEXT) +fsytrf_OBJECTS = $(am_fsytrf_OBJECTS) +fsytrf_LDADD = $(LDADD) +fsytrf_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_ftrtri_OBJECTS = ftrtri.$(OBJEXT) +ftrtri_OBJECTS = $(am_ftrtri_OBJECTS) +ftrtri_LDADD = $(LDADD) +ftrtri_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_pluq_OBJECTS = pluq.$(OBJEXT) +pluq_OBJECTS = $(am_pluq_OBJECTS) +pluq_LDADD = $(LDADD) +pluq_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_winograd_modular_double_OBJECTS = \ + winograd_modular_double-winograd.$(OBJEXT) +winograd_modular_double_OBJECTS = \ + $(am_winograd_modular_double_OBJECTS) +winograd_modular_double_LDADD = $(LDADD) +winograd_modular_double_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +winograd_modular_double_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(winograd_modular_double_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_winograd_modular_float_OBJECTS = \ + winograd_modular_float-winograd.$(OBJEXT) +winograd_modular_float_OBJECTS = $(am_winograd_modular_float_OBJECTS) +winograd_modular_float_LDADD = $(LDADD) +winograd_modular_float_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +winograd_modular_float_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(winograd_modular_float_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_winograd_modularbalanced_double_OBJECTS = \ + winograd_modularbalanced_double-winograd.$(OBJEXT) +winograd_modularbalanced_double_OBJECTS = \ + $(am_winograd_modularbalanced_double_OBJECTS) +winograd_modularbalanced_double_LDADD = $(LDADD) +winograd_modularbalanced_double_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +winograd_modularbalanced_double_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(winograd_modularbalanced_double_CXXFLAGS) $(CXXFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +am_winograd_modularbalanced_float_OBJECTS = \ + winograd_modularbalanced_float-winograd.$(OBJEXT) +winograd_modularbalanced_float_OBJECTS = \ + $(am_winograd_modularbalanced_float_OBJECTS) +winograd_modularbalanced_float_LDADD = $(LDADD) +winograd_modularbalanced_float_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +winograd_modularbalanced_float_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(winograd_modularbalanced_float_CXXFLAGS) $(CXXFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/arithprog.Po \ + ./$(DEPDIR)/charpoly_Danilevskii_LUK-charpoly.Po \ + ./$(DEPDIR)/charpoly_LUK_ArithProg-charpoly.Po \ + ./$(DEPDIR)/fsyrk.Po ./$(DEPDIR)/fsytrf.Po \ + ./$(DEPDIR)/ftrtri.Po ./$(DEPDIR)/pluq.Po \ + ./$(DEPDIR)/winograd_modular_double-winograd.Po \ + ./$(DEPDIR)/winograd_modular_float-winograd.Po \ + ./$(DEPDIR)/winograd_modularbalanced_double-winograd.Po \ + ./$(DEPDIR)/winograd_modularbalanced_float-winograd.Po +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(arithprog_SOURCES) $(charpoly_Danilevskii_LUK_SOURCES) \ + $(charpoly_LUK_ArithProg_SOURCES) $(fsyrk_SOURCES) \ + $(fsytrf_SOURCES) $(ftrtri_SOURCES) $(pluq_SOURCES) \ + $(winograd_modular_double_SOURCES) \ + $(winograd_modular_float_SOURCES) \ + $(winograd_modularbalanced_double_SOURCES) \ + $(winograd_modularbalanced_float_SOURCES) +DIST_SOURCES = $(arithprog_SOURCES) \ + $(charpoly_Danilevskii_LUK_SOURCES) \ + $(charpoly_LUK_ArithProg_SOURCES) $(fsyrk_SOURCES) \ + $(fsytrf_SOURCES) $(ftrtri_SOURCES) $(pluq_SOURCES) \ + $(winograd_modular_double_SOURCES) \ + $(winograd_modular_float_SOURCES) \ + $(winograd_modularbalanced_double_SOURCES) \ + $(winograd_modularbalanced_float_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_CXXFLAGS = $(FFLASFFPACK_CXXFLAGS) $(GIVARO_CFLAGS) $(BLAS_CFLAGS) $(PARFLAGS) +AM_CPPFLAGS = -I$(top_srcdir) +LDADD = $(GIVARO_LIBS) $(BLAS_LIBS) $(PARLIBS) +AUTOTUNE_FGEMM = winograd-modular-float winograd-modular-double winograd-modularbalanced-float winograd-modularbalanced-double +AUTOTUNE_PLUQ = pluq +AUTOTUNE_CHARPOLY = charpoly-LUK-ArithProg charpoly-Danilevskii-LUK arithprog +AUTOTUNE_FTRTRI = ftrtri +AUTOTUNE_FSYTRF = fsytrf +AUTOTUNE_FSYRK = fsyrk +AUTOTUNE = $(AUTOTUNE_FGEMM) $(AUTOTUNE_PLUQ) $(AUTOTUNE_CHARPOLY) $(AUTOTUNE_FTRTRI) $(AUTOTUNE_FSYTRF) $(AUTOTUNE_FSYRK) +EXTRA_DIST = tune_fgemm.sh tune_pluq.sh tune_charpoly.sh tune_ftrtri.sh tune_fsytrf.sh tune_fsyrk.sh +pluq_SOURCES = pluq.C +ftrtri_SOURCES = ftrtri.C +fsytrf_SOURCES = fsytrf.C +fsyrk_SOURCES = fsyrk.C +charpoly_Danilevskii_LUK_SOURCES = charpoly.C +charpoly_Danilevskii_LUK_CXXFLAGS = $(AM_CXXFLAGS) -DVARIANT1="FfpackDanilevski" -DVARIANT2="FfpackLUK" -DNSTART=32 -DNFIRSTSTEP=32 -DNMAX=1000 -DNPREC=1 -DITER=500 +charpoly_LUK_ArithProg_SOURCES = charpoly.C +charpoly_LUK_ArithProg_CXXFLAGS = $(AM_CXXFLAGS) -DVARIANT1="FfpackLUK" -DVARIANT2="FfpackArithProg" -DNSTART=1024 -DNFIRSTSTEP=128 -DNMAX=3000 -DNPREC=8 -DITER=1 +arithprog_SOURCES = arithprog.C +#arithprog_CXXFLAGS=$(#AM_CXXFLAGS) +winograd_modular_float_SOURCES = winograd.C +winograd_modular_float_CXXFLAGS = $(AM_CXXFLAGS) -DFIELD="Givaro::Modular" +winograd_modular_double_SOURCES = winograd.C +winograd_modular_double_CXXFLAGS = $(AM_CXXFLAGS) -DFIELD="Givaro::Modular" +winograd_modularbalanced_float_SOURCES = winograd.C +winograd_modularbalanced_float_CXXFLAGS = $(AM_CXXFLAGS) -DFIELD="Givaro::ModularBalanced" +winograd_modularbalanced_double_SOURCES = winograd.C +winograd_modularbalanced_double_CXXFLAGS = $(AM_CXXFLAGS) -DFIELD="Givaro::ModularBalanced" +CLEANFILES = $(AUTOTUNE) +all: all-am + +.SUFFIXES: +.SUFFIXES: .C .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign autotune/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign autotune/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +arithprog$(EXEEXT): $(arithprog_OBJECTS) $(arithprog_DEPENDENCIES) $(EXTRA_arithprog_DEPENDENCIES) + @rm -f arithprog$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(arithprog_OBJECTS) $(arithprog_LDADD) $(LIBS) + +charpoly-Danilevskii-LUK$(EXEEXT): $(charpoly_Danilevskii_LUK_OBJECTS) $(charpoly_Danilevskii_LUK_DEPENDENCIES) $(EXTRA_charpoly_Danilevskii_LUK_DEPENDENCIES) + @rm -f charpoly-Danilevskii-LUK$(EXEEXT) + $(AM_V_CXXLD)$(charpoly_Danilevskii_LUK_LINK) $(charpoly_Danilevskii_LUK_OBJECTS) $(charpoly_Danilevskii_LUK_LDADD) $(LIBS) + +charpoly-LUK-ArithProg$(EXEEXT): $(charpoly_LUK_ArithProg_OBJECTS) $(charpoly_LUK_ArithProg_DEPENDENCIES) $(EXTRA_charpoly_LUK_ArithProg_DEPENDENCIES) + @rm -f charpoly-LUK-ArithProg$(EXEEXT) + $(AM_V_CXXLD)$(charpoly_LUK_ArithProg_LINK) $(charpoly_LUK_ArithProg_OBJECTS) $(charpoly_LUK_ArithProg_LDADD) $(LIBS) + +fsyrk$(EXEEXT): $(fsyrk_OBJECTS) $(fsyrk_DEPENDENCIES) $(EXTRA_fsyrk_DEPENDENCIES) + @rm -f fsyrk$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(fsyrk_OBJECTS) $(fsyrk_LDADD) $(LIBS) + +fsytrf$(EXEEXT): $(fsytrf_OBJECTS) $(fsytrf_DEPENDENCIES) $(EXTRA_fsytrf_DEPENDENCIES) + @rm -f fsytrf$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(fsytrf_OBJECTS) $(fsytrf_LDADD) $(LIBS) + +ftrtri$(EXEEXT): $(ftrtri_OBJECTS) $(ftrtri_DEPENDENCIES) $(EXTRA_ftrtri_DEPENDENCIES) + @rm -f ftrtri$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(ftrtri_OBJECTS) $(ftrtri_LDADD) $(LIBS) + +pluq$(EXEEXT): $(pluq_OBJECTS) $(pluq_DEPENDENCIES) $(EXTRA_pluq_DEPENDENCIES) + @rm -f pluq$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(pluq_OBJECTS) $(pluq_LDADD) $(LIBS) + +winograd-modular-double$(EXEEXT): $(winograd_modular_double_OBJECTS) $(winograd_modular_double_DEPENDENCIES) $(EXTRA_winograd_modular_double_DEPENDENCIES) + @rm -f winograd-modular-double$(EXEEXT) + $(AM_V_CXXLD)$(winograd_modular_double_LINK) $(winograd_modular_double_OBJECTS) $(winograd_modular_double_LDADD) $(LIBS) + +winograd-modular-float$(EXEEXT): $(winograd_modular_float_OBJECTS) $(winograd_modular_float_DEPENDENCIES) $(EXTRA_winograd_modular_float_DEPENDENCIES) + @rm -f winograd-modular-float$(EXEEXT) + $(AM_V_CXXLD)$(winograd_modular_float_LINK) $(winograd_modular_float_OBJECTS) $(winograd_modular_float_LDADD) $(LIBS) + +winograd-modularbalanced-double$(EXEEXT): $(winograd_modularbalanced_double_OBJECTS) $(winograd_modularbalanced_double_DEPENDENCIES) $(EXTRA_winograd_modularbalanced_double_DEPENDENCIES) + @rm -f winograd-modularbalanced-double$(EXEEXT) + $(AM_V_CXXLD)$(winograd_modularbalanced_double_LINK) $(winograd_modularbalanced_double_OBJECTS) $(winograd_modularbalanced_double_LDADD) $(LIBS) + +winograd-modularbalanced-float$(EXEEXT): $(winograd_modularbalanced_float_OBJECTS) $(winograd_modularbalanced_float_DEPENDENCIES) $(EXTRA_winograd_modularbalanced_float_DEPENDENCIES) + @rm -f winograd-modularbalanced-float$(EXEEXT) + $(AM_V_CXXLD)$(winograd_modularbalanced_float_LINK) $(winograd_modularbalanced_float_OBJECTS) $(winograd_modularbalanced_float_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arithprog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charpoly_Danilevskii_LUK-charpoly.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charpoly_LUK_ArithProg-charpoly.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsyrk.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsytrf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftrtri.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pluq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/winograd_modular_double-winograd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/winograd_modular_float-winograd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/winograd_modularbalanced_double-winograd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/winograd_modularbalanced_float-winograd.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.C.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.C.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.C.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +charpoly_Danilevskii_LUK-charpoly.o: charpoly.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(charpoly_Danilevskii_LUK_CXXFLAGS) $(CXXFLAGS) -MT charpoly_Danilevskii_LUK-charpoly.o -MD -MP -MF $(DEPDIR)/charpoly_Danilevskii_LUK-charpoly.Tpo -c -o charpoly_Danilevskii_LUK-charpoly.o `test -f 'charpoly.C' || echo '$(srcdir)/'`charpoly.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/charpoly_Danilevskii_LUK-charpoly.Tpo $(DEPDIR)/charpoly_Danilevskii_LUK-charpoly.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='charpoly.C' object='charpoly_Danilevskii_LUK-charpoly.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(charpoly_Danilevskii_LUK_CXXFLAGS) $(CXXFLAGS) -c -o charpoly_Danilevskii_LUK-charpoly.o `test -f 'charpoly.C' || echo '$(srcdir)/'`charpoly.C + +charpoly_Danilevskii_LUK-charpoly.obj: charpoly.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(charpoly_Danilevskii_LUK_CXXFLAGS) $(CXXFLAGS) -MT charpoly_Danilevskii_LUK-charpoly.obj -MD -MP -MF $(DEPDIR)/charpoly_Danilevskii_LUK-charpoly.Tpo -c -o charpoly_Danilevskii_LUK-charpoly.obj `if test -f 'charpoly.C'; then $(CYGPATH_W) 'charpoly.C'; else $(CYGPATH_W) '$(srcdir)/charpoly.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/charpoly_Danilevskii_LUK-charpoly.Tpo $(DEPDIR)/charpoly_Danilevskii_LUK-charpoly.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='charpoly.C' object='charpoly_Danilevskii_LUK-charpoly.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(charpoly_Danilevskii_LUK_CXXFLAGS) $(CXXFLAGS) -c -o charpoly_Danilevskii_LUK-charpoly.obj `if test -f 'charpoly.C'; then $(CYGPATH_W) 'charpoly.C'; else $(CYGPATH_W) '$(srcdir)/charpoly.C'; fi` + +charpoly_LUK_ArithProg-charpoly.o: charpoly.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(charpoly_LUK_ArithProg_CXXFLAGS) $(CXXFLAGS) -MT charpoly_LUK_ArithProg-charpoly.o -MD -MP -MF $(DEPDIR)/charpoly_LUK_ArithProg-charpoly.Tpo -c -o charpoly_LUK_ArithProg-charpoly.o `test -f 'charpoly.C' || echo '$(srcdir)/'`charpoly.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/charpoly_LUK_ArithProg-charpoly.Tpo $(DEPDIR)/charpoly_LUK_ArithProg-charpoly.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='charpoly.C' object='charpoly_LUK_ArithProg-charpoly.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(charpoly_LUK_ArithProg_CXXFLAGS) $(CXXFLAGS) -c -o charpoly_LUK_ArithProg-charpoly.o `test -f 'charpoly.C' || echo '$(srcdir)/'`charpoly.C + +charpoly_LUK_ArithProg-charpoly.obj: charpoly.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(charpoly_LUK_ArithProg_CXXFLAGS) $(CXXFLAGS) -MT charpoly_LUK_ArithProg-charpoly.obj -MD -MP -MF $(DEPDIR)/charpoly_LUK_ArithProg-charpoly.Tpo -c -o charpoly_LUK_ArithProg-charpoly.obj `if test -f 'charpoly.C'; then $(CYGPATH_W) 'charpoly.C'; else $(CYGPATH_W) '$(srcdir)/charpoly.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/charpoly_LUK_ArithProg-charpoly.Tpo $(DEPDIR)/charpoly_LUK_ArithProg-charpoly.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='charpoly.C' object='charpoly_LUK_ArithProg-charpoly.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(charpoly_LUK_ArithProg_CXXFLAGS) $(CXXFLAGS) -c -o charpoly_LUK_ArithProg-charpoly.obj `if test -f 'charpoly.C'; then $(CYGPATH_W) 'charpoly.C'; else $(CYGPATH_W) '$(srcdir)/charpoly.C'; fi` + +winograd_modular_double-winograd.o: winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modular_double_CXXFLAGS) $(CXXFLAGS) -MT winograd_modular_double-winograd.o -MD -MP -MF $(DEPDIR)/winograd_modular_double-winograd.Tpo -c -o winograd_modular_double-winograd.o `test -f 'winograd.C' || echo '$(srcdir)/'`winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/winograd_modular_double-winograd.Tpo $(DEPDIR)/winograd_modular_double-winograd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='winograd.C' object='winograd_modular_double-winograd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modular_double_CXXFLAGS) $(CXXFLAGS) -c -o winograd_modular_double-winograd.o `test -f 'winograd.C' || echo '$(srcdir)/'`winograd.C + +winograd_modular_double-winograd.obj: winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modular_double_CXXFLAGS) $(CXXFLAGS) -MT winograd_modular_double-winograd.obj -MD -MP -MF $(DEPDIR)/winograd_modular_double-winograd.Tpo -c -o winograd_modular_double-winograd.obj `if test -f 'winograd.C'; then $(CYGPATH_W) 'winograd.C'; else $(CYGPATH_W) '$(srcdir)/winograd.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/winograd_modular_double-winograd.Tpo $(DEPDIR)/winograd_modular_double-winograd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='winograd.C' object='winograd_modular_double-winograd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modular_double_CXXFLAGS) $(CXXFLAGS) -c -o winograd_modular_double-winograd.obj `if test -f 'winograd.C'; then $(CYGPATH_W) 'winograd.C'; else $(CYGPATH_W) '$(srcdir)/winograd.C'; fi` + +winograd_modular_float-winograd.o: winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modular_float_CXXFLAGS) $(CXXFLAGS) -MT winograd_modular_float-winograd.o -MD -MP -MF $(DEPDIR)/winograd_modular_float-winograd.Tpo -c -o winograd_modular_float-winograd.o `test -f 'winograd.C' || echo '$(srcdir)/'`winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/winograd_modular_float-winograd.Tpo $(DEPDIR)/winograd_modular_float-winograd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='winograd.C' object='winograd_modular_float-winograd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modular_float_CXXFLAGS) $(CXXFLAGS) -c -o winograd_modular_float-winograd.o `test -f 'winograd.C' || echo '$(srcdir)/'`winograd.C + +winograd_modular_float-winograd.obj: winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modular_float_CXXFLAGS) $(CXXFLAGS) -MT winograd_modular_float-winograd.obj -MD -MP -MF $(DEPDIR)/winograd_modular_float-winograd.Tpo -c -o winograd_modular_float-winograd.obj `if test -f 'winograd.C'; then $(CYGPATH_W) 'winograd.C'; else $(CYGPATH_W) '$(srcdir)/winograd.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/winograd_modular_float-winograd.Tpo $(DEPDIR)/winograd_modular_float-winograd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='winograd.C' object='winograd_modular_float-winograd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modular_float_CXXFLAGS) $(CXXFLAGS) -c -o winograd_modular_float-winograd.obj `if test -f 'winograd.C'; then $(CYGPATH_W) 'winograd.C'; else $(CYGPATH_W) '$(srcdir)/winograd.C'; fi` + +winograd_modularbalanced_double-winograd.o: winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modularbalanced_double_CXXFLAGS) $(CXXFLAGS) -MT winograd_modularbalanced_double-winograd.o -MD -MP -MF $(DEPDIR)/winograd_modularbalanced_double-winograd.Tpo -c -o winograd_modularbalanced_double-winograd.o `test -f 'winograd.C' || echo '$(srcdir)/'`winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/winograd_modularbalanced_double-winograd.Tpo $(DEPDIR)/winograd_modularbalanced_double-winograd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='winograd.C' object='winograd_modularbalanced_double-winograd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modularbalanced_double_CXXFLAGS) $(CXXFLAGS) -c -o winograd_modularbalanced_double-winograd.o `test -f 'winograd.C' || echo '$(srcdir)/'`winograd.C + +winograd_modularbalanced_double-winograd.obj: winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modularbalanced_double_CXXFLAGS) $(CXXFLAGS) -MT winograd_modularbalanced_double-winograd.obj -MD -MP -MF $(DEPDIR)/winograd_modularbalanced_double-winograd.Tpo -c -o winograd_modularbalanced_double-winograd.obj `if test -f 'winograd.C'; then $(CYGPATH_W) 'winograd.C'; else $(CYGPATH_W) '$(srcdir)/winograd.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/winograd_modularbalanced_double-winograd.Tpo $(DEPDIR)/winograd_modularbalanced_double-winograd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='winograd.C' object='winograd_modularbalanced_double-winograd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modularbalanced_double_CXXFLAGS) $(CXXFLAGS) -c -o winograd_modularbalanced_double-winograd.obj `if test -f 'winograd.C'; then $(CYGPATH_W) 'winograd.C'; else $(CYGPATH_W) '$(srcdir)/winograd.C'; fi` + +winograd_modularbalanced_float-winograd.o: winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modularbalanced_float_CXXFLAGS) $(CXXFLAGS) -MT winograd_modularbalanced_float-winograd.o -MD -MP -MF $(DEPDIR)/winograd_modularbalanced_float-winograd.Tpo -c -o winograd_modularbalanced_float-winograd.o `test -f 'winograd.C' || echo '$(srcdir)/'`winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/winograd_modularbalanced_float-winograd.Tpo $(DEPDIR)/winograd_modularbalanced_float-winograd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='winograd.C' object='winograd_modularbalanced_float-winograd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modularbalanced_float_CXXFLAGS) $(CXXFLAGS) -c -o winograd_modularbalanced_float-winograd.o `test -f 'winograd.C' || echo '$(srcdir)/'`winograd.C + +winograd_modularbalanced_float-winograd.obj: winograd.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modularbalanced_float_CXXFLAGS) $(CXXFLAGS) -MT winograd_modularbalanced_float-winograd.obj -MD -MP -MF $(DEPDIR)/winograd_modularbalanced_float-winograd.Tpo -c -o winograd_modularbalanced_float-winograd.obj `if test -f 'winograd.C'; then $(CYGPATH_W) 'winograd.C'; else $(CYGPATH_W) '$(srcdir)/winograd.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/winograd_modularbalanced_float-winograd.Tpo $(DEPDIR)/winograd_modularbalanced_float-winograd.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='winograd.C' object='winograd_modularbalanced_float-winograd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(winograd_modularbalanced_float_CXXFLAGS) $(CXXFLAGS) -c -o winograd_modularbalanced_float-winograd.obj `if test -f 'winograd.C'; then $(CYGPATH_W) 'winograd.C'; else $(CYGPATH_W) '$(srcdir)/winograd.C'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/arithprog.Po + -rm -f ./$(DEPDIR)/charpoly_Danilevskii_LUK-charpoly.Po + -rm -f ./$(DEPDIR)/charpoly_LUK_ArithProg-charpoly.Po + -rm -f ./$(DEPDIR)/fsyrk.Po + -rm -f ./$(DEPDIR)/fsytrf.Po + -rm -f ./$(DEPDIR)/ftrtri.Po + -rm -f ./$(DEPDIR)/pluq.Po + -rm -f ./$(DEPDIR)/winograd_modular_double-winograd.Po + -rm -f ./$(DEPDIR)/winograd_modular_float-winograd.Po + -rm -f ./$(DEPDIR)/winograd_modularbalanced_double-winograd.Po + -rm -f ./$(DEPDIR)/winograd_modularbalanced_float-winograd.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/arithprog.Po + -rm -f ./$(DEPDIR)/charpoly_Danilevskii_LUK-charpoly.Po + -rm -f ./$(DEPDIR)/charpoly_LUK_ArithProg-charpoly.Po + -rm -f ./$(DEPDIR)/fsyrk.Po + -rm -f ./$(DEPDIR)/fsytrf.Po + -rm -f ./$(DEPDIR)/ftrtri.Po + -rm -f ./$(DEPDIR)/pluq.Po + -rm -f ./$(DEPDIR)/winograd_modular_double-winograd.Po + -rm -f ./$(DEPDIR)/winograd_modular_float-winograd.Po + -rm -f ./$(DEPDIR)/winograd_modularbalanced_double-winograd.Po + -rm -f ./$(DEPDIR)/winograd_modularbalanced_float-winograd.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libtool cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +define run_tune_fgemm + ${top_srcdir}/autotune/tune_fgemm.sh +endef +define run_tune_pluq + ${top_srcdir}/autotune/tune_pluq.sh +endef +define run_tune_charpoly + ${top_srcdir}/autotune/tune_charpoly.sh +endef +define run_tune_ftrtri + ${top_srcdir}/autotune/tune_ftrtri.sh +endef +define run_tune_fsytrf + ${top_srcdir}/autotune/tune_fsytrf.sh +endef +define run_tune_fsyrk + ${top_srcdir}/autotune/tune_fsyrk.sh +endef +define merge_thresholds + cat fgemm-thresholds.h pluq-threshold.h charpoly-LUK-ArithProg-threshold.h charpoly-Danilevskii-LUK-threshold.h arithprog-blocksize.h ftrtri-threshold.h fsytrf-threshold.h fsyrk-threshold.h> ${top_srcdir}/fflas-ffpack/fflas-ffpack-thresholds.h +endef + +# This forces the autotune runs to be sequential +autotune: autotune_fgemm autotune_pluq autotune_charpoly autotune_ftrtri autotune_fsytrf autotune_fsyrk + ${run_tune_fgemm} + ${run_tune_pluq} + ${run_tune_charpoly} + ${run_tune_ftrtri} + ${run_tune_fsyrk} + ${run_tune_fsytrf} + ${merge_thresholds} + +# Tune fgemm only +tune_fgemm: autotune_fgemm + ${run_tune_fgemm} + ${merge_thresholds} + +# Tune pluq only +tune_pluq: autotune_pluq + ${run_tune_pluq} + ${merge_thresholds} + +# Tune ftrtri only +tune_ftrtri: autotune_ftrtri + ${run_tune_ftrtri} + ${merge_thresholds} + +# Tune fsytrf only +tune_fsytrf: autotune_fsytrf + ${run_tune_fsytrf} + ${merge_thresholds} + +# Tune fsyrk only +tune_fsyrk: autotune_fsyrk + ${run_tune_fsyrk} + ${merge_thresholds} + +# Tune charpoly only +tune_charpoly: autotune_charpoly + ${run_tune_charpoly} + ${merge_thresholds} + +autotune_fgemm: $(AUTOTUNE_FGEMM:%=%$(EXEEXT)) + +autotune_pluq: $(AUTOTUNE_PLUQ:%=%$(EXEEXT)) + +autotune_ftrtri: $(AUTOTUNE_FTRTRI:%=%$(EXEEXT)) + +autotune_fsytrf: $(AUTOTUNE_FSYTRF:%=%$(EXEEXT)) + +autotune_fsyrk: $(AUTOTUNE_FSYRK:%=%$(EXEEXT)) + +autotune_charpoly: $(AUTOTUNE_CHARPOLY:%=%$(EXEEXT)) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/autotune/arithprog.C b/deps/fflas-ffpack-2.5.0/autotune/arithprog.C similarity index 100% rename from deps/fflas-ffpack/autotune/arithprog.C rename to deps/fflas-ffpack-2.5.0/autotune/arithprog.C diff --git a/deps/fflas-ffpack/autotune/charpoly.C b/deps/fflas-ffpack-2.5.0/autotune/charpoly.C similarity index 100% rename from deps/fflas-ffpack/autotune/charpoly.C rename to deps/fflas-ffpack-2.5.0/autotune/charpoly.C diff --git a/deps/fflas-ffpack/autotune/fsyrk.C b/deps/fflas-ffpack-2.5.0/autotune/fsyrk.C similarity index 100% rename from deps/fflas-ffpack/autotune/fsyrk.C rename to deps/fflas-ffpack-2.5.0/autotune/fsyrk.C diff --git a/deps/fflas-ffpack/autotune/fsytrf.C b/deps/fflas-ffpack-2.5.0/autotune/fsytrf.C similarity index 100% rename from deps/fflas-ffpack/autotune/fsytrf.C rename to deps/fflas-ffpack-2.5.0/autotune/fsytrf.C diff --git a/deps/fflas-ffpack/autotune/ftrtri.C b/deps/fflas-ffpack-2.5.0/autotune/ftrtri.C similarity index 100% rename from deps/fflas-ffpack/autotune/ftrtri.C rename to deps/fflas-ffpack-2.5.0/autotune/ftrtri.C diff --git a/deps/fflas-ffpack/autotune/pluq.C b/deps/fflas-ffpack-2.5.0/autotune/pluq.C similarity index 100% rename from deps/fflas-ffpack/autotune/pluq.C rename to deps/fflas-ffpack-2.5.0/autotune/pluq.C diff --git a/deps/fflas-ffpack/autotune/tune_charpoly.sh b/deps/fflas-ffpack-2.5.0/autotune/tune_charpoly.sh similarity index 100% rename from deps/fflas-ffpack/autotune/tune_charpoly.sh rename to deps/fflas-ffpack-2.5.0/autotune/tune_charpoly.sh diff --git a/deps/fflas-ffpack/autotune/tune_fgemm.sh b/deps/fflas-ffpack-2.5.0/autotune/tune_fgemm.sh similarity index 100% rename from deps/fflas-ffpack/autotune/tune_fgemm.sh rename to deps/fflas-ffpack-2.5.0/autotune/tune_fgemm.sh diff --git a/deps/fflas-ffpack/autotune/tune_fsyrk.sh b/deps/fflas-ffpack-2.5.0/autotune/tune_fsyrk.sh similarity index 100% rename from deps/fflas-ffpack/autotune/tune_fsyrk.sh rename to deps/fflas-ffpack-2.5.0/autotune/tune_fsyrk.sh diff --git a/deps/fflas-ffpack/autotune/tune_fsytrf.sh b/deps/fflas-ffpack-2.5.0/autotune/tune_fsytrf.sh similarity index 100% rename from deps/fflas-ffpack/autotune/tune_fsytrf.sh rename to deps/fflas-ffpack-2.5.0/autotune/tune_fsytrf.sh diff --git a/deps/fflas-ffpack/autotune/tune_ftrtri.sh b/deps/fflas-ffpack-2.5.0/autotune/tune_ftrtri.sh similarity index 100% rename from deps/fflas-ffpack/autotune/tune_ftrtri.sh rename to deps/fflas-ffpack-2.5.0/autotune/tune_ftrtri.sh diff --git a/deps/fflas-ffpack/autotune/tune_pluq.sh b/deps/fflas-ffpack-2.5.0/autotune/tune_pluq.sh similarity index 100% rename from deps/fflas-ffpack/autotune/tune_pluq.sh rename to deps/fflas-ffpack-2.5.0/autotune/tune_pluq.sh diff --git a/deps/fflas-ffpack/autotune/winograd.C b/deps/fflas-ffpack-2.5.0/autotune/winograd.C similarity index 100% rename from deps/fflas-ffpack/autotune/winograd.C rename to deps/fflas-ffpack-2.5.0/autotune/winograd.C diff --git a/deps/fflas-ffpack/benchmarks/Makefile.am b/deps/fflas-ffpack-2.5.0/benchmarks/Makefile.am similarity index 96% rename from deps/fflas-ffpack/benchmarks/Makefile.am rename to deps/fflas-ffpack-2.5.0/benchmarks/Makefile.am index 43324f644..f91d398fe 100755 --- a/deps/fflas-ffpack/benchmarks/Makefile.am +++ b/deps/fflas-ffpack-2.5.0/benchmarks/Makefile.am @@ -33,11 +33,12 @@ endif PERFPUBLISHERFILE=benchmarks-report.xml -FFLA_BENCH = benchmark-fgemm benchmark-fgemm-rns benchmark-wino benchmark-ftrsm benchmark-fgesv benchmark-ftrsv benchmark-ftrtri benchmark-inverse benchmark-fsytrf benchmark-fsyrk benchmark-lqup benchmark-fsyr2k benchmark-pluq benchmark-charpoly benchmark-charpoly-mp benchmark-fgemm-mp benchmark-fgemv-mp benchmark-ftrsm-mp benchmark-lqup-mp benchmark-checkers benchmark-fadd-lvl2 benchmark-fdot benchmark-fgemv benchmark-quasisep benchmark-sss benchmark-storage-transpose benchmark-qscomp +FFLA_BENCH = benchmark-fgemm benchmark-fgemm-rns benchmark-wino benchmark-ftrsm benchmark-fgesv benchmark-ftrsv benchmark-ftrtri benchmark-inverse benchmark-fsytrf benchmark-fsyrk benchmark-lqup benchmark-fsyr2k benchmark-pluq benchmark-charpoly benchmark-charpoly-mp benchmark-fgemm-mp benchmark-fgemv-mp benchmark-ftrsm-mp benchmark-lqup-mp benchmark-checkers benchmark-fadd-lvl2 benchmark-fdot benchmark-fgemv benchmark-quasisep benchmark-storage-transpose BLAS_BENCH = benchmark-sgemm$(EXEEXT) benchmark-dgemm benchmark-dtrsm LAPA_BENCH = benchmark-dtrtri benchmark-dgetri benchmark-dgetrf benchmark-dsytrf + if FFLASFFPACK_HAVE_LAPACK USE_LAPACK_BENCH = $(LAPA_BENCH) benchmark_dtrtri_SOURCES = benchmark-dtrtri.C @@ -75,8 +76,6 @@ benchmark_fsytrf_SOURCES = benchmark-fsytrf.C benchmark_fsyr2k_SOURCES = benchmark-fsyr2k.C benchmark_fsyrk_SOURCES = benchmark-fsyrk.C benchmark_quasisep_SOURCES = benchmark-quasisep.C -benchmark_qscomp_SOURCES = benchmark-qscomp.C -benchmark_sss_SOURCES = benchmark-sss.C benchmark_charpoly_SOURCES = benchmark-charpoly.C benchmark_charpoly_mp_SOURCES = benchmark-charpoly-mp.C benchmark_lqup_SOURCES = benchmark-lqup.C diff --git a/deps/fflas-ffpack-2.5.0/benchmarks/Makefile.in b/deps/fflas-ffpack-2.5.0/benchmarks/Makefile.in new file mode 100644 index 000000000..f8779cd7c --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/benchmarks/Makefile.in @@ -0,0 +1,1321 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by JGD +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +@FFLASFFPACK_PRECOMPILED_TRUE@am__append_1 = $(top_builddir)/fflas-ffpack/interfaces/libs/libfflas.la \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(top_builddir)/fflas-ffpack/interfaces/libs/libffpack.la +EXTRA_PROGRAMS = $(am__EXEEXT_5) +subdir = benchmarks +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__EXEEXT_1 = benchmark-fgemm$(EXEEXT) benchmark-fgemm-rns$(EXEEXT) \ + benchmark-wino$(EXEEXT) benchmark-ftrsm$(EXEEXT) \ + benchmark-fgesv$(EXEEXT) benchmark-ftrsv$(EXEEXT) \ + benchmark-ftrtri$(EXEEXT) benchmark-inverse$(EXEEXT) \ + benchmark-fsytrf$(EXEEXT) benchmark-fsyrk$(EXEEXT) \ + benchmark-lqup$(EXEEXT) benchmark-fsyr2k$(EXEEXT) \ + benchmark-pluq$(EXEEXT) benchmark-charpoly$(EXEEXT) \ + benchmark-charpoly-mp$(EXEEXT) benchmark-fgemm-mp$(EXEEXT) \ + benchmark-fgemv-mp$(EXEEXT) benchmark-ftrsm-mp$(EXEEXT) \ + benchmark-lqup-mp$(EXEEXT) benchmark-checkers$(EXEEXT) \ + benchmark-fadd-lvl2$(EXEEXT) benchmark-fdot$(EXEEXT) \ + benchmark-fgemv$(EXEEXT) benchmark-quasisep$(EXEEXT) \ + benchmark-storage-transpose$(EXEEXT) +am__EXEEXT_2 = benchmark-sgemm$(EXEEXT) benchmark-dgemm$(EXEEXT) \ + benchmark-dtrsm$(EXEEXT) +am__EXEEXT_3 = benchmark-dtrtri$(EXEEXT) benchmark-dgetri$(EXEEXT) \ + benchmark-dgetrf$(EXEEXT) benchmark-dsytrf$(EXEEXT) +@FFLASFFPACK_HAVE_LAPACK_TRUE@am__EXEEXT_4 = $(am__EXEEXT_3) +am__EXEEXT_5 = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_4) +am_benchmark_charpoly_OBJECTS = benchmark-charpoly.$(OBJEXT) +benchmark_charpoly_OBJECTS = $(am_benchmark_charpoly_OBJECTS) +benchmark_charpoly_LDADD = $(LDADD) +am__DEPENDENCIES_1 = +benchmark_charpoly_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +am_benchmark_charpoly_mp_OBJECTS = benchmark-charpoly-mp.$(OBJEXT) +benchmark_charpoly_mp_OBJECTS = $(am_benchmark_charpoly_mp_OBJECTS) +benchmark_charpoly_mp_LDADD = $(LDADD) +benchmark_charpoly_mp_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_checkers_OBJECTS = benchmark-checkers.$(OBJEXT) +benchmark_checkers_OBJECTS = $(am_benchmark_checkers_OBJECTS) +benchmark_checkers_LDADD = $(LDADD) +benchmark_checkers_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_dgemm_OBJECTS = benchmark-dgemm.$(OBJEXT) +benchmark_dgemm_OBJECTS = $(am_benchmark_dgemm_OBJECTS) +benchmark_dgemm_LDADD = $(LDADD) +benchmark_dgemm_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am__benchmark_dgetrf_SOURCES_DIST = benchmark-dgetrf.C +@FFLASFFPACK_HAVE_LAPACK_TRUE@am_benchmark_dgetrf_OBJECTS = \ +@FFLASFFPACK_HAVE_LAPACK_TRUE@ benchmark-dgetrf.$(OBJEXT) +benchmark_dgetrf_OBJECTS = $(am_benchmark_dgetrf_OBJECTS) +benchmark_dgetrf_LDADD = $(LDADD) +benchmark_dgetrf_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am__benchmark_dgetri_SOURCES_DIST = benchmark-dgetri.C +@FFLASFFPACK_HAVE_LAPACK_TRUE@am_benchmark_dgetri_OBJECTS = \ +@FFLASFFPACK_HAVE_LAPACK_TRUE@ benchmark-dgetri.$(OBJEXT) +benchmark_dgetri_OBJECTS = $(am_benchmark_dgetri_OBJECTS) +benchmark_dgetri_LDADD = $(LDADD) +benchmark_dgetri_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am__benchmark_dsytrf_SOURCES_DIST = benchmark-dsytrf.C +@FFLASFFPACK_HAVE_LAPACK_TRUE@am_benchmark_dsytrf_OBJECTS = \ +@FFLASFFPACK_HAVE_LAPACK_TRUE@ benchmark-dsytrf.$(OBJEXT) +benchmark_dsytrf_OBJECTS = $(am_benchmark_dsytrf_OBJECTS) +benchmark_dsytrf_LDADD = $(LDADD) +benchmark_dsytrf_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_dtrsm_OBJECTS = benchmark-dtrsm.$(OBJEXT) +benchmark_dtrsm_OBJECTS = $(am_benchmark_dtrsm_OBJECTS) +benchmark_dtrsm_LDADD = $(LDADD) +benchmark_dtrsm_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am__benchmark_dtrtri_SOURCES_DIST = benchmark-dtrtri.C +@FFLASFFPACK_HAVE_LAPACK_TRUE@am_benchmark_dtrtri_OBJECTS = \ +@FFLASFFPACK_HAVE_LAPACK_TRUE@ benchmark-dtrtri.$(OBJEXT) +benchmark_dtrtri_OBJECTS = $(am_benchmark_dtrtri_OBJECTS) +benchmark_dtrtri_LDADD = $(LDADD) +benchmark_dtrtri_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fadd_lvl2_OBJECTS = benchmark-fadd-lvl2.$(OBJEXT) +benchmark_fadd_lvl2_OBJECTS = $(am_benchmark_fadd_lvl2_OBJECTS) +benchmark_fadd_lvl2_LDADD = $(LDADD) +benchmark_fadd_lvl2_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fdot_OBJECTS = benchmark-fdot.$(OBJEXT) +benchmark_fdot_OBJECTS = $(am_benchmark_fdot_OBJECTS) +benchmark_fdot_LDADD = $(LDADD) +benchmark_fdot_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fgemm_OBJECTS = benchmark-fgemm.$(OBJEXT) +benchmark_fgemm_OBJECTS = $(am_benchmark_fgemm_OBJECTS) +benchmark_fgemm_LDADD = $(LDADD) +benchmark_fgemm_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fgemm_mp_OBJECTS = benchmark-fgemm-mp.$(OBJEXT) +benchmark_fgemm_mp_OBJECTS = $(am_benchmark_fgemm_mp_OBJECTS) +benchmark_fgemm_mp_LDADD = $(LDADD) +benchmark_fgemm_mp_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fgemm_rns_OBJECTS = benchmark-fgemm-rns.$(OBJEXT) +benchmark_fgemm_rns_OBJECTS = $(am_benchmark_fgemm_rns_OBJECTS) +benchmark_fgemm_rns_LDADD = $(LDADD) +benchmark_fgemm_rns_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fgemv_OBJECTS = benchmark-fgemv.$(OBJEXT) +benchmark_fgemv_OBJECTS = $(am_benchmark_fgemv_OBJECTS) +benchmark_fgemv_LDADD = $(LDADD) +benchmark_fgemv_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fgemv_mp_OBJECTS = benchmark-fgemv-mp.$(OBJEXT) +benchmark_fgemv_mp_OBJECTS = $(am_benchmark_fgemv_mp_OBJECTS) +benchmark_fgemv_mp_LDADD = $(LDADD) +benchmark_fgemv_mp_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fgesv_OBJECTS = benchmark-fgesv.$(OBJEXT) +benchmark_fgesv_OBJECTS = $(am_benchmark_fgesv_OBJECTS) +benchmark_fgesv_LDADD = $(LDADD) +benchmark_fgesv_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fsyr2k_OBJECTS = benchmark-fsyr2k.$(OBJEXT) +benchmark_fsyr2k_OBJECTS = $(am_benchmark_fsyr2k_OBJECTS) +benchmark_fsyr2k_LDADD = $(LDADD) +benchmark_fsyr2k_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fsyrk_OBJECTS = benchmark-fsyrk.$(OBJEXT) +benchmark_fsyrk_OBJECTS = $(am_benchmark_fsyrk_OBJECTS) +benchmark_fsyrk_LDADD = $(LDADD) +benchmark_fsyrk_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_fsytrf_OBJECTS = benchmark-fsytrf.$(OBJEXT) +benchmark_fsytrf_OBJECTS = $(am_benchmark_fsytrf_OBJECTS) +benchmark_fsytrf_LDADD = $(LDADD) +benchmark_fsytrf_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_ftrsm_OBJECTS = benchmark-ftrsm.$(OBJEXT) +benchmark_ftrsm_OBJECTS = $(am_benchmark_ftrsm_OBJECTS) +benchmark_ftrsm_LDADD = $(LDADD) +benchmark_ftrsm_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_ftrsm_mp_OBJECTS = benchmark-ftrsm-mp.$(OBJEXT) +benchmark_ftrsm_mp_OBJECTS = $(am_benchmark_ftrsm_mp_OBJECTS) +benchmark_ftrsm_mp_LDADD = $(LDADD) +benchmark_ftrsm_mp_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_ftrsv_OBJECTS = benchmark-ftrsv.$(OBJEXT) +benchmark_ftrsv_OBJECTS = $(am_benchmark_ftrsv_OBJECTS) +benchmark_ftrsv_LDADD = $(LDADD) +benchmark_ftrsv_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_ftrtri_OBJECTS = benchmark-ftrtri.$(OBJEXT) +benchmark_ftrtri_OBJECTS = $(am_benchmark_ftrtri_OBJECTS) +benchmark_ftrtri_LDADD = $(LDADD) +benchmark_ftrtri_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_inverse_OBJECTS = benchmark-inverse.$(OBJEXT) +benchmark_inverse_OBJECTS = $(am_benchmark_inverse_OBJECTS) +benchmark_inverse_LDADD = $(LDADD) +benchmark_inverse_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_lqup_OBJECTS = benchmark-lqup.$(OBJEXT) +benchmark_lqup_OBJECTS = $(am_benchmark_lqup_OBJECTS) +benchmark_lqup_LDADD = $(LDADD) +benchmark_lqup_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_lqup_mp_OBJECTS = benchmark-lqup-mp.$(OBJEXT) +benchmark_lqup_mp_OBJECTS = $(am_benchmark_lqup_mp_OBJECTS) +benchmark_lqup_mp_LDADD = $(LDADD) +benchmark_lqup_mp_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_pluq_OBJECTS = benchmark-pluq.$(OBJEXT) +benchmark_pluq_OBJECTS = $(am_benchmark_pluq_OBJECTS) +benchmark_pluq_LDADD = $(LDADD) +benchmark_pluq_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_quasisep_OBJECTS = benchmark-quasisep.$(OBJEXT) +benchmark_quasisep_OBJECTS = $(am_benchmark_quasisep_OBJECTS) +benchmark_quasisep_LDADD = $(LDADD) +benchmark_quasisep_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_sgemm_OBJECTS = \ + benchmark_sgemm-benchmark-dgemm.$(OBJEXT) +benchmark_sgemm_OBJECTS = $(am_benchmark_sgemm_OBJECTS) +benchmark_sgemm_LDADD = $(LDADD) +benchmark_sgemm_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +benchmark_sgemm_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(benchmark_sgemm_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_benchmark_storage_transpose_OBJECTS = \ + benchmark-storage-transpose.$(OBJEXT) +benchmark_storage_transpose_OBJECTS = \ + $(am_benchmark_storage_transpose_OBJECTS) +benchmark_storage_transpose_LDADD = $(LDADD) +benchmark_storage_transpose_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_benchmark_wino_OBJECTS = benchmark-wino.$(OBJEXT) +benchmark_wino_OBJECTS = $(am_benchmark_wino_OBJECTS) +benchmark_wino_LDADD = $(LDADD) +benchmark_wino_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/benchmark-charpoly-mp.Po \ + ./$(DEPDIR)/benchmark-charpoly.Po \ + ./$(DEPDIR)/benchmark-checkers.Po \ + ./$(DEPDIR)/benchmark-dgemm.Po ./$(DEPDIR)/benchmark-dgetrf.Po \ + ./$(DEPDIR)/benchmark-dgetri.Po \ + ./$(DEPDIR)/benchmark-dsytrf.Po ./$(DEPDIR)/benchmark-dtrsm.Po \ + ./$(DEPDIR)/benchmark-dtrtri.Po \ + ./$(DEPDIR)/benchmark-fadd-lvl2.Po \ + ./$(DEPDIR)/benchmark-fdot.Po \ + ./$(DEPDIR)/benchmark-fgemm-mp.Po \ + ./$(DEPDIR)/benchmark-fgemm-rns.Po \ + ./$(DEPDIR)/benchmark-fgemm.Po \ + ./$(DEPDIR)/benchmark-fgemv-mp.Po \ + ./$(DEPDIR)/benchmark-fgemv.Po ./$(DEPDIR)/benchmark-fgesv.Po \ + ./$(DEPDIR)/benchmark-fsyr2k.Po ./$(DEPDIR)/benchmark-fsyrk.Po \ + ./$(DEPDIR)/benchmark-fsytrf.Po \ + ./$(DEPDIR)/benchmark-ftrsm-mp.Po \ + ./$(DEPDIR)/benchmark-ftrsm.Po ./$(DEPDIR)/benchmark-ftrsv.Po \ + ./$(DEPDIR)/benchmark-ftrtri.Po \ + ./$(DEPDIR)/benchmark-inverse.Po \ + ./$(DEPDIR)/benchmark-lqup-mp.Po ./$(DEPDIR)/benchmark-lqup.Po \ + ./$(DEPDIR)/benchmark-pluq.Po \ + ./$(DEPDIR)/benchmark-quasisep.Po \ + ./$(DEPDIR)/benchmark-storage-transpose.Po \ + ./$(DEPDIR)/benchmark-wino.Po \ + ./$(DEPDIR)/benchmark_sgemm-benchmark-dgemm.Po +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(benchmark_charpoly_SOURCES) \ + $(benchmark_charpoly_mp_SOURCES) $(benchmark_checkers_SOURCES) \ + $(benchmark_dgemm_SOURCES) $(benchmark_dgetrf_SOURCES) \ + $(benchmark_dgetri_SOURCES) $(benchmark_dsytrf_SOURCES) \ + $(benchmark_dtrsm_SOURCES) $(benchmark_dtrtri_SOURCES) \ + $(benchmark_fadd_lvl2_SOURCES) $(benchmark_fdot_SOURCES) \ + $(benchmark_fgemm_SOURCES) $(benchmark_fgemm_mp_SOURCES) \ + $(benchmark_fgemm_rns_SOURCES) $(benchmark_fgemv_SOURCES) \ + $(benchmark_fgemv_mp_SOURCES) $(benchmark_fgesv_SOURCES) \ + $(benchmark_fsyr2k_SOURCES) $(benchmark_fsyrk_SOURCES) \ + $(benchmark_fsytrf_SOURCES) $(benchmark_ftrsm_SOURCES) \ + $(benchmark_ftrsm_mp_SOURCES) $(benchmark_ftrsv_SOURCES) \ + $(benchmark_ftrtri_SOURCES) $(benchmark_inverse_SOURCES) \ + $(benchmark_lqup_SOURCES) $(benchmark_lqup_mp_SOURCES) \ + $(benchmark_pluq_SOURCES) $(benchmark_quasisep_SOURCES) \ + $(benchmark_sgemm_SOURCES) \ + $(benchmark_storage_transpose_SOURCES) \ + $(benchmark_wino_SOURCES) +DIST_SOURCES = $(benchmark_charpoly_SOURCES) \ + $(benchmark_charpoly_mp_SOURCES) $(benchmark_checkers_SOURCES) \ + $(benchmark_dgemm_SOURCES) \ + $(am__benchmark_dgetrf_SOURCES_DIST) \ + $(am__benchmark_dgetri_SOURCES_DIST) \ + $(am__benchmark_dsytrf_SOURCES_DIST) \ + $(benchmark_dtrsm_SOURCES) \ + $(am__benchmark_dtrtri_SOURCES_DIST) \ + $(benchmark_fadd_lvl2_SOURCES) $(benchmark_fdot_SOURCES) \ + $(benchmark_fgemm_SOURCES) $(benchmark_fgemm_mp_SOURCES) \ + $(benchmark_fgemm_rns_SOURCES) $(benchmark_fgemv_SOURCES) \ + $(benchmark_fgemv_mp_SOURCES) $(benchmark_fgesv_SOURCES) \ + $(benchmark_fsyr2k_SOURCES) $(benchmark_fsyrk_SOURCES) \ + $(benchmark_fsytrf_SOURCES) $(benchmark_ftrsm_SOURCES) \ + $(benchmark_ftrsm_mp_SOURCES) $(benchmark_ftrsv_SOURCES) \ + $(benchmark_ftrtri_SOURCES) $(benchmark_inverse_SOURCES) \ + $(benchmark_lqup_SOURCES) $(benchmark_lqup_mp_SOURCES) \ + $(benchmark_pluq_SOURCES) $(benchmark_quasisep_SOURCES) \ + $(benchmark_sgemm_SOURCES) \ + $(benchmark_storage_transpose_SOURCES) \ + $(benchmark_wino_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = +AM_CXXFLAGS = $(FFLASFFPACK_CXXFLAGS) $(GIVARO_CFLAGS) $(BLAS_CFLAGS) $(PARFLAGS) $(PRECOMPILE_FLAGS) +AM_CPPFLAGS = -I$(top_srcdir) +LDADD = $(GIVARO_LIBS) $(BLAS_LIBS) $(PARLIBS) $(am__append_1) +PERFPUBLISHERFILE = benchmarks-report.xml +FFLA_BENCH = benchmark-fgemm benchmark-fgemm-rns benchmark-wino benchmark-ftrsm benchmark-fgesv benchmark-ftrsv benchmark-ftrtri benchmark-inverse benchmark-fsytrf benchmark-fsyrk benchmark-lqup benchmark-fsyr2k benchmark-pluq benchmark-charpoly benchmark-charpoly-mp benchmark-fgemm-mp benchmark-fgemv-mp benchmark-ftrsm-mp benchmark-lqup-mp benchmark-checkers benchmark-fadd-lvl2 benchmark-fdot benchmark-fgemv benchmark-quasisep benchmark-storage-transpose +BLAS_BENCH = benchmark-sgemm$(EXEEXT) benchmark-dgemm benchmark-dtrsm +LAPA_BENCH = benchmark-dtrtri benchmark-dgetri benchmark-dgetrf benchmark-dsytrf +@FFLASFFPACK_HAVE_LAPACK_TRUE@USE_LAPACK_BENCH = $(LAPA_BENCH) +@FFLASFFPACK_HAVE_LAPACK_TRUE@benchmark_dtrtri_SOURCES = benchmark-dtrtri.C +@FFLASFFPACK_HAVE_LAPACK_TRUE@benchmark_dgetri_SOURCES = benchmark-dgetri.C +@FFLASFFPACK_HAVE_LAPACK_TRUE@benchmark_dgetrf_SOURCES = benchmark-dgetrf.C +@FFLASFFPACK_HAVE_LAPACK_TRUE@benchmark_dsytrf_SOURCES = benchmark-dsytrf.C +BENCHMARKS = \ + $(FFLA_BENCH) \ + $(BLAS_BENCH) \ + $(USE_LAPACK_BENCH) \ + $(USE_OMP_BENCH) + +CLEANFILES = $(BENCHMARKS) $(PERFPUBLISHERFILE) +benchmark_sgemm_SOURCES = benchmark-dgemm.C +benchmark_dgemm_SOURCES = benchmark-dgemm.C +benchmark_dtrsm_SOURCES = benchmark-dtrsm.C +benchmark_fgemm_SOURCES = benchmark-fgemm.C +benchmark_fgemm_mp_SOURCES = benchmark-fgemm-mp.C +benchmark_fgemm_rns_SOURCES = benchmark-fgemm-rns.C +benchmark_fgemv_mp_SOURCES = benchmark-fgemv-mp.C +benchmark_wino_SOURCES = benchmark-wino.C +benchmark_ftrsm_SOURCES = benchmark-ftrsm.C +benchmark_fgesv_SOURCES = benchmark-fgesv.C +benchmark_ftrsm_mp_SOURCES = benchmark-ftrsm-mp.C +benchmark_ftrsv_SOURCES = benchmark-ftrsv.C +benchmark_ftrtri_SOURCES = benchmark-ftrtri.C +benchmark_inverse_SOURCES = benchmark-inverse.C +benchmark_fsytrf_SOURCES = benchmark-fsytrf.C +benchmark_fsyr2k_SOURCES = benchmark-fsyr2k.C +benchmark_fsyrk_SOURCES = benchmark-fsyrk.C +benchmark_quasisep_SOURCES = benchmark-quasisep.C +benchmark_charpoly_SOURCES = benchmark-charpoly.C +benchmark_charpoly_mp_SOURCES = benchmark-charpoly-mp.C +benchmark_lqup_SOURCES = benchmark-lqup.C +benchmark_lqup_mp_SOURCES = benchmark-lqup-mp.C +benchmark_pluq_SOURCES = benchmark-pluq.C +benchmark_checkers_SOURCES = benchmark-checkers.C +benchmark_fadd_lvl2_SOURCES = benchmark-fadd-lvl2.C +benchmark_fdot_SOURCES = benchmark-fdot.C +benchmark_fgemv_SOURCES = benchmark-fgemv.C +benchmark_storage_transpose_SOURCES = benchmark-storage-transpose.C +benchmark_sgemm_CXXFLAGS = $(AM_CXXFLAGS) -D__SGEMM__ + +# for compilation of new benchmarks +FFLASFFPACK_BIN = @bindir@ +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .C .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign benchmarks/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign benchmarks/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +benchmark-charpoly$(EXEEXT): $(benchmark_charpoly_OBJECTS) $(benchmark_charpoly_DEPENDENCIES) $(EXTRA_benchmark_charpoly_DEPENDENCIES) + @rm -f benchmark-charpoly$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_charpoly_OBJECTS) $(benchmark_charpoly_LDADD) $(LIBS) + +benchmark-charpoly-mp$(EXEEXT): $(benchmark_charpoly_mp_OBJECTS) $(benchmark_charpoly_mp_DEPENDENCIES) $(EXTRA_benchmark_charpoly_mp_DEPENDENCIES) + @rm -f benchmark-charpoly-mp$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_charpoly_mp_OBJECTS) $(benchmark_charpoly_mp_LDADD) $(LIBS) + +benchmark-checkers$(EXEEXT): $(benchmark_checkers_OBJECTS) $(benchmark_checkers_DEPENDENCIES) $(EXTRA_benchmark_checkers_DEPENDENCIES) + @rm -f benchmark-checkers$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_checkers_OBJECTS) $(benchmark_checkers_LDADD) $(LIBS) + +benchmark-dgemm$(EXEEXT): $(benchmark_dgemm_OBJECTS) $(benchmark_dgemm_DEPENDENCIES) $(EXTRA_benchmark_dgemm_DEPENDENCIES) + @rm -f benchmark-dgemm$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_dgemm_OBJECTS) $(benchmark_dgemm_LDADD) $(LIBS) + +benchmark-dgetrf$(EXEEXT): $(benchmark_dgetrf_OBJECTS) $(benchmark_dgetrf_DEPENDENCIES) $(EXTRA_benchmark_dgetrf_DEPENDENCIES) + @rm -f benchmark-dgetrf$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_dgetrf_OBJECTS) $(benchmark_dgetrf_LDADD) $(LIBS) + +benchmark-dgetri$(EXEEXT): $(benchmark_dgetri_OBJECTS) $(benchmark_dgetri_DEPENDENCIES) $(EXTRA_benchmark_dgetri_DEPENDENCIES) + @rm -f benchmark-dgetri$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_dgetri_OBJECTS) $(benchmark_dgetri_LDADD) $(LIBS) + +benchmark-dsytrf$(EXEEXT): $(benchmark_dsytrf_OBJECTS) $(benchmark_dsytrf_DEPENDENCIES) $(EXTRA_benchmark_dsytrf_DEPENDENCIES) + @rm -f benchmark-dsytrf$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_dsytrf_OBJECTS) $(benchmark_dsytrf_LDADD) $(LIBS) + +benchmark-dtrsm$(EXEEXT): $(benchmark_dtrsm_OBJECTS) $(benchmark_dtrsm_DEPENDENCIES) $(EXTRA_benchmark_dtrsm_DEPENDENCIES) + @rm -f benchmark-dtrsm$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_dtrsm_OBJECTS) $(benchmark_dtrsm_LDADD) $(LIBS) + +benchmark-dtrtri$(EXEEXT): $(benchmark_dtrtri_OBJECTS) $(benchmark_dtrtri_DEPENDENCIES) $(EXTRA_benchmark_dtrtri_DEPENDENCIES) + @rm -f benchmark-dtrtri$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_dtrtri_OBJECTS) $(benchmark_dtrtri_LDADD) $(LIBS) + +benchmark-fadd-lvl2$(EXEEXT): $(benchmark_fadd_lvl2_OBJECTS) $(benchmark_fadd_lvl2_DEPENDENCIES) $(EXTRA_benchmark_fadd_lvl2_DEPENDENCIES) + @rm -f benchmark-fadd-lvl2$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fadd_lvl2_OBJECTS) $(benchmark_fadd_lvl2_LDADD) $(LIBS) + +benchmark-fdot$(EXEEXT): $(benchmark_fdot_OBJECTS) $(benchmark_fdot_DEPENDENCIES) $(EXTRA_benchmark_fdot_DEPENDENCIES) + @rm -f benchmark-fdot$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fdot_OBJECTS) $(benchmark_fdot_LDADD) $(LIBS) + +benchmark-fgemm$(EXEEXT): $(benchmark_fgemm_OBJECTS) $(benchmark_fgemm_DEPENDENCIES) $(EXTRA_benchmark_fgemm_DEPENDENCIES) + @rm -f benchmark-fgemm$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fgemm_OBJECTS) $(benchmark_fgemm_LDADD) $(LIBS) + +benchmark-fgemm-mp$(EXEEXT): $(benchmark_fgemm_mp_OBJECTS) $(benchmark_fgemm_mp_DEPENDENCIES) $(EXTRA_benchmark_fgemm_mp_DEPENDENCIES) + @rm -f benchmark-fgemm-mp$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fgemm_mp_OBJECTS) $(benchmark_fgemm_mp_LDADD) $(LIBS) + +benchmark-fgemm-rns$(EXEEXT): $(benchmark_fgemm_rns_OBJECTS) $(benchmark_fgemm_rns_DEPENDENCIES) $(EXTRA_benchmark_fgemm_rns_DEPENDENCIES) + @rm -f benchmark-fgemm-rns$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fgemm_rns_OBJECTS) $(benchmark_fgemm_rns_LDADD) $(LIBS) + +benchmark-fgemv$(EXEEXT): $(benchmark_fgemv_OBJECTS) $(benchmark_fgemv_DEPENDENCIES) $(EXTRA_benchmark_fgemv_DEPENDENCIES) + @rm -f benchmark-fgemv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fgemv_OBJECTS) $(benchmark_fgemv_LDADD) $(LIBS) + +benchmark-fgemv-mp$(EXEEXT): $(benchmark_fgemv_mp_OBJECTS) $(benchmark_fgemv_mp_DEPENDENCIES) $(EXTRA_benchmark_fgemv_mp_DEPENDENCIES) + @rm -f benchmark-fgemv-mp$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fgemv_mp_OBJECTS) $(benchmark_fgemv_mp_LDADD) $(LIBS) + +benchmark-fgesv$(EXEEXT): $(benchmark_fgesv_OBJECTS) $(benchmark_fgesv_DEPENDENCIES) $(EXTRA_benchmark_fgesv_DEPENDENCIES) + @rm -f benchmark-fgesv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fgesv_OBJECTS) $(benchmark_fgesv_LDADD) $(LIBS) + +benchmark-fsyr2k$(EXEEXT): $(benchmark_fsyr2k_OBJECTS) $(benchmark_fsyr2k_DEPENDENCIES) $(EXTRA_benchmark_fsyr2k_DEPENDENCIES) + @rm -f benchmark-fsyr2k$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fsyr2k_OBJECTS) $(benchmark_fsyr2k_LDADD) $(LIBS) + +benchmark-fsyrk$(EXEEXT): $(benchmark_fsyrk_OBJECTS) $(benchmark_fsyrk_DEPENDENCIES) $(EXTRA_benchmark_fsyrk_DEPENDENCIES) + @rm -f benchmark-fsyrk$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fsyrk_OBJECTS) $(benchmark_fsyrk_LDADD) $(LIBS) + +benchmark-fsytrf$(EXEEXT): $(benchmark_fsytrf_OBJECTS) $(benchmark_fsytrf_DEPENDENCIES) $(EXTRA_benchmark_fsytrf_DEPENDENCIES) + @rm -f benchmark-fsytrf$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_fsytrf_OBJECTS) $(benchmark_fsytrf_LDADD) $(LIBS) + +benchmark-ftrsm$(EXEEXT): $(benchmark_ftrsm_OBJECTS) $(benchmark_ftrsm_DEPENDENCIES) $(EXTRA_benchmark_ftrsm_DEPENDENCIES) + @rm -f benchmark-ftrsm$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_ftrsm_OBJECTS) $(benchmark_ftrsm_LDADD) $(LIBS) + +benchmark-ftrsm-mp$(EXEEXT): $(benchmark_ftrsm_mp_OBJECTS) $(benchmark_ftrsm_mp_DEPENDENCIES) $(EXTRA_benchmark_ftrsm_mp_DEPENDENCIES) + @rm -f benchmark-ftrsm-mp$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_ftrsm_mp_OBJECTS) $(benchmark_ftrsm_mp_LDADD) $(LIBS) + +benchmark-ftrsv$(EXEEXT): $(benchmark_ftrsv_OBJECTS) $(benchmark_ftrsv_DEPENDENCIES) $(EXTRA_benchmark_ftrsv_DEPENDENCIES) + @rm -f benchmark-ftrsv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_ftrsv_OBJECTS) $(benchmark_ftrsv_LDADD) $(LIBS) + +benchmark-ftrtri$(EXEEXT): $(benchmark_ftrtri_OBJECTS) $(benchmark_ftrtri_DEPENDENCIES) $(EXTRA_benchmark_ftrtri_DEPENDENCIES) + @rm -f benchmark-ftrtri$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_ftrtri_OBJECTS) $(benchmark_ftrtri_LDADD) $(LIBS) + +benchmark-inverse$(EXEEXT): $(benchmark_inverse_OBJECTS) $(benchmark_inverse_DEPENDENCIES) $(EXTRA_benchmark_inverse_DEPENDENCIES) + @rm -f benchmark-inverse$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_inverse_OBJECTS) $(benchmark_inverse_LDADD) $(LIBS) + +benchmark-lqup$(EXEEXT): $(benchmark_lqup_OBJECTS) $(benchmark_lqup_DEPENDENCIES) $(EXTRA_benchmark_lqup_DEPENDENCIES) + @rm -f benchmark-lqup$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_lqup_OBJECTS) $(benchmark_lqup_LDADD) $(LIBS) + +benchmark-lqup-mp$(EXEEXT): $(benchmark_lqup_mp_OBJECTS) $(benchmark_lqup_mp_DEPENDENCIES) $(EXTRA_benchmark_lqup_mp_DEPENDENCIES) + @rm -f benchmark-lqup-mp$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_lqup_mp_OBJECTS) $(benchmark_lqup_mp_LDADD) $(LIBS) + +benchmark-pluq$(EXEEXT): $(benchmark_pluq_OBJECTS) $(benchmark_pluq_DEPENDENCIES) $(EXTRA_benchmark_pluq_DEPENDENCIES) + @rm -f benchmark-pluq$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_pluq_OBJECTS) $(benchmark_pluq_LDADD) $(LIBS) + +benchmark-quasisep$(EXEEXT): $(benchmark_quasisep_OBJECTS) $(benchmark_quasisep_DEPENDENCIES) $(EXTRA_benchmark_quasisep_DEPENDENCIES) + @rm -f benchmark-quasisep$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_quasisep_OBJECTS) $(benchmark_quasisep_LDADD) $(LIBS) + +benchmark-sgemm$(EXEEXT): $(benchmark_sgemm_OBJECTS) $(benchmark_sgemm_DEPENDENCIES) $(EXTRA_benchmark_sgemm_DEPENDENCIES) + @rm -f benchmark-sgemm$(EXEEXT) + $(AM_V_CXXLD)$(benchmark_sgemm_LINK) $(benchmark_sgemm_OBJECTS) $(benchmark_sgemm_LDADD) $(LIBS) + +benchmark-storage-transpose$(EXEEXT): $(benchmark_storage_transpose_OBJECTS) $(benchmark_storage_transpose_DEPENDENCIES) $(EXTRA_benchmark_storage_transpose_DEPENDENCIES) + @rm -f benchmark-storage-transpose$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_storage_transpose_OBJECTS) $(benchmark_storage_transpose_LDADD) $(LIBS) + +benchmark-wino$(EXEEXT): $(benchmark_wino_OBJECTS) $(benchmark_wino_DEPENDENCIES) $(EXTRA_benchmark_wino_DEPENDENCIES) + @rm -f benchmark-wino$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(benchmark_wino_OBJECTS) $(benchmark_wino_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-charpoly-mp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-charpoly.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-checkers.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-dgemm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-dgetrf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-dgetri.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-dsytrf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-dtrsm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-dtrtri.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fadd-lvl2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fdot.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fgemm-mp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fgemm-rns.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fgemm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fgemv-mp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fgemv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fgesv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fsyr2k.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fsyrk.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-fsytrf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-ftrsm-mp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-ftrsm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-ftrsv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-ftrtri.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-inverse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-lqup-mp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-lqup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-pluq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-quasisep.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-storage-transpose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark-wino.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark_sgemm-benchmark-dgemm.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.C.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.C.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.C.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +benchmark_sgemm-benchmark-dgemm.o: benchmark-dgemm.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(benchmark_sgemm_CXXFLAGS) $(CXXFLAGS) -MT benchmark_sgemm-benchmark-dgemm.o -MD -MP -MF $(DEPDIR)/benchmark_sgemm-benchmark-dgemm.Tpo -c -o benchmark_sgemm-benchmark-dgemm.o `test -f 'benchmark-dgemm.C' || echo '$(srcdir)/'`benchmark-dgemm.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/benchmark_sgemm-benchmark-dgemm.Tpo $(DEPDIR)/benchmark_sgemm-benchmark-dgemm.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='benchmark-dgemm.C' object='benchmark_sgemm-benchmark-dgemm.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(benchmark_sgemm_CXXFLAGS) $(CXXFLAGS) -c -o benchmark_sgemm-benchmark-dgemm.o `test -f 'benchmark-dgemm.C' || echo '$(srcdir)/'`benchmark-dgemm.C + +benchmark_sgemm-benchmark-dgemm.obj: benchmark-dgemm.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(benchmark_sgemm_CXXFLAGS) $(CXXFLAGS) -MT benchmark_sgemm-benchmark-dgemm.obj -MD -MP -MF $(DEPDIR)/benchmark_sgemm-benchmark-dgemm.Tpo -c -o benchmark_sgemm-benchmark-dgemm.obj `if test -f 'benchmark-dgemm.C'; then $(CYGPATH_W) 'benchmark-dgemm.C'; else $(CYGPATH_W) '$(srcdir)/benchmark-dgemm.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/benchmark_sgemm-benchmark-dgemm.Tpo $(DEPDIR)/benchmark_sgemm-benchmark-dgemm.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='benchmark-dgemm.C' object='benchmark_sgemm-benchmark-dgemm.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(benchmark_sgemm_CXXFLAGS) $(CXXFLAGS) -c -o benchmark_sgemm-benchmark-dgemm.obj `if test -f 'benchmark-dgemm.C'; then $(CYGPATH_W) 'benchmark-dgemm.C'; else $(CYGPATH_W) '$(srcdir)/benchmark-dgemm.C'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f ./$(DEPDIR)/benchmark-charpoly-mp.Po + -rm -f ./$(DEPDIR)/benchmark-charpoly.Po + -rm -f ./$(DEPDIR)/benchmark-checkers.Po + -rm -f ./$(DEPDIR)/benchmark-dgemm.Po + -rm -f ./$(DEPDIR)/benchmark-dgetrf.Po + -rm -f ./$(DEPDIR)/benchmark-dgetri.Po + -rm -f ./$(DEPDIR)/benchmark-dsytrf.Po + -rm -f ./$(DEPDIR)/benchmark-dtrsm.Po + -rm -f ./$(DEPDIR)/benchmark-dtrtri.Po + -rm -f ./$(DEPDIR)/benchmark-fadd-lvl2.Po + -rm -f ./$(DEPDIR)/benchmark-fdot.Po + -rm -f ./$(DEPDIR)/benchmark-fgemm-mp.Po + -rm -f ./$(DEPDIR)/benchmark-fgemm-rns.Po + -rm -f ./$(DEPDIR)/benchmark-fgemm.Po + -rm -f ./$(DEPDIR)/benchmark-fgemv-mp.Po + -rm -f ./$(DEPDIR)/benchmark-fgemv.Po + -rm -f ./$(DEPDIR)/benchmark-fgesv.Po + -rm -f ./$(DEPDIR)/benchmark-fsyr2k.Po + -rm -f ./$(DEPDIR)/benchmark-fsyrk.Po + -rm -f ./$(DEPDIR)/benchmark-fsytrf.Po + -rm -f ./$(DEPDIR)/benchmark-ftrsm-mp.Po + -rm -f ./$(DEPDIR)/benchmark-ftrsm.Po + -rm -f ./$(DEPDIR)/benchmark-ftrsv.Po + -rm -f ./$(DEPDIR)/benchmark-ftrtri.Po + -rm -f ./$(DEPDIR)/benchmark-inverse.Po + -rm -f ./$(DEPDIR)/benchmark-lqup-mp.Po + -rm -f ./$(DEPDIR)/benchmark-lqup.Po + -rm -f ./$(DEPDIR)/benchmark-pluq.Po + -rm -f ./$(DEPDIR)/benchmark-quasisep.Po + -rm -f ./$(DEPDIR)/benchmark-storage-transpose.Po + -rm -f ./$(DEPDIR)/benchmark-wino.Po + -rm -f ./$(DEPDIR)/benchmark_sgemm-benchmark-dgemm.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f ./$(DEPDIR)/benchmark-charpoly-mp.Po + -rm -f ./$(DEPDIR)/benchmark-charpoly.Po + -rm -f ./$(DEPDIR)/benchmark-checkers.Po + -rm -f ./$(DEPDIR)/benchmark-dgemm.Po + -rm -f ./$(DEPDIR)/benchmark-dgetrf.Po + -rm -f ./$(DEPDIR)/benchmark-dgetri.Po + -rm -f ./$(DEPDIR)/benchmark-dsytrf.Po + -rm -f ./$(DEPDIR)/benchmark-dtrsm.Po + -rm -f ./$(DEPDIR)/benchmark-dtrtri.Po + -rm -f ./$(DEPDIR)/benchmark-fadd-lvl2.Po + -rm -f ./$(DEPDIR)/benchmark-fdot.Po + -rm -f ./$(DEPDIR)/benchmark-fgemm-mp.Po + -rm -f ./$(DEPDIR)/benchmark-fgemm-rns.Po + -rm -f ./$(DEPDIR)/benchmark-fgemm.Po + -rm -f ./$(DEPDIR)/benchmark-fgemv-mp.Po + -rm -f ./$(DEPDIR)/benchmark-fgemv.Po + -rm -f ./$(DEPDIR)/benchmark-fgesv.Po + -rm -f ./$(DEPDIR)/benchmark-fsyr2k.Po + -rm -f ./$(DEPDIR)/benchmark-fsyrk.Po + -rm -f ./$(DEPDIR)/benchmark-fsytrf.Po + -rm -f ./$(DEPDIR)/benchmark-ftrsm-mp.Po + -rm -f ./$(DEPDIR)/benchmark-ftrsm.Po + -rm -f ./$(DEPDIR)/benchmark-ftrsv.Po + -rm -f ./$(DEPDIR)/benchmark-ftrtri.Po + -rm -f ./$(DEPDIR)/benchmark-inverse.Po + -rm -f ./$(DEPDIR)/benchmark-lqup-mp.Po + -rm -f ./$(DEPDIR)/benchmark-lqup.Po + -rm -f ./$(DEPDIR)/benchmark-pluq.Po + -rm -f ./$(DEPDIR)/benchmark-quasisep.Po + -rm -f ./$(DEPDIR)/benchmark-storage-transpose.Po + -rm -f ./$(DEPDIR)/benchmark-wino.Po + -rm -f ./$(DEPDIR)/benchmark_sgemm-benchmark-dgemm.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + +benchmarks: $(BENCHMARKS) + +# Perfpublisher script interaction - AB 2014/11/17 +perfpublisher: + +./perfpublisher.sh "$(PERFPUBLISHERFILE)" "$(BENCHMARKS)" "$(CXX)" + mv $(PERFPUBLISHERFILE) .. + make clean + mv ../$(PERFPUBLISHERFILE) . + +define other_compilation + $(CXX) $(CXXFLAGS) $(AM_CXXFLAGS) ${INCLUDES} $(AM_CPPFLAGS) $*.C -o $@ $(LDFLAGS) $(LDADD) $(LOADLIBES) $(LIBS) +endef + +%:%.C + $(other_compilation) + +%:%.cpp + $(other_compilation) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/benchmarks/benchmark-charpoly-mp.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-charpoly-mp.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-charpoly-mp.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-charpoly-mp.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-charpoly.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-charpoly.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-charpoly.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-charpoly.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-checkers.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-checkers.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-checkers.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-checkers.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-dgemm.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dgemm.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-dgemm.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dgemm.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-dgetrf.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dgetrf.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-dgetrf.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dgetrf.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-dgetri.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dgetri.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-dgetri.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dgetri.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-dsytrf.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dsytrf.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-dsytrf.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dsytrf.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-dtrsm.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dtrsm.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-dtrsm.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dtrsm.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-dtrtri.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dtrtri.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-dtrtri.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-dtrtri.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-fadd-lvl2.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fadd-lvl2.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-fadd-lvl2.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fadd-lvl2.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-fdot.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fdot.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-fdot.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fdot.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-fgemm-mp.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemm-mp.C similarity index 98% rename from deps/fflas-ffpack/benchmarks/benchmark-fgemm-mp.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemm-mp.C index 4d349cc06..ca19d84d6 100644 --- a/deps/fflas-ffpack/benchmarks/benchmark-fgemm-mp.C +++ b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemm-mp.C @@ -28,7 +28,6 @@ // everywhere in the call stack #define __FFLASFFPACK_OPENBLAS_NT_ALREADY_SET 1 -#define INTEGER_NO_RNS 1 #if not defined(MG_DEFAULT) #define MG_DEFAULT MG_ACTIVE @@ -101,9 +100,7 @@ int tmain(){ double timeFlint=0.; #endif for (size_t loop=0;loop(ip,p); diff --git a/deps/fflas-ffpack/benchmarks/benchmark-fgemm-rns.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemm-rns.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-fgemm-rns.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemm-rns.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-fgemm.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemm.C similarity index 97% rename from deps/fflas-ffpack/benchmarks/benchmark-fgemm.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemm.C index 91ec24f94..0389ae538 100644 --- a/deps/fflas-ffpack/benchmarks/benchmark-fgemm.C +++ b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemm.C @@ -80,17 +80,16 @@ int main(int argc, char** argv) { if (NBK==-1) NBK = t; // typedef Givaro::Modular Field; - // typedef Givaro::Modular Field; - typedef Givaro::Modular Field; + // typedef Givaro::Modular Field; + // typedef Givaro::Modular Field; // typedef Givaro::Modular Field; // typedef Givaro::ModularBalanced Field; - // typedef Givaro::ModularBalanced Field; - // typedef Givaro::ModularBalanced Field; + typedef Givaro::ModularBalanced Field; + // typedef Givaro::ModularBalanced Field; // typedef Givaro::Modular Field; typedef Field::Element Element; Field F(q); - if (q > F.maxCardinality()) return 1; Timer chrono, TimFreivalds; double timev=0.0; diff --git a/deps/fflas-ffpack/benchmarks/benchmark-fgemv-mp.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemv-mp.C similarity index 79% rename from deps/fflas-ffpack/benchmarks/benchmark-fgemv-mp.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemv-mp.C index 522b032d5..4cb25ee06 100644 --- a/deps/fflas-ffpack/benchmarks/benchmark-fgemv-mp.C +++ b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-fgemv-mp.C @@ -28,9 +28,6 @@ // everywhere in the call stack #define __FFLASFFPACK_OPENBLAS_NT_ALREADY_SET 1 -// RNS is not competitive on classical instances -#define INTEGER_NO_RNS 1 - #if not defined(MG_DEFAULT) #define MG_DEFAULT MG_ACTIVE #endif @@ -90,18 +87,16 @@ static Givaro::Integer q = -1 ; static unsigned long b = 512 ; static size_t m = 512 ; static size_t k = 512 ; -static int p=0; -static int t=MAX_THREADS; +static int nbw = -1 ; static size_t seed= time(NULL); static Argument as[] = { { 'q', "-q Q", "Set the field characteristic (-1 for random).", TYPE_INTEGER , &q }, { 'b', "-b B", "Set the bitsize of the random characteristic.", TYPE_INT , &b }, { 'm', "-m M", "Set the dimension m of the matrix.", TYPE_INT , &m }, { 'k', "-k K", "Set the dimension k of the matrix.", TYPE_INT , &k }, + { 'w', "-w N", "Set the number of winograd levels (-1 for random).", TYPE_INT , &nbw }, { 'i', "-i R", "Set number of repetitions.", TYPE_INT , &iters }, - { 'p', "-p P", "0 for sequential, 1 for 1D iterative", TYPE_INT , &p }, - { 't', "-t T", "number of virtual threads to drive the partition.", TYPE_INT , &t }, - { 's', "-s S", "Sets seed.", TYPE_INT , &seed }, + { 's', "-s S", "Sets seed.", TYPE_INT , &seed }, END_OF_ARGUMENTS }; @@ -112,15 +107,15 @@ int tmain(){ Givaro::Integer::seeding(seed); typedef Givaro::Modular Field; - Givaro::Integer modulus; + Givaro::Integer p; FFLAS::Timer chrono, TimFreivalds; double time=0.; for (size_t loop=0;loop(ip,modulus); - Givaro::Caster(modulus,ip); // to check consistency + IPD.nextprimein(p); + Ints ip; Givaro::Caster(ip,p); + Givaro::Caster(p,ip); // to check consistency Field F(ip); size_t lda,ldb,ldc; @@ -134,10 +129,20 @@ int tmain(){ B= FFLAS::fflas_new(F,k,ldb); C= FFLAS::fflas_new(F,m,ldc); + // for (size_t i=0;i parH(t); - FFLAS::fgemv(F,FFLAS::FflasNoTrans,m,k,alpha,A,lda,B,ldb,beta,C,ldc, parH); - } - } else { // Sequential + { FFLAS::ParSeqHelper::Sequential seqH; FFLAS::fgemv(F,FFLAS::FflasNoTrans,m,k,alpha,A,lda,B,ldb,beta,C,ldc,seqH); } - chrono.stop(); time+=chrono.realtime(); @@ -173,8 +171,8 @@ int tmain(){ cout << "Time: "<< (time/double(iters)) <<" Gfops: "< Field; -typedef Givaro::Modular Field; -//typedef Givaro::ModularBalanced Field; -//typedef Givaro::Modular Field; -//typedef Givaro::Modular Field; +typedef Givaro::ModularBalanced Field; //typedef Givaro::ModularBalanced Field; //typedef Givaro::ZRing Field; //typedef Givaro::UnparametricZRing Field; @@ -171,7 +167,7 @@ int main(int argc, char** argv) { size_t iter = 3 ; bool slab=false; - Givaro::Integer q = 131071 ; + int q = 131071 ; int m = 2000 ; int n = 2000 ; int r = 2000 ; @@ -182,7 +178,7 @@ int main(int argc, char** argv) { bool grp =true; Argument as[] = { { 's', "-s S", "Use the Slab recursive algorithm (LUdivine)instead of the tile recursive algorithm (PLUQ).", TYPE_BOOL , &slab }, - { 'q', "-q Q", "Set the field characteristic (-1 for random).", TYPE_INTEGER , &q }, + { 'q', "-q Q", "Set the field characteristic (-1 for random).", TYPE_INT , &q }, { 'm', "-m M", "Set the row dimension of A.", TYPE_INT , &m }, { 'n', "-n N", "Set the col dimension of A.", TYPE_INT , &n }, { 'r', "-r R", "Set the rank of matrix A.", TYPE_INT , &r }, @@ -196,8 +192,6 @@ int main(int argc, char** argv) { }; FFLAS::parseArguments(argc,argv,as); Field F(q); - if (q>F.maxCardinality()) - return 0; if (r > std::min(m,n)){ std::cerr<<"Warning: rank can not be greater than min (m,n). It has been forced to min (m,n)"< - * Hippolyte Signargout + * Written by Clement Pernet * ========LICENCE======== * This file is part of the library FFLAS-FFPACK. * @@ -26,6 +24,7 @@ #include "fflas-ffpack/fflas-ffpack-config.h" #include #include +#include #include "fflas-ffpack/fflas-ffpack.h" #include "fflas-ffpack/utils/timer.h" @@ -57,8 +56,12 @@ void run_with_field(int q, size_t n, size_t m, size_t t, size_t r, size_t iter, size_t ldts = m; typename Field::RandIter G (F, seed); + FFPACK::RandomMatrix (F, n, n, A, n, G); + Element_ptr A = fflas_new (F, n, lda); + Element_ptr TS = fflas_new(F, n, ldts); + RandomLTQSMatrixWithRankandQSorder (F,n,r,t,A,lda,G); - RandomMatrix(F, n, m, TS, ldts, G); + RandomMatrix(F, n, m, TS, ldts, G); size_t * P = fflas_new (n); size_t * Q = fflas_new (n); @@ -104,7 +107,7 @@ void run_with_field(int q, size_t n, size_t m, size_t t, size_t r, size_t iter, } // ----------- // Standard output for benchmark - Alexis Breust 2014/11/14 - std::cout << "Time: " << (time_gen + time_cbxts) / double(iter) << " Gfops: Irrelevant (Generator) Specific times: " << time_gen / double(iter)<<" (for construction)" << time_cbxts / double(iter)<<" (for CB x TS)" ; + std::cout << "Time: " << time_gen / double(iter) << " Gfops: Irrelevant (Generator) Time: " << time_cbxts / double(iter)<<" (CB x TS)"; } @@ -114,12 +117,12 @@ int main(int argc, char** argv) { openblas_set_num_threads(__FFLASFFPACK_OPENBLAS_NUM_THREADS); #endif - size_t iter = 10; + size_t iter = 1; int q = 131071; - size_t n = 2167; - size_t m = 455; - size_t t = 236; - size_t r = 1100; + size_t n = 2000; + size_t m = 200; + size_t t = 200; + size_t r = 1000; uint64_t seed = FFLAS::getSeed(); Argument as[] = { @@ -136,9 +139,8 @@ int main(int argc, char** argv) { FFLAS::parseArguments(argc,argv,as); run_with_field >(q, n, m, t, r, iter, seed); - - std::cout << "( "; - FFLAS::writeCommandString(std::cout, as) << ")" << std::endl; + + FFLAS::writeCommandString(std::cout, as) << std::endl; return 0; } diff --git a/deps/fflas-ffpack/benchmarks/benchmark-storage-transpose.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-storage-transpose.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-storage-transpose.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-storage-transpose.C diff --git a/deps/fflas-ffpack/benchmarks/benchmark-wino.C b/deps/fflas-ffpack-2.5.0/benchmarks/benchmark-wino.C similarity index 100% rename from deps/fflas-ffpack/benchmarks/benchmark-wino.C rename to deps/fflas-ffpack-2.5.0/benchmarks/benchmark-wino.C diff --git a/deps/fflas-ffpack-2.5.0/build-aux/ar-lib b/deps/fflas-ffpack-2.5.0/build-aux/ar-lib new file mode 100755 index 000000000..0baa4f607 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/build-aux/ar-lib @@ -0,0 +1,270 @@ +#! /bin/sh +# Wrapper for Microsoft lib.exe + +me=ar-lib +scriptversion=2012-03-01.08; # UTC + +# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Written by Peter Rosin . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + + +# func_error message +func_error () +{ + echo "$me: $1" 1>&2 + exit 1 +} + +file_conv= + +# func_file_conv build_file +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv in + mingw) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_at_file at_file operation archive +# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE +# for each of them. +# When interpreting the content of the @FILE, do NOT use func_file_conv, +# since the user would need to supply preconverted file names to +# binutils ar, at least for MinGW. +func_at_file () +{ + operation=$2 + archive=$3 + at_file_contents=`cat "$1"` + eval set x "$at_file_contents" + shift + + for member + do + $AR -NOLOGO $operation:"$member" "$archive" || exit $? + done +} + +case $1 in + '') + func_error "no command. Try '$0 --help' for more information." + ;; + -h | --h*) + cat <. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/deps/fflas-ffpack-2.5.0/build-aux/config.guess b/deps/fflas-ffpack-2.5.0/build-aux/config.guess new file mode 100755 index 000000000..f50dcdb6d --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/build-aux/config.guess @@ -0,0 +1,1480 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2018 Free Software Foundation, Inc. + +timestamp='2018-02-24' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2018 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > "$dummy.c" ; + for c in cc gcc c89 c99 ; do + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "$UNAME_SYSTEM" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ + echo unknown)` + case "$UNAME_MACHINE_ARCH" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval "$set_cc_for_build" + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "$UNAME_VERSION" in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "$machine-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; + *:ekkoBSD:*:*) + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" + exit ;; + *:SolidBSD:*:*) + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:MirBSD:*:*) + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix"$UNAME_RELEASE" + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux"$UNAME_RELEASE" + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval "$set_cc_for_build" + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos"$UNAME_RELEASE" + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos"$UNAME_RELEASE" + ;; + sun4) + echo sparc-sun-sunos"$UNAME_RELEASE" + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos"$UNAME_RELEASE" + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint"$UNAME_RELEASE" + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint"$UNAME_RELEASE" + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint"$UNAME_RELEASE" + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten"$UNAME_RELEASE" + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten"$UNAME_RELEASE" + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix"$UNAME_RELEASE" + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix"$UNAME_RELEASE" + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix"$UNAME_RELEASE" + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos"$UNAME_RELEASE" + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] + then + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] + then + echo m88k-dg-dgux"$UNAME_RELEASE" + else + echo m88k-dg-dguxbcs"$UNAME_RELEASE" + fi + else + echo i586-dg-dgux"$UNAME_RELEASE" + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ "$HP_ARCH" = hppa2.0w ] + then + eval "$set_cc_for_build" + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" + exit ;; + 3050*:HI-UX:*:*) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo "$UNAME_MACHINE"-unknown-osf1mk + else + echo "$UNAME_MACHINE"-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:BSD/OS:*:*) + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case "$UNAME_PROCESSOR" in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + i*:CYGWIN*:*) + echo "$UNAME_MACHINE"-pc-cygwin + exit ;; + *:MINGW64*:*) + echo "$UNAME_MACHINE"-pc-mingw64 + exit ;; + *:MINGW*:*) + echo "$UNAME_MACHINE"-pc-mingw32 + exit ;; + *:MSYS*:*) + echo "$UNAME_MACHINE"-pc-msys + exit ;; + i*:PW*:*) + echo "$UNAME_MACHINE"-pc-pw32 + exit ;; + *:Interix*:*) + case "$UNAME_MACHINE" in + x86) + echo i586-pc-interix"$UNAME_RELEASE" + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix"$UNAME_RELEASE" + exit ;; + IA64) + echo ia64-unknown-interix"$UNAME_RELEASE" + exit ;; + esac ;; + i*:UWIN*:*) + echo "$UNAME_MACHINE"-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + *:GNU:*:*) + # the GNU system + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" + exit ;; + i*86:Minix:*:*) + echo "$UNAME_MACHINE"-pc-minix + exit ;; + aarch64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arm*:Linux:*:*) + eval "$set_cc_for_build" + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + else + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + cris:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + crisv32:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + frv:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + hexagon:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; + ia64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m32r*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m68*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } + ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-"$LIBC" + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-"$LIBC" + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-"$LIBC" + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-"$LIBC" + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-"$LIBC" + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-"$LIBC" + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" + exit ;; + sh64*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sh*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + tile*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + vax:Linux:*:*) + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" + exit ;; + x86_64:Linux:*:*) + if objdump -f /bin/sh | grep -q elf32-x86-64; then + echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32 + else + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + fi + exit ;; + xtensa*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo "$UNAME_MACHINE"-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo "$UNAME_MACHINE"-unknown-stop + exit ;; + i*86:atheos:*:*) + echo "$UNAME_MACHINE"-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo "$UNAME_MACHINE"-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos"$UNAME_RELEASE" + exit ;; + i*86:*DOS:*:*) + echo "$UNAME_MACHINE"-pc-msdosdjgpp + exit ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos"$UNAME_RELEASE" + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos"$UNAME_RELEASE" + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv"$UNAME_RELEASE" + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo "$UNAME_MACHINE"-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo "$UNAME_MACHINE"-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux"$UNAME_RELEASE" + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv"$UNAME_RELEASE" + else + echo mips-unknown-sysv"$UNAME_RELEASE" + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux"$UNAME_RELEASE" + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux"$UNAME_RELEASE" + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux"$UNAME_RELEASE" + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Rhapsody:*:*) + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval "$set_cc_for_build" + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo "$UNAME_MACHINE"-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux"$UNAME_RELEASE" + exit ;; + *:DragonFly:*:*) + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "$UNAME_MACHINE" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" + exit ;; + i*86:rdos:*:*) + echo "$UNAME_MACHINE"-pc-rdos + exit ;; + i*86:AROS:*:*) + echo "$UNAME_MACHINE"-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; +esac + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-functions 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/deps/fflas-ffpack-2.5.0/build-aux/config.sub b/deps/fflas-ffpack-2.5.0/build-aux/config.sub new file mode 100755 index 000000000..1d8e98bce --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/build-aux/config.sub @@ -0,0 +1,1801 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2018 Free Software Foundation, Inc. + +timestamp='2018-02-22' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2018 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + if [ "$basic_machine" != "$1" ] + then os=`echo "$1" | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | wasm32 \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | wasm32-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-pc + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2*) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + x64) + basic_machine=x86_64-pc + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases that might get confused + # with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo "$os" | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4*) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + pru-*) + os=-elf + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` + ;; +esac + +echo "$basic_machine$os" +exit + +# Local variables: +# eval: (add-hook 'write-file-functions 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/deps/fflas-ffpack-2.5.0/build-aux/depcomp b/deps/fflas-ffpack-2.5.0/build-aux/depcomp new file mode 100755 index 000000000..65cbf7093 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/build-aux/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2018 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/deps/fflas-ffpack-2.5.0/build-aux/install-sh b/deps/fflas-ffpack-2.5.0/build-aux/install-sh new file mode 100755 index 000000000..8175c640f --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/build-aux/install-sh @@ -0,0 +1,518 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2018-03-11.20; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + # Note that $RANDOM variable is not portable (e.g. dash); Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p' feature. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/deps/fflas-ffpack-2.5.0/build-aux/ltmain.sh b/deps/fflas-ffpack-2.5.0/build-aux/ltmain.sh new file mode 100644 index 000000000..0cb7f90d3 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/build-aux/ltmain.sh @@ -0,0 +1,11251 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.6 Debian-2.4.6-14" +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2015-10-07.11; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + _G_rc_run_hooks=false + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + if eval $_G_hook '"$@"'; then + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + _G_rc_run_hooks=: + fi + done + + $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, you may remove/edit +# any options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. In this case you also must return $EXIT_SUCCESS to let the +# hook's caller know that it should pay attention to +# '_result'. Returning $EXIT_FAILURE signalizes that +# arguments are left untouched by the hook and therefore caller will ignore the +# result variable. +# +# Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# # No change in '$@' (ignored completely by this hook). There is +# # no need to do the equivalent (but slower) action: +# # func_quote_for_eval ${1+"$@"} +# # my_options_prep_result=$func_quote_for_eval_result +# false +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# args_changed=false +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: +# args_changed=: +# ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# args_changed=: +# ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@", we could need that later +# # if $args_changed is true. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; +# esac +# done +# +# if $args_changed; then +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# fi +# +# $args_changed +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# false +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll also need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + _G_func_options_finish_exit=false + if func_run_hooks func_options ${1+"$@"}; then + func_options_finish_result=$func_run_hooks_result + _G_func_options_finish_exit=: + fi + + $_G_func_options_finish_exit +} + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + _G_rc_options=false + + for my_func in options_prep parse_options validate_options options_finish + do + if eval func_$my_func '${1+"$@"}'; then + eval _G_res_var='$'"func_${my_func}_result" + eval set dummy "$_G_res_var" ; shift + _G_rc_options=: + fi + done + + # Save modified positional parameters for caller. As a top-level + # options-parser function we always need to set the 'func_options_result' + # variable (regardless the $_G_rc_options value). + if $_G_rc_options; then + func_options_result=$_G_res_var + else + func_quote_for_eval ${1+"$@"} + func_options_result=$func_quote_for_eval_result + fi + + $_G_rc_options +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propagate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + _G_rc_options_prep=false + if func_run_hooks func_options_prep ${1+"$@"}; then + _G_rc_options_prep=: + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result + fi + + $_G_rc_options_prep +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + _G_rc_parse_options=false + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + if func_run_hooks func_parse_options ${1+"$@"}; then + eval set dummy "$func_run_hooks_result"; shift + _G_rc_parse_options=: + fi + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_match_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + if test $# = 0 && func_missing_arg $_G_opt; then + _G_rc_parse_options=: + break + fi + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) _G_rc_parse_options=: ; break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; + esac + + $_G_match_parse_options && _G_rc_parse_options=: + done + + + if $_G_rc_parse_options; then + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result + fi + + $_G_rc_parse_options +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + _G_rc_validate_options=false + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + if func_run_hooks func_validate_options ${1+"$@"}; then + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result + _G_rc_validate_options=: + fi + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + $_G_rc_validate_options +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname $scriptversion Debian-2.4.6-14 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + _G_rc_lt_options_prep=: + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + *) + _G_rc_lt_options_prep=false + ;; + esac + + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result + fi + + $_G_rc_lt_options_prep +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + _G_rc_lt_parse_options=false + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_match_lt_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; + esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: + done + + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result + fi + + $_G_rc_lt_parse_options +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC + # -static-* direct GCC to link specific libraries statically + # -fcilkplus Cilk Plus language extension features for C/C++ + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type '$version_type'" + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/deps/fflas-ffpack-2.5.0/build-aux/missing b/deps/fflas-ffpack-2.5.0/build-aux/missing new file mode 100755 index 000000000..625aeb118 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/build-aux/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/deps/fflas-ffpack-2.5.0/build-aux/test-driver b/deps/fflas-ffpack-2.5.0/build-aux/test-driver new file mode 100755 index 000000000..b8521a482 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/build-aux/test-driver @@ -0,0 +1,148 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <$log_file 2>&1 +estatus=$? + +if test $enable_hard_errors = no && test $estatus -eq 99; then + tweaked_estatus=1 +else + tweaked_estatus=$estatus +fi + +case $tweaked_estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>$log_file + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/deps/fflas-ffpack-2.5.0/config.h.in b/deps/fflas-ffpack-2.5.0/config.h.in new file mode 100644 index 000000000..04881a0cc --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/config.h.in @@ -0,0 +1,145 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Define whether to compile in DEBUG mode */ +#undef DEBUG + +/* Define that architecture uses big endian storage */ +#undef HAVE_BIG_ENDIAN + +/* Define if BLAS is available */ +#undef HAVE_BLAS + +/* Define if BLAS is a CBLAS */ +#undef HAVE_CBLAS + +/* Define if C interface to LAPACK is available */ +#undef HAVE_CLAPACK + +/* define if the compiler supports basic C++11 syntax */ +#undef HAVE_CXX11 + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_FLOAT_H + +/* Define that compiler allows int128_t types */ +#undef HAVE_INT128 + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if LAPACK is installed */ +#undef HAVE_LAPACK + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define that architecture uses little endian storage */ +#undef HAVE_LITTLE_ENDIAN + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define if we use MKL for blas/lapack */ +#undef HAVE_MKL + +/* Define to 1 if you have the header file. */ +#undef HAVE_PTHREAD_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDDEF_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Sets the number of threads given to OpenBLAS (default is 1) */ +#undef OPENBLAS_NUM_THREADS + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* The size of `char', as computed by sizeof. */ +#undef SIZEOF_CHAR + +/* The size of `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of `long long', as computed by sizeof. */ +#undef SIZEOF_LONG_LONG + +/* The size of `short', as computed by sizeof. */ +#undef SIZEOF_SHORT + +/* The size of `__int64_t', as computed by sizeof. */ +#undef SIZEOF___INT64_T + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if OMP is available */ +#undef USE_OPENMP + +/* Version number of package */ +#undef VERSION + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif diff --git a/deps/fflas-ffpack-2.5.0/configure b/deps/fflas-ffpack-2.5.0/configure new file mode 100755 index 000000000..0097441d3 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/configure @@ -0,0 +1,21496 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for FFLAS-FFPACK 2.5.0. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: ffpack-devel@googlegroups.com about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='FFLAS-FFPACK' +PACKAGE_TARNAME='fflas-ffpack' +PACKAGE_VERSION='2.5.0' +PACKAGE_STRING='FFLAS-FFPACK 2.5.0' +PACKAGE_BUGREPORT='ffpack-devel@googlegroups.com' +PACKAGE_URL='https://github.com/linbox-team/fflas-ffpack' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +REQUIRED_FLAGS +FFLASFFPACK_CXXFLAGS +PRECOMPILE_LIBS +PRECOMPILE_FLAGS +FFLASFFPACK_PRECOMPILED_FALSE +FFLASFFPACK_PRECOMPILED_TRUE +FFLASFFPACK_BUILD_DOC_FALSE +FFLASFFPACK_BUILD_DOC_TRUE +FFLASFFPACK_DOC_PATH +FFLASFFPACK_HAVE_LAPACK_FALSE +FFLASFFPACK_HAVE_LAPACK_TRUE +LAPACK_LIBS +BLAS_VENDOR +USE_MKL +BLAS_LIBS +BLAS_CFLAGS +GIVARO_LIBS +GIVARO_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +PARLIBS +PARFLAGS +FFLASFFPACK_HAVE_OMP_FALSE +FFLASFFPACK_HAVE_OMP_TRUE +OMPFLAGS +WARN +PROF +PROFILE_FALSE +PROFILE_TRUE +USE_DEBUG +DEBUG_FALSE +DEBUG_TRUE +HAVE_CXX11 +CCNAM +CXXCPP +CPP +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +LIBTOOL +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +ac_ct_CC +CFLAGS +CC +ac_ct_AR +AR +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CXX +CPPFLAGS +LDFLAGS +CXXFLAGS +CXX +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_os +target_vendor +target_cpu +target +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL +am__quote' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_aix_soname +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_debug +enable_profile +enable_warnings +with_archnative +enable_openmp +with_default +with_all +with_blas_cflags +with_blas_libs +with_openblas_num_threads +with_docdir +with_doxygen +enable_doc +enable_precompilation +' + ac_precious_vars='build_alias +host_alias +target_alias +CXX +CXXFLAGS +LDFLAGS +LIBS +CPPFLAGS +CCC +CC +CFLAGS +LT_SYS_LIBRARY_PATH +CPP +CXXCPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +GIVARO_CFLAGS +GIVARO_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures FFLAS-FFPACK 2.5.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/fflas-ffpack] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of FFLAS-FFPACK 2.5.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-debug=yes|no enable debugging options in library + --enable-profile=yes|no enable profiling options in library + --enable-warnings=yes|full|no + enable warnings when compiling the library. If + nothing or yes is given, more aggressive compiler + warnings are passed to the compiler. If full is + given, we become paranoïd about warnings and treat + them as errors. + --enable-openmp Use OpenMP + + --enable-doc Enable building documentation + --enable-precompilation Enable precompilation of the standard + specializations + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --without-archnative do not use -march=native or -mcpu=native (default is + to use it if not already present in CXXFLAGS) + --with-default= Add to the default path for external package + checking. Set as default with /usr and /usr/local. + --with-all= |yes|no + Use all external packages. If the argument is no, + you not sure that all libraries are reachable with + the default path. If the argument is yes or , + that means that all libraries are reachable with the + default path. Otherwise add to default path + and enable all external packages. + --with-blas-cflags= + CFLAGS for BLAS/LAPACK (i.e. -I/path/to/toto-blas) + + --with-blas-libs= LIBS for BLAS/LAPACK (i.e. -L/path/to/toto-blas + -ltoto-blas) + + --with-openblas-num-threads= + Set the number of threads given to OpenBLAS + + --with-docdir= Where the FFLAS-FFPACK documentation should be + installed + --with-doxygen= Give the path to Doxygen. Note: --enable-doc needed + +Some influential environment variables: + CXX C++ compiler command + CXXFLAGS C++ compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CC C compiler command + CFLAGS C compiler flags + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + CPP C preprocessor + CXXCPP C++ preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + GIVARO_CFLAGS + C compiler flags for GIVARO, overriding pkg-config + GIVARO_LIBS linker flags for GIVARO, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +FFLAS-FFPACK home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +FFLAS-FFPACK configure 2.5.0 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_cxx_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_compile + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_cxx_try_cpp LINENO +# ------------------------ +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_cpp + +# ac_fn_cxx_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_link + +# ac_fn_cxx_try_run LINENO +# ------------------------ +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_cxx_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_run + +# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES +# --------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_cxx_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## -------------------------------------------- ## +## Report this to ffpack-devel@googlegroups.com ## +## -------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_cxx_check_header_mongrel + +# ac_fn_cxx_compute_int LINENO EXPR VAR INCLUDES +# ---------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_cxx_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_hi=$ac_mid; break +else + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_lo=$ac_mid; break +else + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + ac_lo= ac_hi= +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_hi=$ac_mid +else + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval () { return $2; } +static unsigned long int ulongval () { return $2; } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + echo >>conftest.val; read $3 &5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_cxx_check_type +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by FFLAS-FFPACK $as_me 2.5.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + +ac_aux_dir= +for ac_dir in build-aux "$srcdir"/build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +ac_config_headers="$ac_config_headers config.h" + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +$as_echo_n "checking target system type... " >&6; } +if ${ac_cv_target+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +$as_echo "$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + +am__api_version='1.16' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='fflas-ffpack' + VERSION='2.5.0' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + + +ac_config_commands="$ac_config_commands fflas-ffpack/config.h" + + +# Set CXXFLAGS to an empty string if not defined, and save it. We must do it +# before calling AC_PROG_CXX that sets it to '-O2 -g' if not defined +: ${CXXFLAGS=""} +ORIGINAL_CXXFLAGS="${CXXFLAGS}" + +# We set the language to C++ +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 +$as_echo_n "checking whether the C++ compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C++ compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 +$as_echo_n "checking for C++ compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C++ compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if ${ac_cv_cxx_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if ${ac_cv_prog_cxx_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : + ;; +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + +# +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar lib "link -lib" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar lib "link -lib" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 +$as_echo_n "checking the archiver ($AR) interface... " >&6; } +if ${am_cv_ar_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + am_cv_ar_interface=ar + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int some_variable = 0; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 +$as_echo "$am_cv_ar_interface" >&6; } + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + as_fn_error $? "could not determine $AR interface" "$LINENO" 5 + ;; +esac + + +# Libtool +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.6' +macro_revision='2.4.6' + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cr} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5 + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cr libconftest.a conftest.o" >&5 + $AR cr libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + +func_stripname_cnf () +{ + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;; + esac +} # func_stripname_cnf + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + link_all_deplibs=no + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen=shl_load +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen=dlopen +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report what library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +CC=$lt_save_CC + + if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; } +if test -z "$CXXCPP"; then + if ${ac_cv_prog_CXXCPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +else + _lt_caught_CXX_error=yes +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +compiler_needs_object_CXX=no +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_direct_absolute_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +inherit_rpath_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + + # save warnings/boilerplate of simple test code + ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + + ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + compiler_CXX=$CC + func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' + else + lt_prog_compiler_no_builtin_flag_CXX= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + ld_shlibs_CXX=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + file_list_spec_CXX='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct_CXX=no + hardcode_direct_absolute_CXX=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec_CXX='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + always_export_symbols_CXX=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + no_undefined_flag_CXX='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' $wl-bernotok' + allow_undefined_flag_CXX=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi + archive_cmds_need_lc_CXX=yes + archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_CXX=' ' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=yes + file_list_spec_CXX='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' + enable_shared_with_static_runtimes_CXX=yes + # Don't use ranlib + old_postinstall_cmds_CXX='chmod 644 $oldlib' + postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + export_dynamic_flag_spec_CXX='$wl--export-all-symbols' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + + + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec_CXX='' + fi + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + if test yes != "$lt_cv_apple_cc_single_mod"; then + archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi + + else + ld_shlibs_CXX=no + fi + + ;; + + os2*) + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_minus_L_CXX=yes + allow_undefined_flag_CXX=unsupported + shrext_cmds=.dll + archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes_CXX=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + ld_shlibs_CXX=no + ;; + + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + + hpux9*) + hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='$wl-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + export_dynamic_flag_spec_CXX='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + export_dynamic_flag_spec_CXX='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + hardcode_libdir_separator_CXX=: + inherit_rpath_CXX=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [1-5].* | *pgcpp\ [1-5].*) + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object_CXX=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + ld_shlibs_CXX=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + hardcode_direct_absolute_CXX=yes + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='$wl-E' + whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + ld_shlibs_CXX=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + case $host in + osf3*) + allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' + archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + ;; + *) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + ;; + esac + + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + no_undefined_flag_CXX=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + fi + + hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='$wl-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_CXX='$wl-z,text' + allow_undefined_flag_CXX='$wl-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='$wl-R,$libdir' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" + ;; + *) + archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } + test no = "$ld_shlibs_CXX" && can_build_shared=no + + GCC_CXX=$GXX + LD_CXX=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + # Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF + + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX=$prev$p + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX=$prev$p + else + postdeps_CXX="${postdeps_CXX} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX=$p + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX=$p + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +case $host_os in +interix[3-9]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + compiler_lib_search_dirs_CXX= +if test -n "${compiler_lib_search_path_CXX}"; then + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + + + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + lt_prog_compiler_pic_CXX='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic_CXX='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static_CXX='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix[4-9]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-qpic' + lt_prog_compiler_static_CXX='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } +lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } +if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works_CXX=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works_CXX=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works_CXX=yes + fi + else + lt_cv_prog_compiler_static_works_CXX=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then + : +else + lt_prog_compiler_static_CXX= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs_CXX=no + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } +test no = "$ld_shlibs_CXX" && can_build_shared=no + +with_gnu_ld_CXX=$with_gnu_ld + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc_CXX=no + else + lt_cv_archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec_CXX='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || + test -n "$runpath_var_CXX" || + test yes = "$hardcode_automatic_CXX"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct_CXX" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" && + test no != "$hardcode_minus_L_CXX"; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 +$as_echo "$hardcode_action_CXX" >&6; } + +if test relink = "$hardcode_action_CXX" || + test yes = "$inherit_rpath_CXX"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + + + +# Look for headers + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +for ac_header in float.h limits.h stddef.h stdlib.h string.h sys/time.h stdint.h pthread.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +# +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + + +################################################# +$as_echo "## --------------------------------------- ## +## START FFLAS-FFPACK CONFIG ## +## --------------------------------------- ##" +################################################# + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for family name of compiler" >&5 +$as_echo_n "checking for family name of compiler... " >&6; } + + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifdef __INTEL_COMPILER + int main() { return 0 ; } + #else + not intel + #endif +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: icc" >&5 +$as_echo "icc" >&6; } + CCNAM=icc + + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + + if test -z "${CCNAM}"; then : + + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifdef __PATHSCALE__ + int main() { return !(__PATHCC__ >= 4) ; } + #else + not ekopath either. + #endif +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + CCNAM=eko +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi + + if test -z "${CCNAM}"; then : + + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifdef __clang__ + int main() { return !((__clang_major__ >= 4) ||(__clang_major__ ==3 && __clang_minor__ >= 9) ) ; } + #else + not clang3.9 + #endif +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + + CCNAM=clang + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCNAM" >&5 +$as_echo "$CCNAM" >&6; } +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi + + if test -z "${CCNAM}"; then : + + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifdef __clang__ + int main() { return !(__clang_major__ ==3 && __clang_minor__ >=1 && __clang_minor__ <=8) ; } + #else + not clang3.8 + #endif +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + + CCNAM=clang38 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCNAM" >&5 +$as_echo "$CCNAM" >&6; } +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi + + if test -z "${CCNAM}"; then : + + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifdef __GNUC__ + int main() { return !(__GNUC__ >= 5 ) ; } + #else + not gcc neither. + #endif +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + CCNAM=gcc +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi + + + if test -z "${CCNAM}"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 +$as_echo "unknown" >&6; } + CCNAM=unknown + + echo + echo " *** unknow compiler. please file a bug " + echo + +fi + + + +# We need a C++11 compiler now - AB 2014-12-12 +# clang-3.8 does not support __float128 without explicitly passing it -std=c++11 +if test "x${CCNAM}" = "xclang38"; then : + ax_cxx_compile_cxx11_required=truednl + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + ac_success=no + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features by default" >&5 +$as_echo_n "checking whether $CXX supports C++11 features by default... " >&6; } +if ${ax_cv_cxx_compile_cxx11+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = static_cast(c); + + auto d = a; + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ax_cv_cxx_compile_cxx11=yes +else + ax_cv_cxx_compile_cxx11=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx11" >&5 +$as_echo "$ax_cv_cxx_compile_cxx11" >&6; } + if test x$ax_cv_cxx_compile_cxx11 = xyes; then + ac_success=yes + fi + + + + if test x$ac_success = xno; then + for switch in -std=c++11 -std=c++0x; do + cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5 +$as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; } +if eval \${$cachevar+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $switch" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = static_cast(c); + + auto d = a; + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + eval $cachevar=yes +else + eval $cachevar=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CXXFLAGS="$ac_save_CXXFLAGS" +fi +eval ac_res=\$$cachevar + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + if eval test x\$$cachevar = xyes; then + CXX11FLAGS="$switch" + ac_success=yes + break + fi + done + fi + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x$ax_cxx_compile_cxx11_required = xtrue; then + if test x$ac_success = xno; then + as_fn_error $? "*** A compiler with support for C++11 language features is required." "$LINENO" 5 + fi + else + if test x$ac_success = xno; then + HAVE_CXX11=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5 +$as_echo "$as_me: No compiler with C++11 support was found" >&6;} + else + HAVE_CXX11=1 + +$as_echo "#define HAVE_CXX11 1" >>confdefs.h + + fi + + + fi + +else + ax_cxx_compile_cxx11_required=truednl + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + ac_success=no + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features by default" >&5 +$as_echo_n "checking whether $CXX supports C++11 features by default... " >&6; } +if ${ax_cv_cxx_compile_cxx11+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = static_cast(c); + + auto d = a; + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ax_cv_cxx_compile_cxx11=yes +else + ax_cv_cxx_compile_cxx11=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx11" >&5 +$as_echo "$ax_cv_cxx_compile_cxx11" >&6; } + if test x$ax_cv_cxx_compile_cxx11 = xyes; then + ac_success=yes + fi + + if test x$ac_success = xno; then + for switch in -std=gnu++11 -std=gnu++0x; do + cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5 +$as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; } +if eval \${$cachevar+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $switch" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = static_cast(c); + + auto d = a; + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + eval $cachevar=yes +else + eval $cachevar=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CXXFLAGS="$ac_save_CXXFLAGS" +fi +eval ac_res=\$$cachevar + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + if eval test x\$$cachevar = xyes; then + CXX11FLAGS="$switch" + ac_success=yes + break + fi + done + fi + + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x$ax_cxx_compile_cxx11_required = xtrue; then + if test x$ac_success = xno; then + as_fn_error $? "*** A compiler with support for C++11 language features is required." "$LINENO" 5 + fi + else + if test x$ac_success = xno; then + HAVE_CXX11=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5 +$as_echo "$as_me: No compiler with C++11 support was found" >&6;} + else + HAVE_CXX11=1 + +$as_echo "#define HAVE_CXX11 1" >>confdefs.h + + fi + + + fi + + +fi +REQUIRED_FLAGS="${CXX11FLAGS}" +# Add the c++11 flags for the configure compilations as clang needs it to work properly with a glibc++ compiled with gcc +CXXFLAGS="${CXX11FLAGS} ${CXXFLAGS}" + +$as_echo --------------------------------------- + +# Set OPTIM_FLAGS, DEBUG_FLAGS depending on compiler and command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable debugging options in the library" >&5 +$as_echo_n "checking whether to enable debugging options in the library... " >&6; } + # Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; USE_DEBUG=$enableval +else + USE_DEBUG=no +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_DEBUG" >&5 +$as_echo "$USE_DEBUG" >&6; } + if test x$USE_DEBUG = xyes; then + DEBUG_TRUE= + DEBUG_FALSE='#' +else + DEBUG_TRUE='#' + DEBUG_FALSE= +fi + + if test -z "$DEBUG_TRUE"; then : + +$as_echo "#define DEBUG 1" >>confdefs.h + +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable profiling everything in the library" >&5 +$as_echo_n "checking whether to enable profiling everything in the library... " >&6; } + # Check whether --enable-profile was given. +if test "${enable_profile+set}" = set; then : + enableval=$enable_profile; USE_PROFILE=$enableval +else + USE_PROFILE=no +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_PROFILE" >&5 +$as_echo "$USE_PROFILE" >&6; } + if test $USE_PROFILE = yes; then + PROFILE_TRUE= + PROFILE_FALSE='#' +else + PROFILE_TRUE='#' + PROFILE_FALSE= +fi + + PROF=$USE_PROFILE + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable warnings when compiling the library" >&5 +$as_echo_n "checking whether to enable warnings when compiling the library... " >&6; } + # Check whether --enable-warnings was given. +if test "${enable_warnings+set}" = set; then : + enableval=$enable_warnings; USE_WARNINGS=$enableval +else + USE_WARNINGS=no +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_WARNINGS" >&5 +$as_echo "$USE_WARNINGS" >&6; } + WARN=$USE_WARNINGS + + + + + + + + # --enable-debug ? + # __FFLASFFPACK_DEBUG will be (un)set in fflas-ffpack/config.h + #TODO use -fast for icc, -ipa for eko... + if test "x$USE_DEBUG" = "xyes"; then : + OPTIM_FLAGS="-O0" + DEBUG_FLAGS="-Wall -g -UNDEBUG -DDEBUG" +else + OPTIM_FLAGS="-O2" + DEBUG_FLAGS="-Wall -DNDEBUG -UDEBUG" + +fi + + # --enable-profile ? + if test "x$PROF" = "xyes"; then : + DEBUG_FLAGS+=" -pg" +fi + + # --enable-warnings ? + if test "x$WARN" = "xyes" -o "x$WARN" = "xfull"; then : + case $CCNAM in #( + eko) : + ;; #( + gcc*|icc*|clang*) : + DEBUG_FLAGS+=" -Wextra" ;; #( + *) : + sed 'h;s/./*/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Unsupported compiler ($CCNAM). Please file a bug. ## +_ASBOX + ;; +esac + +fi + + if test "x$WARN" = "xfull"; then : + case $CCNAM in #( + eko) : + ;; #( + gcc*|icc*|clang*) : + + DEBUG_FLAGS+=" -Wuninitialized -Wconversion -Wcast-qual " + DEBUG_FLAGS+=" -pedantic -Wshadow -Wpointer-arith " + DEBUG_FLAGS+=" -Wwrite-strings -Wno-long-long" + case $CCNAM in #( + icc) : + DEBUG_FLAGS+=" -Wcheck -ansi" ;; #( + gcc*) : + + DEBUG_FLAGS+=" -Wno-vla" + DEBUG_FLAGS+=" -Wcast-align -Wno-variadic-macros" + ;; #( + clang*) : + + DEBUG_FLAGS+=" -Wno-vla-extension -D__STRICT_ANSI__" + DEBUG_FLAGS+=" -Wcast-align -Wno-variadic-macros" + ;; #( + *) : + ;; +esac + ;; #( + *) : + sed 'h;s/./*/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Unsupported compiler ($CCNAM). Please file a bug. ## +_ASBOX + ;; +esac + +fi + + +# Append -march=native or -mcpu=native (if recognized by the compiler) to +# OPTIM_FLAGS if not present in CXXFLAGS and not cross-compiling and +# --without-archnative is not set + + +# Check whether --with-archnative was given. +if test "${with_archnative+set}" = set; then : + withval=$with_archnative; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler accepts -march=native" >&5 +$as_echo_n "checking whether C++ compiler accepts -march=native... " >&6; } +if ${ax_cv_check_cxxflags___march_native+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CXXFLAGS + CXXFLAGS="$CXXFLAGS -march=native" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ax_cv_check_cxxflags___march_native=yes +else + ax_cv_check_cxxflags___march_native=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CXXFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cxxflags___march_native" >&5 +$as_echo "$ax_cv_check_cxxflags___march_native" >&6; } +if test "x$ax_cv_check_cxxflags___march_native" = xyes; then : + + case $CXXFLAGS in #( + *-march=*) : + ;; #( + *) : + # do nothing if already set in CXXFLAGS + if test "x${with_archnative}" == "xno"; then : + +else + # do nothing if option is set to no + if test "${host}" != "${build}" -o "${host}" != "${target}"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: \"For efficiency you may want to add a '-march=...' flag in CXXFLAGS\"" >&5 +$as_echo "$as_me: \"For efficiency you may want to add a '-march=...' flag in CXXFLAGS\"" >&6;} +else + { $as_echo "$as_me:${as_lineno-$LINENO}: \"Adding '-march=native' to OPTIM_FLAGS\"" >&5 +$as_echo "$as_me: \"Adding '-march=native' to OPTIM_FLAGS\"" >&6;} + OPTIM_FLAGS+=" -march=native" +fi +fi ;; +esac + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler accepts -mcpu=native" >&5 +$as_echo_n "checking whether C++ compiler accepts -mcpu=native... " >&6; } +if ${ax_cv_check_cxxflags___mcpu_native+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CXXFLAGS + CXXFLAGS="$CXXFLAGS -mcpu=native" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ax_cv_check_cxxflags___mcpu_native=yes +else + ax_cv_check_cxxflags___mcpu_native=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CXXFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cxxflags___mcpu_native" >&5 +$as_echo "$ax_cv_check_cxxflags___mcpu_native" >&6; } +if test "x$ax_cv_check_cxxflags___mcpu_native" = xyes; then : + + case $CXXFLAGS in #( + *-cpu=*) : + ;; #( + *) : + # do nothing if already set in CXXFLAGS + if test "x${with_archnative}" == "xno"; then : + +else + # do nothing if option is set to no + if test "${host}" != "${build}" -o "${host}" != "${target}"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: \"For efficiency you may want to add a '-cpu=...' flag in CXXFLAGS\"" >&5 +$as_echo "$as_me: \"For efficiency you may want to add a '-cpu=...' flag in CXXFLAGS\"" >&6;} +else + { $as_echo "$as_me:${as_lineno-$LINENO}: \"Adding '-mcpu=native' to OPTIM_FLAGS\"" >&5 +$as_echo "$as_me: \"Adding '-mcpu=native' to OPTIM_FLAGS\"" >&6;} + OPTIM_FLAGS+=" -mcpu=native" +fi +fi ;; +esac + +else + : +fi + + +fi + + + +# Append -mfpmath=sse to OPTIM_FLAGS on i386 and i686 architecture with SSE + + + + BACKUP_CXXFLAGS="${CXXFLAGS}" + CXXFLAGS="${OPTIM_FLAGS} ${CXXFLAGS}" + case $target in #( + *i386*|*i686*) : + if test "$cross_compiling" = yes; then : + # either the flag is not recognized by the compiler or + # SSE is not avail => do nothing + { $as_echo "$as_me:${as_lineno-$LINENO}: \"If available you may want to add + '-mfpmath=sse' to flags\"" >&5 +$as_echo "$as_me: \"If available you may want to add + '-mfpmath=sse' to flags\"" >&6;} +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifdef __SSE__ + return 0; + #else + return 1; + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: \"Adding '-mfpmath=sse' to OPTIM_FLAGS\"" >&5 +$as_echo "$as_me: \"Adding '-mfpmath=sse' to OPTIM_FLAGS\"" >&6;} + OPTIM_FLAGS+=" -mfpmath=sse" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + # cross-compilation case + ;; #( + *) : + ;; +esac # not on i386 nor i686 => do nothing + CXXFLAGS="${BACKUP_CXXFLAGS}" + + +$as_echo --------------------------------------- +# Machine characteristics + +# Size of some types +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 +$as_echo_n "checking size of char... " >&6; } +if ${ac_cv_sizeof_char+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_char" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (char) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_char=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 +$as_echo "$ac_cv_sizeof_char" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_CHAR $ac_cv_sizeof_char +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 +$as_echo_n "checking size of short... " >&6; } +if ${ac_cv_sizeof_short+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_short" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (short) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_short=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 +$as_echo "$ac_cv_sizeof_short" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SHORT $ac_cv_sizeof_short +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 +$as_echo_n "checking size of int... " >&6; } +if ${ac_cv_sizeof_int+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_int" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 +$as_echo "$ac_cv_sizeof_int" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT $ac_cv_sizeof_int +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 +$as_echo_n "checking size of long... " >&6; } +if ${ac_cv_sizeof_long+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (long) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_long=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +$as_echo "$ac_cv_sizeof_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 +$as_echo_n "checking size of long long... " >&6; } +if ${ac_cv_sizeof_long_long+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_long_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (long long) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_long_long=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 +$as_echo "$ac_cv_sizeof_long_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of __int64_t" >&5 +$as_echo_n "checking size of __int64_t... " >&6; } +if ${ac_cv_sizeof___int64_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (__int64_t))" "ac_cv_sizeof___int64_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type___int64_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (__int64_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof___int64_t=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof___int64_t" >&5 +$as_echo "$ac_cv_sizeof___int64_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF___INT64_T $ac_cv_sizeof___int64_t +_ACEOF + + + +# Looking for int128 +ac_fn_cxx_check_type "$LINENO" "__int128_t" "ac_cv_type___int128_t" "$ac_includes_default" +if test "x$ac_cv_type___int128_t" = xyes; then : + +$as_echo "#define HAVE_INT128 1" >>confdefs.h + +fi + + + +# check endianness of the architecture + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + +$as_echo "#define HAVE_BIG_ENDIAN 1" >>confdefs.h +;; #( + no) + +$as_echo "#define HAVE_LITTLE_ENDIAN 1" >>confdefs.h + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + +$as_echo --------------------------------------- + +# Looking for OpenMP + # Check whether --enable-openmp was given. +if test "${enable_openmp+set}" = set; then : + enableval=$enable_openmp; avec_omp=$enable_openmp +else + avec_omp=yes + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenMP" >&5 +$as_echo_n "checking for OpenMP... " >&6; } + if test "x$avec_omp" != "xno" ; then : + + BACKUP_CXXFLAGS=${CXXFLAGS} + CXXFLAGS="${BACKUP_CXXFLAGS} ${OMPFLAGS}" + if test "$cross_compiling" = yes; then : + + echo "cross compiling...disabling" + omp_found="no" + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + int main() { + int p = omp_get_num_threads(); + return 0; + } + +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + omp_found="yes" +else + omp_found="no" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + if test "x$omp_found" = "xyes" ; then : + + +$as_echo "#define USE_OPENMP 1" >>confdefs.h + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_OMP=yes + +else + + OMPFLAGS= + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + +fi + CXXFLAGS=${BACKUP_CXXFLAGS} + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +fi + if test "x$HAVE_OMP" = "xyes"; then + FFLASFFPACK_HAVE_OMP_TRUE= + FFLASFFPACK_HAVE_OMP_FALSE='#' +else + FFLASFFPACK_HAVE_OMP_TRUE='#' + FFLASFFPACK_HAVE_OMP_FALSE= +fi + + + + +PARFLAGS="${OMPFLAGS}" +PARLIBS="${OMPFLAGS}" + + + + +# Feature checks + + + +# Check whether --with-default was given. +if test "${with_default+set}" = set; then : + withval=$with_default; if test "$withval" = yes ; then + echo "Default path = /usr /usr/local" + DEFAULT_CHECKING_PATH="/usr /usr/local" + else + echo "Default path = $withval /usr /usr/local" + DEFAULT_CHECKING_PATH="$withval /usr /usr/local" + fi + +else + + echo "Default path = /usr /usr/local" + DEFAULT_CHECKING_PATH="/usr /usr/local" + +fi + + + + +# Check whether --with-all was given. +if test "${with_all+set}" = set; then : + withval=$with_all; if test "$withval" = yes ; then + check_all="yes" + echo "Checking all external packages in ${DEFAULT_CHECKING_PATH}" + + elif test "$withval" != no ; then + check_all="yes" + DEFAULT_CHECKING_PATH="$withval ${DEFAULT_CHECKING_PATH}" + echo "Checking all external packages in ${DEFAULT_CHECKING_PATH}" + fi + +fi + + +if test -n "$check_all"; then + + GMP_HOME_PATH="${DEFAULT_CHECKING_PATH}" + GIVARO_HOME_PATH="${DEFAULT_CHECKING_PATH}" +# NTL_HOME_PATH="${DEFAULT_CHECKING_PATH}" +# LIDIA_HOME_PATH="${DEFAULT_CHECKING_PATH}" +# SACLIB_HOME_PATH="${DEFAULT_CHECKING_PATH}" +# MAPLE_HOME_PATH="${DEFAULT_CHECKING_PATH} unknown" +# EXPAT_HOME_PATH="${DEFAULT_CHECKING_PATH}" + BLAS_HOME_PATH="${DEFAULT_CHECKING_PATH}" +fi + + + + + +# Looking for Givaro. We get the flags for GMP at the same time + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIVARO" >&5 +$as_echo_n "checking for GIVARO... " >&6; } + +if test -n "$GIVARO_CFLAGS"; then + pkg_cv_GIVARO_CFLAGS="$GIVARO_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"givaro >= 4.1.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "givaro >= 4.1.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GIVARO_CFLAGS=`$PKG_CONFIG --cflags "givaro >= 4.1.2" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GIVARO_LIBS"; then + pkg_cv_GIVARO_LIBS="$GIVARO_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"givaro >= 4.1.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "givaro >= 4.1.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GIVARO_LIBS=`$PKG_CONFIG --libs "givaro >= 4.1.2" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GIVARO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "givaro >= 4.1.2" 2>&1` + else + GIVARO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "givaro >= 4.1.2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GIVARO_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (givaro >= 4.1.2) were not met: + +$GIVARO_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GIVARO_CFLAGS +and GIVARO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GIVARO_CFLAGS +and GIVARO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GIVARO_CFLAGS=$pkg_cv_GIVARO_CFLAGS + GIVARO_LIBS=$pkg_cv_GIVARO_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + BACKUP_CXXFLAGS=${CXXFLAGS} + BACKUP_LIBS=${LIBS} + CXXFLAGS="${BACKUP_CXXFLAGS} ${GIVARO_CFLAGS}" + LIBS="${BACKUP_LIBS} ${GIVARO_LIBS}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIVARO usability" >&5 +$as_echo_n "checking for GIVARO usability... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +Givaro::Integer a; + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "The Givaro library could not be used with the compiler and the flags set up by the configure script" "$LINENO" 5 + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CXXFLAGS=${BACKUP_CXXFLAGS} + LIBS=${BACKUP_LIBS} + + +$as_echo --------------------------------------- + +BLAS_FOUND=false + + +# Check whether --with-blas-cflags was given. +if test "${with_blas_cflags+set}" = set; then : + withval=$with_blas_cflags; +fi + + BLAS_CFLAGS="$with_blas_cflags" + + + + +# Check whether --with-blas-libs was given. +if test "${with_blas_libs+set}" = set; then : + withval=$with_blas_libs; +fi + + BLAS_LIBS="$with_blas_libs" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for use of MKL" >&5 +$as_echo_n "checking for use of MKL... " >&6; } + USE_MKL="false" + MKL_USED=`echo $CBLAS_LIBS | grep -i MKL` + if test -n "$MKL_USED" ; then : + + +$as_echo "#define HAVE_MKL 1" >>confdefs.h + + USE_MKL="true" + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes " >&5 +$as_echo "yes " >&6; } + + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no " >&5 +$as_echo "no " >&6; } + + +fi + + + + BACKUP_CXXFLAGS=${CXXFLAGS} + BACKUP_LIBS=${LIBS} + saved_LD_RUN_PATH="$LD_RUN_PATH" + blas_lib_path=`echo $BLAS_LIBS | $EGREP '\-L' | $SED -e 's/-L//;s/ .*//'` + LD_RUN_PATH="${LD_RUN_PATH:+$LD_RUN_PATH$PATH_SEPARATOR}$blas_lib_path" + export LD_RUN_PATH + CODE_CBLAS=`cat ${srcdir}/macros/CodeChunk/cblas.C` + CODE_FBLAS=`cat ${srcdir}/macros/CodeChunk/fblas.C` + + CXXFLAGS="${BACKUP_CXXFLAGS} ${BLAS_CFLAGS} -I. -I.. -I${srcdir} -I${srcdir}/fflas-ffpack ${GIVARO_CFLAGS}" + LIBS="${BACKUP_LIBS} ${BLAS_LIBS}" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BLAS" >&5 +$as_echo_n "checking for BLAS... " >&6; } + + if test "$cross_compiling" = yes; then : + + blas_found="yes" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cross compiling" >&5 +$as_echo "cross compiling" >&6; } + is_cblas="yes" + blas_cross="yes" + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + ${CODE_CBLAS} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + + blas_found="yes" + is_cblas="yes" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found CBLAS" >&5 +$as_echo "found CBLAS" >&6; } + +else + + if test "$cross_compiling" = yes; then : + + blas_found="yes" + is_cblas="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cross compiling" >&5 +$as_echo "cross compiling" >&6; } + blas_cross="yes" + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + ${CODE_FBLAS} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + blas_found="yes" + is_cblas="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found Fortran BLAS" >&5 +$as_echo "found Fortran BLAS" >&6; } + +else + + BLAS_LIBS="${BLAS_LIBS} -lopenblas -lpthread" + case $CCNAM in #( + gcc*) : + BLAS_LIBS="${BLAS_LIBS} -lgfortran" ;; #( + *) : + ;; +esac + LIBS="${BACKUP_LIBS} ${BLAS_LIBS}" + if test "$cross_compiling" = yes; then : + + blas_found="yes" + is_cblas="yes" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cross compiling" >&5 +$as_echo "cross compiling" >&6; } + blas_cross="yes" + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + ${CODE_CBLAS} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found OpenBLAS" >&5 +$as_echo "found OpenBLAS" >&6; } + blas_found="yes" + is_cblas="yes" + + +else + + blas_problem="$problem" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: problem" >&5 +$as_echo "problem" >&6; } + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + + if test "x$blas_found" = "xyes" ; then : + + BLAS_VENDOR="USER" + + +$as_echo "#define HAVE_BLAS 1" >>confdefs.h + + if test "x$is_cblas" = "xyes" ; then : + + +$as_echo "#define HAVE_CBLAS 1" >>confdefs.h + + +fi + + if test "x$blas_cross" = "xyes"; then : + + echo "WARNING: You appear to be cross compiling, so there is no way to determine" + echo "whether your BLAS are good. I am assuming it is." +fi + +else + + echo '' + echo '*******************************************************************************' + echo ' ERROR: BLAS not found!' + echo + echo ' BLAS routines are required for this library to compile. Please' + echo ' make sure BLAS are installed and specify its location with the option' + echo ' --with-blas-libs= and if necessary --with-blas-cflags=' + echo ' when running configure.' + echo '*******************************************************************************' + exit 1 + +fi + + + CXXFLAGS=${BACKUP_CXXFLAGS} + LIBS=${BACKUP_LIBS} + LD_RUN_PATH="$saved_LD_RUN_PATH" + export LD_RUN_PATH + unset saved_LD_RUN_PATH + + + + + + BACKUP_CXXFLAGS=${CXXFLAGS} + BACKUP_LIBS=${LIBS} + + CODE_CLAPACK=`cat ${srcdir}/macros/CodeChunk/clapack.C` + CODE_LAPACK=`cat ${srcdir}/macros/CodeChunk/lapack.C` + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for USER LAPACK" >&5 +$as_echo_n "checking for USER LAPACK... " >&6; } + + CXXFLAGS="${BACKUP_CXXFLAGS} ${BLAS_CFLAGS} -I. -I.. -I${srcdir} -I${srcdir}/flas-ffpack ${GIVARO_CFLAGS}" + LIBS="${BACKUP_LIBS} ${BLAS_LIBS}" + + if test "$cross_compiling" = yes; then : + dgetrf_found="" + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + ${CODE_CLAPACK} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + dgetrf_found="yes" +else + dgetrf_problem="problem" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + + if test "${dgetrf_found}" = "yes"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (clapack)" >&5 +$as_echo "yes (clapack)" >&6; } + +$as_echo "#define HAVE_LAPACK 1" >>confdefs.h + + +$as_echo "#define HAVE_CLAPACK 1" >>confdefs.h + + HAVE_LAPACK=yes + +else + + if test "$cross_compiling" = yes; then : + dgetrf_found="" + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + ${CODE_LAPACK} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + dgetrf_found="yes" +else + dgetrf_problem="$problem" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + if test "x${dgetrf_found}" = "xyes"; then : + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (lapack)" >&5 +$as_echo "yes (lapack)" >&6; } + +$as_echo "#define HAVE_LAPACK 1" >>confdefs.h + + HAVE_LAPACK=yes + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no " >&5 +$as_echo "no " >&6; } + + +fi + + +fi + + if test "x$HAVE_LAPACK" = "xyes"; then + FFLASFFPACK_HAVE_LAPACK_TRUE= + FFLASFFPACK_HAVE_LAPACK_FALSE='#' +else + FFLASFFPACK_HAVE_LAPACK_TRUE='#' + FFLASFFPACK_HAVE_LAPACK_FALSE= +fi + + CXXFLAGS=${BACKUP_CXXFLAGS} + LIBS=${BACKUP_LIBS} + + + + + +# Check whether --with-openblas-num-threads was given. +if test "${with_openblas_num_threads+set}" = set; then : + withval=$with_openblas_num_threads; +fi + + BACKUP_CXXFLAGS=${CXXFLAGS} + BACKUP_LIBS=${LIBS} + + CODE_OPENBLAS='extern "C"{void openblas_set_num_threads(int num_threads);} int main(){openblas_set_num_threads(1);return 0;}' + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if this is OpenBLAS" >&5 +$as_echo_n "checking if this is OpenBLAS... " >&6; } + + CXXFLAGS="${BACKUP_CXXFLAGS} ${BLAS_CFLAGS}" + LIBS="${BACKUP_LIBS} ${BLAS_LIBS}" + + if test "$cross_compiling" = yes; then : + openblas_found="" + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + ${CODE_OPENBLAS} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + openblas_found="yes" +else + openblas_problem="problem" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + + if test "x$openblas_found" = "xyes"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENBLAS numthreads" >&5 +$as_echo_n "checking for OPENBLAS numthreads... " >&6; } + if test "x$with_openblas_num_threads" = "x"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none specified (using default value 1)" >&5 +$as_echo "none specified (using default value 1)" >&6; } + numthreads="1" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_openblas_num_threads" >&5 +$as_echo "$with_openblas_num_threads" >&6; } + numthreads=$with_openblas_num_threads + +fi + +cat >>confdefs.h <<_ACEOF +#define OPENBLAS_NUM_THREADS $numthreads +_ACEOF + + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +fi + + +# FF_CHECK_CUDA + +$as_echo --------------------------------------- + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build documentation" >&5 +$as_echo_n "checking whether to build documentation... " >&6; } + + + +# Check whether --with-docdir was given. +if test "${with_docdir+set}" = set; then : + withval=$with_docdir; + FFLASFFPACK_DOC_PATH="$withval" + +else + + eval FFLASFFPACK_DOC_PATH="${prefix}/docs" + +fi + + + + + +# Check whether --with-doxygen was given. +if test "${with_doxygen+set}" = set; then : + withval=$with_doxygen; + DOXYGEN_PATH="$PATH $withval" + +else + + DOXYGEN_PATH="$PATH" + +fi + + +# Check whether --enable-doc was given. +if test "${enable_doc+set}" = set; then : + enableval=$enable_doc; +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether doxygen works" >&5 +$as_echo_n "checking whether doxygen works... " >&6; } +export PATH=$DOXYGEN_PATH +(doxygen --version) < /dev/null > /dev/null 2>&1 || { + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + echo + echo "You must have doxygen installed to create documentation for" + echo "FFLAS-FFPACK. This error only happens if you use --enable-doc." + echo "Download the appropriate package for your distribution, or get" + echo "the source tarball from http://www.stack.nl/~dimitri/doxygen/" + exit -1 +} +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if true; then + FFLASFFPACK_BUILD_DOC_TRUE= + FFLASFFPACK_BUILD_DOC_FALSE='#' +else + FFLASFFPACK_BUILD_DOC_TRUE='#' + FFLASFFPACK_BUILD_DOC_FALSE= +fi + + +else + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if false; then + FFLASFFPACK_BUILD_DOC_TRUE= + FFLASFFPACK_BUILD_DOC_FALSE='#' +else + FFLASFFPACK_BUILD_DOC_TRUE='#' + FFLASFFPACK_BUILD_DOC_FALSE= +fi + + +fi + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to compile the standard specializations" >&5 +$as_echo_n "checking whether to compile the standard specializations... " >&6; } + +# Check whether --enable-precompilation was given. +if test "${enable_precompilation+set}" = set; then : + enableval=$enable_precompilation; +fi + + if test "x$enable_precompilation" = "xyes"; then + FFLASFFPACK_PRECOMPILED_TRUE= + FFLASFFPACK_PRECOMPILED_FALSE='#' +else + FFLASFFPACK_PRECOMPILED_TRUE='#' + FFLASFFPACK_PRECOMPILED_FALSE= +fi + +if test "x$enable_precompilation" = "xyes"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + PRECOMPILE_FLAGS="-DFFLAS_COMPILED -DFFPACK_COMPILED" + PRECOMPILE_LIBS="-L${libdir} -lfflas -lffpack" + + + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +fi + + +$as_echo --------------------------------------- + +CXXFLAGS="${ORIGINAL_CXXFLAGS}" +FFLASFFPACK_CXXFLAGS="${REQUIRED_FLAGS} ${OPTIM_FLAGS} ${DEBUG_FLAGS}" + +$as_echo "FFLASFFPACK_CXXFLAGS = ${FFLASFFPACK_CXXFLAGS}" + + +################################################# +$as_echo "## --------------------------------------- ## +## END FFLAS-FFPACK CONFIG ## +## --------------------------------------- ##" +################################################# + +ac_config_files="$ac_config_files Makefile macros/Makefile macros/CodeChunk/Makefile fflas-ffpack-config fflas-ffpack/Makefile fflas-ffpack/fflas/Makefile fflas-ffpack/fflas/fflas_fgemm/Makefile fflas-ffpack/fflas/fflas_sparse/Makefile fflas-ffpack/fflas/fflas_sparse/coo/Makefile fflas-ffpack/fflas/fflas_sparse/csr/Makefile fflas-ffpack/fflas/fflas_sparse/ell/Makefile fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile fflas-ffpack/fflas/fflas_sparse/sell/Makefile fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile fflas-ffpack/fflas/fflas_igemm/Makefile fflas-ffpack/fflas/fflas_simd/Makefile fflas-ffpack/ffpack/Makefile fflas-ffpack/field/Makefile fflas-ffpack/utils/Makefile fflas-ffpack/paladin/Makefile fflas-ffpack/interfaces/Makefile fflas-ffpack/interfaces/libs/Makefile fflas-ffpack/checkers/Makefile autotune/Makefile doc/Makefile tests/Makefile tests/data/Makefile benchmarks/Makefile examples/Makefile tutorials/Makefile fflas-ffpack.pc" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DEBUG_TRUE}" && test -z "${DEBUG_FALSE}"; then + as_fn_error $? "conditional \"DEBUG\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${PROFILE_TRUE}" && test -z "${PROFILE_FALSE}"; then + as_fn_error $? "conditional \"PROFILE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +if test -z "${FFLASFFPACK_HAVE_OMP_TRUE}" && test -z "${FFLASFFPACK_HAVE_OMP_FALSE}"; then + as_fn_error $? "conditional \"FFLASFFPACK_HAVE_OMP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${FFLASFFPACK_HAVE_LAPACK_TRUE}" && test -z "${FFLASFFPACK_HAVE_LAPACK_FALSE}"; then + as_fn_error $? "conditional \"FFLASFFPACK_HAVE_LAPACK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${FFLASFFPACK_BUILD_DOC_TRUE}" && test -z "${FFLASFFPACK_BUILD_DOC_FALSE}"; then + as_fn_error $? "conditional \"FFLASFFPACK_BUILD_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${FFLASFFPACK_BUILD_DOC_TRUE}" && test -z "${FFLASFFPACK_BUILD_DOC_FALSE}"; then + as_fn_error $? "conditional \"FFLASFFPACK_BUILD_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${FFLASFFPACK_PRECOMPILED_TRUE}" && test -z "${FFLASFFPACK_PRECOMPILED_FALSE}"; then + as_fn_error $? "conditional \"FFLASFFPACK_PRECOMPILED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by FFLAS-FFPACK $as_me 2.5.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +FFLAS-FFPACK home page: ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +FFLAS-FFPACK config.status 2.5.0 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +PACKAGE="$PACKAGE" +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib \ +compiler_lib_search_dirs \ +predep_objects \ +postdep_objects \ +predeps \ +postdeps \ +compiler_lib_search_path \ +LD_CXX \ +reload_flag_CXX \ +compiler_CXX \ +lt_prog_compiler_no_builtin_flag_CXX \ +lt_prog_compiler_pic_CXX \ +lt_prog_compiler_wl_CXX \ +lt_prog_compiler_static_CXX \ +lt_cv_prog_compiler_c_o_CXX \ +export_dynamic_flag_spec_CXX \ +whole_archive_flag_spec_CXX \ +compiler_needs_object_CXX \ +with_gnu_ld_CXX \ +allow_undefined_flag_CXX \ +no_undefined_flag_CXX \ +hardcode_libdir_flag_spec_CXX \ +hardcode_libdir_separator_CXX \ +exclude_expsyms_CXX \ +include_expsyms_CXX \ +file_list_spec_CXX \ +compiler_lib_search_dirs_CXX \ +predep_objects_CXX \ +postdep_objects_CXX \ +predeps_CXX \ +postdeps_CXX \ +compiler_lib_search_path_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path \ +reload_cmds_CXX \ +old_archive_cmds_CXX \ +old_archive_from_new_cmds_CXX \ +old_archive_from_expsyms_cmds_CXX \ +archive_cmds_CXX \ +archive_expsym_cmds_CXX \ +module_cmds_CXX \ +module_expsym_cmds_CXX \ +export_symbols_cmds_CXX \ +prelink_cmds_CXX \ +postlink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "fflas-ffpack/config.h") CONFIG_COMMANDS="$CONFIG_COMMANDS fflas-ffpack/config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "macros/Makefile") CONFIG_FILES="$CONFIG_FILES macros/Makefile" ;; + "macros/CodeChunk/Makefile") CONFIG_FILES="$CONFIG_FILES macros/CodeChunk/Makefile" ;; + "fflas-ffpack-config") CONFIG_FILES="$CONFIG_FILES fflas-ffpack-config" ;; + "fflas-ffpack/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/Makefile" ;; + "fflas-ffpack/fflas/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/Makefile" ;; + "fflas-ffpack/fflas/fflas_fgemm/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_fgemm/Makefile" ;; + "fflas-ffpack/fflas/fflas_sparse/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_sparse/Makefile" ;; + "fflas-ffpack/fflas/fflas_sparse/coo/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_sparse/coo/Makefile" ;; + "fflas-ffpack/fflas/fflas_sparse/csr/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_sparse/csr/Makefile" ;; + "fflas-ffpack/fflas/fflas_sparse/ell/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_sparse/ell/Makefile" ;; + "fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile" ;; + "fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile" ;; + "fflas-ffpack/fflas/fflas_sparse/sell/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_sparse/sell/Makefile" ;; + "fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile" ;; + "fflas-ffpack/fflas/fflas_igemm/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_igemm/Makefile" ;; + "fflas-ffpack/fflas/fflas_simd/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/fflas/fflas_simd/Makefile" ;; + "fflas-ffpack/ffpack/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/ffpack/Makefile" ;; + "fflas-ffpack/field/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/field/Makefile" ;; + "fflas-ffpack/utils/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/utils/Makefile" ;; + "fflas-ffpack/paladin/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/paladin/Makefile" ;; + "fflas-ffpack/interfaces/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/interfaces/Makefile" ;; + "fflas-ffpack/interfaces/libs/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/interfaces/libs/Makefile" ;; + "fflas-ffpack/checkers/Makefile") CONFIG_FILES="$CONFIG_FILES fflas-ffpack/checkers/Makefile" ;; + "autotune/Makefile") CONFIG_FILES="$CONFIG_FILES autotune/Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; + "tests/data/Makefile") CONFIG_FILES="$CONFIG_FILES tests/data/Makefile" ;; + "benchmarks/Makefile") CONFIG_FILES="$CONFIG_FILES benchmarks/Makefile" ;; + "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; + "tutorials/Makefile") CONFIG_FILES="$CONFIG_FILES tutorials/Makefile" ;; + "fflas-ffpack.pc") CONFIG_FILES="$CONFIG_FILES fflas-ffpack.pc" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "fflas-ffpack/config.h":C) ac_prefix_conf_OUT=`echo fflas-ffpack/config.h` +ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e "y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:" -e "s/[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g"` +ac_prefix_conf_PKG=`echo __FFLASFFPACK` +ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e "y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:"` +ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e "y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:" -e "/^[0123456789]/s/^/_/"` +ac_prefix_conf_INP=`echo "" | sed -e 's/ *//'` +if test ".$ac_prefix_conf_INP" = "."; then + for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue + case "$ac_file" in + *.h) ac_prefix_conf_INP=$ac_file ;; + *) + esac + test ".$ac_prefix_conf_INP" != "." && break + done +fi +if test ".$ac_prefix_conf_INP" = "."; then + case "$ac_prefix_conf_OUT" in + */*) ac_prefix_conf_INP=`basename "$ac_prefix_conf_OUT"` + ;; + *-*) ac_prefix_conf_INP=`echo "$ac_prefix_conf_OUT" | sed -e "s/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*-//"` + ;; + *) ac_prefix_conf_INP=config.h + ;; + esac +fi +if test -z "$ac_prefix_conf_PKG" ; then + as_fn_error $? "no prefix for _PREFIX_PKG_CONFIG_H" "$LINENO" 5 +else + if test ! -f "$ac_prefix_conf_INP" ; then if test -f "$srcdir/$ac_prefix_conf_INP" ; then + ac_prefix_conf_INP="$srcdir/$ac_prefix_conf_INP" + fi fi + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&5 +$as_echo "$as_me: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&6;} + if test -f $ac_prefix_conf_INP ; then + $as_echo "s/#undef *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/#undef $ac_prefix_conf_UPP""_\\1/" > conftest.prefix + $as_echo "s/#undef *\\([abcdefghijklmnopqrstuvwxyz]\\)/#undef $ac_prefix_conf_LOW""_\\1/" >> conftest.prefix + $as_echo "s/#define *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_UPP""_\\1 \\" >> conftest.prefix + $as_echo "#define $ac_prefix_conf_UPP""_\\1 \\2 \\" >> conftest.prefix + $as_echo "#endif/" >>conftest.prefix + $as_echo "s/#define *\\([abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_LOW""_\\1 \\" >> conftest.prefix + $as_echo "#define $ac_prefix_conf_LOW""_\\1 \\2 \\" >> conftest.prefix + $as_echo "#endif/" >> conftest.prefix + # now executing _script on _DEF input to create _OUT output file + $as_echo "#ifndef $ac_prefix_conf_DEF" >$tmp/pconfig.h + $as_echo "#define $ac_prefix_conf_DEF 1" >>$tmp/pconfig.h + $as_echo " " >>$tmp/pconfig.h + $as_echo "/* $ac_prefix_conf_OUT. Generated automatically at end of configure. */" >>$tmp/pconfig.h + + sed -f conftest.prefix $ac_prefix_conf_INP >>$tmp/pconfig.h + $as_echo " " >>$tmp/pconfig.h + $as_echo "/* once: $ac_prefix_conf_DEF */" >>$tmp/pconfig.h + $as_echo "#endif" >>$tmp/pconfig.h + if cmp -s $ac_prefix_conf_OUT $tmp/pconfig.h 2>/dev/null; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_prefix_conf_OUT is unchanged" >&5 +$as_echo "$as_me: $ac_prefix_conf_OUT is unchanged" >&6;} + else + ac_dir=`$as_dirname -- "$ac_prefix_conf_OUT" || +$as_expr X"$ac_prefix_conf_OUT" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_prefix_conf_OUT" : 'X\(//\)[^/]' \| \ + X"$ac_prefix_conf_OUT" : 'X\(//\)$' \| \ + X"$ac_prefix_conf_OUT" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_prefix_conf_OUT" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + rm -f "$ac_prefix_conf_OUT" + mv $tmp/pconfig.h "$ac_prefix_conf_OUT" + fi + else + as_fn_error $? "input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" "$LINENO" 5 + fi + rm -f conftest.* +fi + ;; + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? + done + if test $am_rc -ne 0; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='CXX ' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects +postdep_objects=$lt_postdep_objects +predeps=$lt_predeps +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_CXX + +# A language specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU compiler? +with_gcc=$GCC_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_CXX + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_CXX + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_CXX + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_CXX + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_CXX + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_CXX + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_CXX + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects_CXX +postdep_objects=$lt_postdep_objects_CXX +predeps=$lt_predeps_CXX +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# ### END LIBTOOL TAG CONFIG: CXX +_LT_EOF + + ;; + "Makefile":F) chmod +x fflas-ffpack-config ;; + "macros/Makefile":F) chmod +x fflas-ffpack-config ;; + "macros/CodeChunk/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack-config":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_fgemm/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_sparse/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_sparse/coo/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_sparse/csr/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_sparse/ell/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_sparse/sell/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_igemm/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/fflas/fflas_simd/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/ffpack/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/field/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/utils/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/paladin/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/interfaces/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/interfaces/libs/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack/checkers/Makefile":F) chmod +x fflas-ffpack-config ;; + "autotune/Makefile":F) chmod +x fflas-ffpack-config ;; + "doc/Makefile":F) chmod +x fflas-ffpack-config ;; + "tests/Makefile":F) chmod +x fflas-ffpack-config ;; + "tests/data/Makefile":F) chmod +x fflas-ffpack-config ;; + "benchmarks/Makefile":F) chmod +x fflas-ffpack-config ;; + "examples/Makefile":F) chmod +x fflas-ffpack-config ;; + "tutorials/Makefile":F) chmod +x fflas-ffpack-config ;; + "fflas-ffpack.pc":F) chmod +x fflas-ffpack-config ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +echo "" > fflas-ffpack/fflas-ffpack-thresholds.h diff --git a/deps/fflas-ffpack/configure.ac b/deps/fflas-ffpack-2.5.0/configure.ac similarity index 97% rename from deps/fflas-ffpack/configure.ac rename to deps/fflas-ffpack-2.5.0/configure.ac index 0d001075b..5390bcff4 100644 --- a/deps/fflas-ffpack/configure.ac +++ b/deps/fflas-ffpack-2.5.0/configure.ac @@ -24,7 +24,7 @@ AC_PREREQ([2.67]) -AC_INIT([FFLAS-FFPACK], [2.5.1],[ffpack-devel@googlegroups.com],[fflas-ffpack], +AC_INIT([FFLAS-FFPACK], [2.5.0],[ffpack-devel@googlegroups.com],[fflas-ffpack], [https://github.com/linbox-team/fflas-ffpack]) @@ -115,11 +115,10 @@ AC_C_BIGENDIAN( AS_ECHO([---------------------------------------]) # Looking for OpenMP -AC_OPENMP FF_CHECK_OMP -PARFLAGS="${OPENMP_CXXFLAGS}" -PARLIBS="${OPENMP_CXXFLAGS}" +PARFLAGS="${OMPFLAGS}" +PARLIBS="${OMPFLAGS}" AC_SUBST(PARFLAGS) AC_SUBST(PARLIBS) diff --git a/deps/fflas-ffpack/doc/Doxyfile b/deps/fflas-ffpack-2.5.0/doc/Doxyfile similarity index 100% rename from deps/fflas-ffpack/doc/Doxyfile rename to deps/fflas-ffpack-2.5.0/doc/Doxyfile diff --git a/deps/fflas-ffpack/doc/DoxyfileDev b/deps/fflas-ffpack-2.5.0/doc/DoxyfileDev similarity index 100% rename from deps/fflas-ffpack/doc/DoxyfileDev rename to deps/fflas-ffpack-2.5.0/doc/DoxyfileDev diff --git a/deps/fflas-ffpack/doc/Makefile.am b/deps/fflas-ffpack-2.5.0/doc/Makefile.am similarity index 100% rename from deps/fflas-ffpack/doc/Makefile.am rename to deps/fflas-ffpack-2.5.0/doc/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/doc/Makefile.in b/deps/fflas-ffpack-2.5.0/doc/Makefile.in new file mode 100644 index 000000000..65218d35f --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/doc/Makefile.in @@ -0,0 +1,560 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# adapted from LinBox documentation +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = doc +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = $(FFLASFFPACK_DOC_PATH) +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@FFLASFFPACK_BUILD_DOC_TRUE@USE_TARGETS = docs +@FFLASFFPACK_BUILD_DOC_TRUE@INSTALL_TARGETS = install-doc +EXTRA_DIST = \ + Doxyfile \ + DoxyfileDev \ + mainpage.doxy \ + fflas-ffpack.html + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign doc/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +#man1_MANS = fflas-ffpack-config.1 + +all all-local: $(USE_TARGETS) + +install install-data-local: $(USE_TARGETS) $(INSTALL_TARGETS) + +docs: + sed -i 's/^\\version.*/\\version\ $(VERSION)/' mainpage.doxy + if test -d fflas-ffpack-html ; then echo exists; else mkdir fflas-ffpack-html ; fi + if test -d fflas-ffpack-dev-html ; then echo exists; else mkdir fflas-ffpack-dev-html ; fi + cp ../INSTALL fflas-ffpack-html/ + cp ../COPYING fflas-ffpack-html/ + cp ../AUTHORS fflas-ffpack-html/ + doxygen Doxyfile + +docs_dev: + make docs + cp ../INSTALL fflas-ffpack-dev-html/ + cp ../COPYING fflas-ffpack-dev-html/ + cp ../AUTHORS fflas-ffpack-dev-html/ + doxygen DoxyfileDev + +# cp tutorial.html fflas-ffpack-dev-html/ +# cp install-dist.html fflas-ffpack-dev-html/ +# cp install-dev.html fflas-ffpack-dev-html/ + +install-doc: + mkdir -p $(DESTDIR)/$(docdir) + cp -rp fflas-ffpack-html $(DESTDIR)/$(docdir)/fflas-ffpack-html + cp -rp fflas-ffpack-dev-html $(DESTDIR)/$(docdir)/fflas-ffpack-dev-html + cp -p fflas-ffpack.html $(DESTDIR)/$(docdir)/fflas-ffpack.html +# \ +# doc.doxy \ +# tutorial.doxy \ +# fflas-ffpack.html \ +# fflas-ffpack-config.1 \ +#tutorial.html \ +# install-dev.html \ +# index-dev.html \ +# install-dist.html + +clean-local : + rm -rf fflas-ffpack-html + rm -rf fflas-ffpack-dev-html + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/doc/fflas-ffpack.html b/deps/fflas-ffpack-2.5.0/doc/fflas-ffpack.html similarity index 100% rename from deps/fflas-ffpack/doc/fflas-ffpack.html rename to deps/fflas-ffpack-2.5.0/doc/fflas-ffpack.html diff --git a/deps/fflas-ffpack/doc/mainpage.doxy b/deps/fflas-ffpack-2.5.0/doc/mainpage.doxy similarity index 100% rename from deps/fflas-ffpack/doc/mainpage.doxy rename to deps/fflas-ffpack-2.5.0/doc/mainpage.doxy diff --git a/deps/fflas-ffpack/examples/Makefile.am b/deps/fflas-ffpack-2.5.0/examples/Makefile.am similarity index 100% rename from deps/fflas-ffpack/examples/Makefile.am rename to deps/fflas-ffpack-2.5.0/examples/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/examples/Makefile.in b/deps/fflas-ffpack-2.5.0/examples/Makefile.in new file mode 100644 index 000000000..09b25b44c --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/examples/Makefile.in @@ -0,0 +1,865 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by JGD +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +@FFLASFFPACK_PRECOMPILED_TRUE@am__append_1 = $(top_builddir)/fflas-ffpack/interfaces/libs/libfflas.la \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(top_builddir)/fflas-ffpack/interfaces/libs/libffpack.la +EXTRA_PROGRAMS = $(am__EXEEXT_1) +subdir = examples +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__EXEEXT_1 = det$(EXEEXT) pluq$(EXEEXT) rank$(EXEEXT) \ + charpoly$(EXEEXT) matmul$(EXEEXT) solve$(EXEEXT) +am_charpoly_OBJECTS = charpoly.$(OBJEXT) +charpoly_OBJECTS = $(am_charpoly_OBJECTS) +charpoly_LDADD = $(LDADD) +am__DEPENDENCIES_1 = +charpoly_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +am_det_OBJECTS = det.$(OBJEXT) +det_OBJECTS = $(am_det_OBJECTS) +det_LDADD = $(LDADD) +det_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_matmul_OBJECTS = matmul.$(OBJEXT) +matmul_OBJECTS = $(am_matmul_OBJECTS) +matmul_LDADD = $(LDADD) +matmul_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_pluq_OBJECTS = pluq.$(OBJEXT) +pluq_OBJECTS = $(am_pluq_OBJECTS) +pluq_LDADD = $(LDADD) +pluq_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_rank_OBJECTS = rank.$(OBJEXT) +rank_OBJECTS = $(am_rank_OBJECTS) +rank_LDADD = $(LDADD) +rank_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_solve_OBJECTS = solve.$(OBJEXT) +solve_OBJECTS = $(am_solve_OBJECTS) +solve_LDADD = $(LDADD) +solve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/charpoly.Po ./$(DEPDIR)/det.Po \ + ./$(DEPDIR)/matmul.Po ./$(DEPDIR)/pluq.Po ./$(DEPDIR)/rank.Po \ + ./$(DEPDIR)/solve.Po +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(charpoly_SOURCES) $(det_SOURCES) $(matmul_SOURCES) \ + $(pluq_SOURCES) $(rank_SOURCES) $(solve_SOURCES) +DIST_SOURCES = $(charpoly_SOURCES) $(det_SOURCES) $(matmul_SOURCES) \ + $(pluq_SOURCES) $(rank_SOURCES) $(solve_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = +AM_CXXFLAGS = $(FFLASFFPACK_CXXFLAGS) $(GIVARO_CFLAGS) $(BLAS_CFLAGS) $(PARFLAGS) $(PRECOMPILE_FLAGS) +AM_CPPFLAGS = -I$(top_srcdir) +LDADD = $(GIVARO_LIBS) $(BLAS_LIBS) $(PARLIBS) $(am__append_1) +EXAMPLES = \ + det \ + pluq \ + rank \ + charpoly\ + matmul \ + solve + +det_SOURCES = det.C +pluq_SOURCES = pluq.C +rank_SOURCES = rank.C +charpoly_SOURCES = charpoly.C +matmul_SOURCES = matmul.C +solve_SOURCES = solve.C +CLEANFILES = $(EXAMPLES) +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .C .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign examples/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign examples/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +charpoly$(EXEEXT): $(charpoly_OBJECTS) $(charpoly_DEPENDENCIES) $(EXTRA_charpoly_DEPENDENCIES) + @rm -f charpoly$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(charpoly_OBJECTS) $(charpoly_LDADD) $(LIBS) + +det$(EXEEXT): $(det_OBJECTS) $(det_DEPENDENCIES) $(EXTRA_det_DEPENDENCIES) + @rm -f det$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(det_OBJECTS) $(det_LDADD) $(LIBS) + +matmul$(EXEEXT): $(matmul_OBJECTS) $(matmul_DEPENDENCIES) $(EXTRA_matmul_DEPENDENCIES) + @rm -f matmul$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(matmul_OBJECTS) $(matmul_LDADD) $(LIBS) + +pluq$(EXEEXT): $(pluq_OBJECTS) $(pluq_DEPENDENCIES) $(EXTRA_pluq_DEPENDENCIES) + @rm -f pluq$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(pluq_OBJECTS) $(pluq_LDADD) $(LIBS) + +rank$(EXEEXT): $(rank_OBJECTS) $(rank_DEPENDENCIES) $(EXTRA_rank_DEPENDENCIES) + @rm -f rank$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(rank_OBJECTS) $(rank_LDADD) $(LIBS) + +solve$(EXEEXT): $(solve_OBJECTS) $(solve_DEPENDENCIES) $(EXTRA_solve_DEPENDENCIES) + @rm -f solve$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(solve_OBJECTS) $(solve_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charpoly.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/det.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matmul.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pluq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rank.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/solve.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.C.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.C.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.C.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f ./$(DEPDIR)/charpoly.Po + -rm -f ./$(DEPDIR)/det.Po + -rm -f ./$(DEPDIR)/matmul.Po + -rm -f ./$(DEPDIR)/pluq.Po + -rm -f ./$(DEPDIR)/rank.Po + -rm -f ./$(DEPDIR)/solve.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f ./$(DEPDIR)/charpoly.Po + -rm -f ./$(DEPDIR)/det.Po + -rm -f ./$(DEPDIR)/matmul.Po + -rm -f ./$(DEPDIR)/pluq.Po + -rm -f ./$(DEPDIR)/rank.Po + -rm -f ./$(DEPDIR)/solve.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + +examples: $(EXAMPLES) + +define other_compilation + $(CXX) $(CXXFLAGS) $(AM_CXXFLAGS) ${INCLUDES} $(AM_CPPFLAGS) $*.C -o $@ $(LDFLAGS) $(LDADD) $(LOADLIBES) +endef + +%:%.C + $(other_compilation) + +%:%.cpp + $(other_compilation) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/examples/charpoly.C b/deps/fflas-ffpack-2.5.0/examples/charpoly.C similarity index 100% rename from deps/fflas-ffpack/examples/charpoly.C rename to deps/fflas-ffpack-2.5.0/examples/charpoly.C diff --git a/deps/fflas-ffpack/examples/det.C b/deps/fflas-ffpack-2.5.0/examples/det.C similarity index 100% rename from deps/fflas-ffpack/examples/det.C rename to deps/fflas-ffpack-2.5.0/examples/det.C diff --git a/deps/fflas-ffpack/examples/matmul.C b/deps/fflas-ffpack-2.5.0/examples/matmul.C similarity index 100% rename from deps/fflas-ffpack/examples/matmul.C rename to deps/fflas-ffpack-2.5.0/examples/matmul.C diff --git a/deps/fflas-ffpack/examples/pluq.C b/deps/fflas-ffpack-2.5.0/examples/pluq.C similarity index 100% rename from deps/fflas-ffpack/examples/pluq.C rename to deps/fflas-ffpack-2.5.0/examples/pluq.C diff --git a/deps/fflas-ffpack/examples/rank.C b/deps/fflas-ffpack-2.5.0/examples/rank.C similarity index 100% rename from deps/fflas-ffpack/examples/rank.C rename to deps/fflas-ffpack-2.5.0/examples/rank.C diff --git a/deps/fflas-ffpack/examples/solve.C b/deps/fflas-ffpack-2.5.0/examples/solve.C similarity index 100% rename from deps/fflas-ffpack/examples/solve.C rename to deps/fflas-ffpack-2.5.0/examples/solve.C diff --git a/deps/fflas-ffpack/fflas-ffpack-config.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack-config.in similarity index 99% rename from deps/fflas-ffpack/fflas-ffpack-config.in rename to deps/fflas-ffpack-2.5.0/fflas-ffpack-config.in index d06e5b52f..3e2f53f42 100644 --- a/deps/fflas-ffpack/fflas-ffpack-config.in +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack-config.in @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash # Coypright (c) 2011 FFLAS-FFPACK # written by Brice Boyer (briceboyer) # adapted from LinBox configuration diff --git a/deps/fflas-ffpack/fflas-ffpack.pc.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack.pc.in similarity index 66% rename from deps/fflas-ffpack/fflas-ffpack.pc.in rename to deps/fflas-ffpack-2.5.0/fflas-ffpack.pc.in index 4440543a5..6bcff20aa 100644 --- a/deps/fflas-ffpack/fflas-ffpack.pc.in +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack.pc.in @@ -1,12 +1,12 @@ prefix=@prefix@ exec_prefix=@prefix@ -libdir=@libdir@ +libdir=@prefix@/lib includedir=@prefix@/include Name: fflas-ffpack Description: Finite Field Linear Algebra Suroutines/Package URL: http://github.com/linbox-team/fflas-ffpack Version: @VERSION@ -Requires: givaro >= 4.2.0 +Requires: givaro >= 4.1.2 Libs: @PARLIBS@ @PRECOMPILE_LIBS@ @BLAS_LIBS@ -Cppflags: -I@includedir@ @BLAS_CFLAGS@ @PARFLAGS@ @PRECOMPILE_FLAGS@ @REQUIRED_FLAGS@ +Cflags: -I@includedir@ @BLAS_CFLAGS@ @PARFLAGS@ @PRECOMPILE_FLAGS@ @REQUIRED_FLAGS@ diff --git a/deps/fflas-ffpack/fflas-ffpack/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/Makefile.in new file mode 100644 index 000000000..cca6a696e --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/Makefile.in @@ -0,0 +1,752 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# adapted from LinBox configuration +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkginclude_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludedir)" +HEADERS = $(pkginclude_HEADERS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = fflas ffpack field utils paladin interfaces checkers +EXTRA_DIST = fflas-ffpack.doxy +pkginclude_HEADERS = config-blas.h \ + fflas-ffpack.h \ + config.h \ + fflas-ffpack-config.h \ + fflas-ffpack-thresholds.h \ + fflas-ffpack-default-thresholds.h + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludeHEADERS: $(pkginclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \ + done + +uninstall-pkgincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(HEADERS) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(pkgincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-pkgincludeHEADERS + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-pkgincludeHEADERS + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pkgincludeHEADERS \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pkgincludeHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/Makefile.in new file mode 100644 index 000000000..4f4e26aa0 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/Makefile.in @@ -0,0 +1,643 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2016 FFLAS-FFPACK +# written by Ashley Lesdalons (ash09) +# adapted from LinBox configuration +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/checkers +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/checkers +pkgincludesub_HEADERS = \ + checkers_fflas.h \ + checkers_fflas.inl \ + checkers_ffpack.h \ + checkers_ffpack.inl \ + checker_empty.h \ + checker_pluq.inl \ + checker_det.inl \ + checker_ftrsm.inl \ + checker_fgemm.inl \ + checker_charpoly.inl \ + checker_invert.inl + +EXTRA_DIST = checkers.doxy +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/checkers/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/checkers/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checker_charpoly.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_charpoly.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checker_charpoly.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_charpoly.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checker_det.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_det.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checker_det.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_det.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checker_empty.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_empty.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checker_empty.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_empty.h diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checker_fgemm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_fgemm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checker_fgemm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_fgemm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checker_ftrsm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_ftrsm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checker_ftrsm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_ftrsm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checker_invert.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_invert.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checker_invert.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_invert.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checker_pluq.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_pluq.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checker_pluq.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checker_pluq.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checkers.doxy b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checkers.doxy similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checkers.doxy rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checkers.doxy diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checkers_fflas.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checkers_fflas.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checkers_fflas.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checkers_fflas.h diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checkers_fflas.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checkers_fflas.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checkers_fflas.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checkers_fflas.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checkers_ffpack.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checkers_ffpack.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checkers_ffpack.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checkers_ffpack.h diff --git a/deps/fflas-ffpack/fflas-ffpack/checkers/checkers_ffpack.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checkers_ffpack.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/checkers/checkers_ffpack.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/checkers/checkers_ffpack.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/config-blas.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/config-blas.h similarity index 97% rename from deps/fflas-ffpack/fflas-ffpack/config-blas.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/config-blas.h index b7879d130..e503ab382 100644 --- a/deps/fflas-ffpack/fflas-ffpack/config-blas.h +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/config-blas.h @@ -128,8 +128,6 @@ extern "C" { void strmm_ (const char*, const char*, const char*, const char*, const int*, const int*, const float*, const float*, const int*, float*, const int*); void sgemm_ (const char*, const char*, const int*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*); void dgemm_ (const char*, const char*, const int*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*); - void ssyrk_ (const char *, const char *, int, int, float, const float *, int, float, float *, int); // missing? - void dsyrk_ (const char *, const char *, int, int, double, const double *, int, double, double *, int); } // define C wrappers @@ -290,23 +288,23 @@ extern "C" { sgemm_ ( EXT_BLAS_TRANSPOSE(TransA), EXT_BLAS_TRANSPOSE(TransB), &M, &N, &K, &alpha, A, &lda, B, &ldb, &beta, C, &ldc); } - static inline void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, + static inline cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N, const int K, const float alpha, const float *A, const int lda, const float beta, float *C, const int ldc){ if (Order == CblasRowMajor) - ssyrk_ (EXT_BLAS_UPLO_tr(Uplo), EXT_BLAS_TRANSPOSE(Trans), N, K, alpha, A, lda, beta, C, ldc); // @TODO check this + ssryk_ (EXT_BLAS_UPLO_tr(Uplo), EXT_BLAS_TRANSPOSE(Trans), N, K, alpha, A, lda, beta, C, ldc); // @TODO check this else - ssyrk_ (EXT_BLAS_UPLO (Uplo), EXT_BLAS_TRANSPOSE(Trans), N, K, alpha, A, lda, beta, C, ldc); + ssryk_ (EXT_BLAS_UPLO (Uplo), EXT_BLAS_TRANSPOSE(Trans), N, K, alpha, A, lda, beta, C, ldc); } void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N, const int K, const double alpha, const double *A, const int lda, const double beta, double *C, const int ldc){ if (Order == CblasRowMajor) - dsyrk_ (EXT_BLAS_UPLO_tr(Uplo), EXT_BLAS_TRANSPOSE(Trans), N, K, alpha, A, lda, beta, C, ldc); // @TODO check this + dsryk_ (EXT_BLAS_UPLO_tr(Uplo), EXT_BLAS_TRANSPOSE(Trans), N, K, alpha, A, lda, beta, C, ldc); // @TODO check this else - dsyrk_ (EXT_BLAS_UPLO (Uplo), EXT_BLAS_TRANSPOSE(Trans), N, K, alpha, A, lda, beta, C, ldc); + dsryk_ (EXT_BLAS_UPLO (Uplo), EXT_BLAS_TRANSPOSE(Trans), N, K, alpha, A, lda, beta, C, ldc); } } diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/config.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/config.h new file mode 100644 index 000000000..322c52ce4 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/config.h @@ -0,0 +1,225 @@ +#ifndef _FFLAS_FFPACK_CONFIG_H +#define _FFLAS_FFPACK_CONFIG_H 1 + +/* fflas-ffpack/config.h. Generated automatically at end of configure. */ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +/* #undef __FFLASFFPACK_AC_APPLE_UNIVERSAL_BUILD */ + +/* Define whether to compile in DEBUG mode */ +/* #undef __FFLASFFPACK_DEBUG */ + +/* Define that architecture uses big endian storage */ +/* #undef __FFLASFFPACK_HAVE_BIG_ENDIAN */ + +/* Define if BLAS is available */ +#ifndef __FFLASFFPACK_HAVE_BLAS +#define __FFLASFFPACK_HAVE_BLAS 1 +#endif + +/* Define if BLAS is a CBLAS */ +#ifndef __FFLASFFPACK_HAVE_CBLAS +#define __FFLASFFPACK_HAVE_CBLAS 1 +#endif + +/* Define if C interface to LAPACK is available */ +/* #undef __FFLASFFPACK_HAVE_CLAPACK */ + +/* define if the compiler supports basic C++11 syntax */ +#ifndef __FFLASFFPACK_HAVE_CXX11 +#define __FFLASFFPACK_HAVE_CXX11 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_DLFCN_H +#define __FFLASFFPACK_HAVE_DLFCN_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_FLOAT_H +#define __FFLASFFPACK_HAVE_FLOAT_H 1 +#endif + +/* Define that compiler allows int128_t types */ +#ifndef __FFLASFFPACK_HAVE_INT128 +#define __FFLASFFPACK_HAVE_INT128 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_INTTYPES_H +#define __FFLASFFPACK_HAVE_INTTYPES_H 1 +#endif + +/* Define if LAPACK is installed */ +/* #undef __FFLASFFPACK_HAVE_LAPACK */ + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_LIMITS_H +#define __FFLASFFPACK_HAVE_LIMITS_H 1 +#endif + +/* Define that architecture uses little endian storage */ +#ifndef __FFLASFFPACK_HAVE_LITTLE_ENDIAN +#define __FFLASFFPACK_HAVE_LITTLE_ENDIAN 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_MEMORY_H +#define __FFLASFFPACK_HAVE_MEMORY_H 1 +#endif + +/* Define if we use MKL for blas/lapack */ +/* #undef __FFLASFFPACK_HAVE_MKL */ + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_PTHREAD_H +#define __FFLASFFPACK_HAVE_PTHREAD_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_STDDEF_H +#define __FFLASFFPACK_HAVE_STDDEF_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_STDINT_H +#define __FFLASFFPACK_HAVE_STDINT_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_STDLIB_H +#define __FFLASFFPACK_HAVE_STDLIB_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_STRINGS_H +#define __FFLASFFPACK_HAVE_STRINGS_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_STRING_H +#define __FFLASFFPACK_HAVE_STRING_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_SYS_STAT_H +#define __FFLASFFPACK_HAVE_SYS_STAT_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_SYS_TIME_H +#define __FFLASFFPACK_HAVE_SYS_TIME_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_SYS_TYPES_H +#define __FFLASFFPACK_HAVE_SYS_TYPES_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef __FFLASFFPACK_HAVE_UNISTD_H +#define __FFLASFFPACK_HAVE_UNISTD_H 1 +#endif + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#ifndef __FFLASFFPACK_LT_OBJDIR +#define __FFLASFFPACK_LT_OBJDIR ".libs/" +#endif + +/* Sets the number of threads given to OpenBLAS (default is 1) */ +/* #undef __FFLASFFPACK_OPENBLAS_NUM_THREADS */ + +/* Name of package */ +#ifndef __FFLASFFPACK_PACKAGE +#define __FFLASFFPACK_PACKAGE "fflas-ffpack" +#endif + +/* Define to the address where bug reports for this package should be sent. */ +#ifndef __FFLASFFPACK_PACKAGE_BUGREPORT +#define __FFLASFFPACK_PACKAGE_BUGREPORT "ffpack-devel@googlegroups.com" +#endif + +/* Define to the full name of this package. */ +#ifndef __FFLASFFPACK_PACKAGE_NAME +#define __FFLASFFPACK_PACKAGE_NAME "FFLAS-FFPACK" +#endif + +/* Define to the full name and version of this package. */ +#ifndef __FFLASFFPACK_PACKAGE_STRING +#define __FFLASFFPACK_PACKAGE_STRING "FFLAS-FFPACK 2.5.0" +#endif + +/* Define to the one symbol short name of this package. */ +#ifndef __FFLASFFPACK_PACKAGE_TARNAME +#define __FFLASFFPACK_PACKAGE_TARNAME "fflas-ffpack" +#endif + +/* Define to the home page for this package. */ +#ifndef __FFLASFFPACK_PACKAGE_URL +#define __FFLASFFPACK_PACKAGE_URL "https://github.com/linbox-team/fflas-ffpack" +#endif + +/* Define to the version of this package. */ +#ifndef __FFLASFFPACK_PACKAGE_VERSION +#define __FFLASFFPACK_PACKAGE_VERSION "2.5.0" +#endif + +/* The size of `char', as computed by sizeof. */ +#ifndef __FFLASFFPACK_SIZEOF_CHAR +#define __FFLASFFPACK_SIZEOF_CHAR 1 +#endif + +/* The size of `int', as computed by sizeof. */ +#ifndef __FFLASFFPACK_SIZEOF_INT +#define __FFLASFFPACK_SIZEOF_INT 4 +#endif + +/* The size of `long', as computed by sizeof. */ +#ifndef __FFLASFFPACK_SIZEOF_LONG +#define __FFLASFFPACK_SIZEOF_LONG 8 +#endif + +/* The size of `long long', as computed by sizeof. */ +#ifndef __FFLASFFPACK_SIZEOF_LONG_LONG +#define __FFLASFFPACK_SIZEOF_LONG_LONG 8 +#endif + +/* The size of `short', as computed by sizeof. */ +#ifndef __FFLASFFPACK_SIZEOF_SHORT +#define __FFLASFFPACK_SIZEOF_SHORT 2 +#endif + +/* The size of `__int64_t', as computed by sizeof. */ +#ifndef __FFLASFFPACK_SIZEOF___INT64_T +#define __FFLASFFPACK_SIZEOF___INT64_T 8 +#endif + +/* Define to 1 if you have the ANSI C header files. */ +#ifndef __FFLASFFPACK_STDC_HEADERS +#define __FFLASFFPACK_STDC_HEADERS 1 +#endif + +/* Define if OMP is available */ +/* #undef __FFLASFFPACK_USE_OPENMP */ + +/* Version number of package */ +#ifndef __FFLASFFPACK_VERSION +#define __FFLASFFPACK_VERSION "2.5.0" +#endif + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* once: _FFLAS_FFPACK_CONFIG_H */ +#endif diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas-ffpack-config.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack-config.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas-ffpack-config.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack-config.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas-ffpack-default-thresholds.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack-default-thresholds.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas-ffpack-default-thresholds.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack-default-thresholds.h diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack-thresholds.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack-thresholds.h new file mode 100755 index 000000000..8b1378917 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack-thresholds.h @@ -0,0 +1 @@ + diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas-ffpack.doxy b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack.doxy similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas-ffpack.doxy rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack.doxy diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas-ffpack.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas-ffpack.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas-ffpack.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/Makefile.in new file mode 100644 index 000000000..c1a455818 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/Makefile.in @@ -0,0 +1,792 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# adapted from LinBox configuration +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas +SUBDIRS = fflas_fgemm fflas_igemm fflas_simd fflas_sparse +sparse = fflas_sparse.h \ + fflas_sparse.inl + +multiprecision = fflas_ftrsm_mp.inl \ + fflas_fscal_mp.inl \ + fflas_freduce_mp.inl \ + fflas_fger_mp.inl \ + fflas_fgemv_mp.inl + +pkgincludesub_HEADERS = \ + fflas_bounds.inl \ + fflas_fassign.h \ + fflas_fassign.inl \ + fflas_ftrmm.inl \ + fflas.h \ + fflas_level1.inl \ + fflas_level2.inl \ + fflas_level3.inl \ + fflas_fadd.h \ + fflas_fadd.inl \ + fflas_fdot.inl \ + fflas_ftrmm_src.inl \ + fflas_fgemm.inl \ + fflas_pfgemm.inl \ + fflas_pftrsm.inl \ + fflas_ftrsm.inl \ + fflas_fsyrk.inl \ + fflas_fsyrk_strassen.inl \ + fflas_fsyr2k.inl \ + fflas_fgemv.inl \ + fflas_freivalds.inl \ + fflas_fscal.h \ + fflas_fscal.inl \ + fflas_transpose.h \ + fflas_ftrsm_src.inl \ + fflas_faxpy.inl \ + fflas_fger.inl \ + fflas_ftrsv.inl \ + fflas_freduce.h \ + fflas_freduce.inl \ + fflas_helpers.inl \ + fflas_simd.h \ + fflas_enum.h \ + ${sparse} \ + ${multiprecision} + +EXTRA_DIST = fflas.doxy +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(HEADERS) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pkgincludesubHEADERS \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas.doxy b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas.doxy similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas.doxy rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas.doxy diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_bounds.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_bounds.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_bounds.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_bounds.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_enum.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_enum.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_enum.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_enum.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fadd.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fadd.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fadd.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fadd.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fadd.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fadd.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fadd.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fadd.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fassign.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fassign.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fassign.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fassign.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fassign.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fassign.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fassign.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fassign.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_faxpy.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_faxpy.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_faxpy.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_faxpy.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fdot.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fdot.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fdot.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fdot.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm.inl similarity index 99% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm.inl index 49cb7b496..2e4b6d0ce 100644 --- a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm.inl +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm.inl @@ -410,9 +410,7 @@ namespace FFLAS { else if (!std::is_same >::value){ if (F.characteristic() < DOUBLE_TO_FLOAT_CROSSOVER) return Protected::fgemm_convert,Field>(F,ta,tb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,H); - else if (!std::is_same >::value && - !std::is_same >::value && - 16*F.cardinality() < Givaro::ModularBalanced::maxCardinality()) + else if (!std::is_same >::value && 16*F.cardinality() < Givaro::ModularBalanced::maxCardinality()) return Protected::fgemm_convert,Field>(F,ta,tb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,H); } } diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/Makefile.in new file mode 100644 index 000000000..9b417677b --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/Makefile.in @@ -0,0 +1,641 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_fgemm +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_fgemm +EXTRA_DIST = matmul.doxy +multiprecision = fgemm_classical_mp.inl +pkgincludesub_HEADERS = \ + fgemm_classical.inl \ + fgemm_winograd.inl \ + schedule_winograd.inl \ + schedule_winograd_acc.inl \ + schedule_bini.inl \ + schedule_winograd_acc_ip.inl \ + schedule_winograd_ip.inl \ + ${multiprecision} + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_fgemm/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_fgemm/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/fgemm_classical.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/fgemm_classical.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/fgemm_classical.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/fgemm_classical.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/fgemm_classical_mp.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/fgemm_classical_mp.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/fgemm_classical_mp.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/fgemm_classical_mp.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/fgemm_winograd.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/fgemm_winograd.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/fgemm_winograd.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/fgemm_winograd.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/matmul.doxy b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/matmul.doxy similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/matmul.doxy rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/matmul.doxy diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/schedule_bini.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/schedule_bini.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/schedule_bini.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/schedule_bini.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_acc.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_acc.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_acc.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_acc.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_acc_ip.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_acc_ip.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_acc_ip.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_acc_ip.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_ip.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_ip.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_ip.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemm/schedule_winograd_ip.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemv.inl similarity index 99% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemv.inl index 2a03984a9..b7aba54b1 100644 --- a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemv.inl +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemv.inl @@ -491,7 +491,7 @@ namespace FFLAS{ const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY, ParSeqHelper::Sequential& seqH ){ - MMHelper pH(F,m,n,1,seqH); + MMHelper pH(F,m,n,1,seqH); return fgemv(F, ta, m, n, alpha, A, lda, X, incX, beta, Y, incY, pH); } } diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemv_mp.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemv_mp.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fgemv_mp.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fgemv_mp.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fger.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fger.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fger.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fger.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fger_mp.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fger_mp.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fger_mp.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fger_mp.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_freduce.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_freduce.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_freduce.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_freduce.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_freduce.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_freduce.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_freduce.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_freduce.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_freduce_mp.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_freduce_mp.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_freduce_mp.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_freduce_mp.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_freivalds.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_freivalds.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_freivalds.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_freivalds.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fscal.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fscal.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fscal.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fscal.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fscal.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fscal.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fscal.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fscal.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fscal_mp.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fscal_mp.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fscal_mp.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fscal_mp.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fsyr2k.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fsyr2k.inl similarity index 98% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fsyr2k.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fsyr2k.inl index 618624d30..3ae326e39 100644 --- a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fsyr2k.inl +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fsyr2k.inl @@ -53,7 +53,7 @@ namespace FFLAS { } else { // store diagonal diagC <- beta Cii diagC = FFLAS::fflas_new(F,N); - fscal(F, N, beta, C, ldc+1, diagC, 1); + fscal(F, N, beta, diagC, 1, C, ldc+1); } // Set unused triangular part of C to zero diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fsyrk.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fsyrk.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fsyrk.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fsyrk.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fsyrk_strassen.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fsyrk_strassen.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_fsyrk_strassen.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_fsyrk_strassen.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrmm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrmm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrmm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrmm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrmm_src.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrmm_src.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrmm_src.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrmm_src.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrsm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrsm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrsm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrsm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrsm_mp.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrsm_mp.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrsm_mp.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrsm_mp.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrsm_src.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrsm_src.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrsm_src.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrsm_src.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrsv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrsv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_ftrsv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_ftrsv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_helpers.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_helpers.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_helpers.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_helpers.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/Makefile.in new file mode 100644 index 000000000..1c036a62e --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/Makefile.in @@ -0,0 +1,638 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_igemm +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_igemm +EXTRA_DIST = igemm.doxy +pkgincludesub_HEADERS = \ + igemm_kernels.h \ + igemm_kernels.inl \ + igemm_tools.h \ + igemm_tools.inl \ + igemm.h \ + igemm.inl + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_igemm/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_igemm/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm.doxy b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm.doxy similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm.doxy rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm.doxy diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm_kernels.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm_kernels.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm_kernels.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm_kernels.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm_kernels.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm_kernels.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm_kernels.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm_kernels.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm_tools.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm_tools.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm_tools.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm_tools.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm_tools.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm_tools.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_igemm/igemm_tools.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_igemm/igemm_tools.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_level1.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_level1.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_level1.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_level1.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_level2.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_level2.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_level2.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_level2.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_level3.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_level3.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_level3.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_level3.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_pfgemm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_pfgemm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_pfgemm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_pfgemm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_pftrsm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_pftrsm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_pftrsm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_pftrsm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd.h similarity index 98% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd.h index 84ced0fd8..bf5d30211 100644 --- a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd.h +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd.h @@ -384,20 +384,6 @@ struct SimdChooser // integral number #endif }; -#ifndef __x86_64__ -template <> -struct SimdChooser -{ - using value = NoSimd; -}; - -template <> -struct SimdChooser -{ - using value = NoSimd; -}; -#endif - template using Simd = typename SimdChooser::value; // template struct SimdChooser { diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/Makefile.in new file mode 100644 index 000000000..0495d015f --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/Makefile.in @@ -0,0 +1,657 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_simd +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_simd +EXTRA_DIST = simd.doxy +SIMD128 = simd128.inl \ + simd128_double.inl \ + simd128_float.inl \ + simd128_int16.inl \ + simd128_int32.inl \ + simd128_int64.inl + +SIMD256 = simd256.inl \ + simd256_double.inl \ + simd256_float.inl \ + simd256_int16.inl \ + simd256_int32.inl \ + simd256_int64.inl + +SIMD512 = simd512.inl \ + simd512_double.inl \ + simd512_float.inl \ + simd512_int32.inl \ + simd512_int64.inl + +SIMD_MOD = simd_modular.inl +pkgincludesub_HEADERS = \ + $(SIMD128) \ + $(SIMD256) \ + $(SIMD512) \ + $(SIMD_MOD) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_simd/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_simd/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd.doxy b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd.doxy similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd.doxy rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd.doxy diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_double.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_double.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_double.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_double.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_float.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_float.inl similarity index 96% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_float.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_float.inl index 5d009f3e3..3a789e2a6 100644 --- a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_float.inl +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_float.inl @@ -163,10 +163,12 @@ template <> struct Simd128_impl { * Args : [a0, a1, a2, a3] float * Return : [a[s[0..1]], ..., a[s[6..7]] float */ +#if defined(__FFLASFFPACK_HAVE_AVX_INSTRUCTIONS) template static INLINE CONST vect_t shuffle(const vect_t a) { - return _mm_castsi128_ps (_mm_shuffle_epi32 (_mm_castps_si128 (a), s)); + return _mm_permute_ps(a, s); } +#endif /* * Unpack and interleave single-precision (32-bit) floating-point elements @@ -237,9 +239,9 @@ template <> struct Simd128_impl { */ static INLINE CONST vect_t pack_even (const vect_t a, const vect_t b) { /* 0xd8 = 3120 base_4 */ - __m128i t1 = _mm_shuffle_epi32 (_mm_castps_si128 (a), 0xd8); - __m128i t2 = _mm_shuffle_epi32 (_mm_castps_si128 (b), 0xd8); - return _mm_castsi128_ps (_mm_unpacklo_epi64 (t1, t2)); + __m128d t1 = _mm_castps_pd (_mm_permute_ps (a, 0xd8)); + __m128d t2 = _mm_castps_pd (_mm_permute_ps (b, 0xd8)); + return _mm_castpd_ps (_mm_unpacklo_pd (t1, t2)); } /* @@ -251,9 +253,9 @@ template <> struct Simd128_impl { */ static INLINE CONST vect_t pack_odd (const vect_t a, const vect_t b) { /* 0xd8 = 3120 base_4 */ - __m128i t1 = _mm_shuffle_epi32 (_mm_castps_si128 (a), 0xd8); - __m128i t2 = _mm_shuffle_epi32 (_mm_castps_si128 (b), 0xd8); - return _mm_castsi128_ps (_mm_unpackhi_epi64 (t1, t2)); + __m128d t1 = _mm_castps_pd (_mm_permute_ps (a, 0xd8)); + __m128d t2 = _mm_castps_pd (_mm_permute_ps (b, 0xd8)); + return _mm_castpd_ps (_mm_unpackhi_pd (t1, t2)); } /* @@ -267,10 +269,10 @@ template <> struct Simd128_impl { static INLINE void pack (vect_t& even, vect_t& odd, const vect_t a, const vect_t b) { /* 0xd8 = 3120 base_4 */ - __m128i t1 = _mm_shuffle_epi32 (_mm_castps_si128 (a), 0xd8); - __m128i t2 = _mm_shuffle_epi32 (_mm_castps_si128 (b), 0xd8); - even = _mm_castsi128_ps (_mm_unpacklo_epi64 (t1, t2)); - odd = _mm_castsi128_ps (_mm_unpackhi_epi64 (t1, t2)); + __m128d t1 = _mm_castps_pd (_mm_permute_ps (a, 0xd8)); + __m128d t2 = _mm_castps_pd (_mm_permute_ps (b, 0xd8)); + even = _mm_castpd_ps (_mm_unpacklo_pd (t1, t2)); + odd = _mm_castpd_ps (_mm_unpackhi_pd (t1, t2)); } /* diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_int16.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_int16.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_int16.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_int16.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_int32.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_int32.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_int32.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_int32.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_int64.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_int64.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd128_int64.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd128_int64.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256_double.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256_double.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256_double.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256_double.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256_float.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256_float.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256_float.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256_float.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256_int16.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256_int16.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256_int16.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256_int16.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256_int32.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256_int32.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256_int32.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256_int32.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256_int64.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256_int64.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd256_int64.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd256_int64.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd512.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd512.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd512.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd512.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd512_double.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd512_double.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd512_double.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd512_double.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd512_float.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd512_float.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd512_float.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd512_float.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd512_int32.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd512_int32.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd512_int32.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd512_int32.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd512_int64.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd512_int64.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd512_int64.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd512_int64.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd_modular.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd_modular.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_simd/simd_modular.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_simd/simd_modular.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/Makefile.in new file mode 100644 index 000000000..c185a29de --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/Makefile.in @@ -0,0 +1,757 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Bastien Vialla +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_sparse +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_sparse +SUBDIRS = coo csr csr_hyb ell ell_simd hyb_zo sell +pkgincludesub_HEADERS = \ + sparse_matrix_traits.h \ + read_sparse.h \ + utils.h \ + coo.h \ + csr.h \ + ell.h \ + ell_simd.h \ + sell.h \ + csr_hyb.h \ + hyb_zo.h + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(HEADERS) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pkgincludesubHEADERS \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/coo.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/coo.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/coo/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/coo/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/Makefile.in new file mode 100644 index 000000000..1546fbe24 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/Makefile.in @@ -0,0 +1,634 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Bastien Vialla +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_sparse/coo +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_sparse/coo +pkgincludesub_HEADERS = \ + coo_spmv.inl \ + coo_spmm.inl \ + coo_utils.inl + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/coo/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/coo/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/coo/coo_spmm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/coo_spmm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/coo/coo_spmm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/coo_spmm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/coo/coo_spmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/coo_spmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/coo/coo_spmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/coo_spmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/coo/coo_utils.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/coo_utils.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/coo/coo_utils.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/coo/coo_utils.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/Makefile.in new file mode 100644 index 000000000..749afe4ee --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/Makefile.in @@ -0,0 +1,636 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Bastien Vialla +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_sparse/csr +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_sparse/csr +pkgincludesub_HEADERS = \ + csr_spmv.inl \ + csr_spmm.inl \ + csr_pspmv.inl \ + csr_pspmm.inl \ + csr_utils.inl + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/csr/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/csr/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/csr_pspmm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/csr_pspmm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/csr_pspmm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/csr_pspmm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/csr_pspmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/csr_pspmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/csr_pspmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/csr_pspmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/csr_spmm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/csr_spmm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/csr_spmm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/csr_spmm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/csr_spmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/csr_spmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/csr_spmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/csr_spmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/csr_utils.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/csr_utils.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr/csr_utils.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr/csr_utils.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile.in new file mode 100644 index 000000000..65bfdfc06 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile.in @@ -0,0 +1,636 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Bastien Vialla +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_sparse/csr_hyb +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_sparse/csr_hyb +pkgincludesub_HEADERS = \ + csr_hyb_spmv.inl \ + csr_hyb_spmm.inl \ + csr_hyb_pspmv.inl \ + csr_hyb_pspmm.inl \ + csr_hyb_utils.inl + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/csr_hyb/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_pspmm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_pspmm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_pspmm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_pspmm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_pspmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_pspmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_pspmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_pspmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_spmm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_spmm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_spmm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_spmm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_spmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_spmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_spmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_spmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_utils.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_utils.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_utils.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/csr_hyb/csr_hyb_utils.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/Makefile.in new file mode 100644 index 000000000..077ec78a2 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/Makefile.in @@ -0,0 +1,636 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Bastien Vialla +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_sparse/ell +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_sparse/ell +pkgincludesub_HEADERS = \ + ell_spmv.inl \ + ell_spmm.inl \ + ell_pspmv.inl \ + ell_pspmm.inl \ + ell_utils.inl + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/ell/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/ell/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/ell_pspmm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/ell_pspmm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/ell_pspmm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/ell_pspmm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/ell_pspmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/ell_pspmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/ell_pspmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/ell_pspmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/ell_spmm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/ell_spmm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/ell_spmm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/ell_spmm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/ell_spmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/ell_spmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/ell_spmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/ell_spmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/ell_utils.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/ell_utils.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell/ell_utils.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell/ell_utils.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_simd.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_simd.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile.in new file mode 100644 index 000000000..e5a19c3b0 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile.in @@ -0,0 +1,634 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Bastien Vialla +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_sparse/ell_simd +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_sparse/ell_simd +pkgincludesub_HEADERS = \ + ell_simd_spmv.inl \ + ell_simd_pspmv.inl \ + ell_simd_utils.inl + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/ell_simd/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_pspmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_pspmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_pspmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_pspmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_spmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_spmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_spmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_spmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_utils.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_utils.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_utils.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/ell_simd/ell_simd_utils.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile.in new file mode 100644 index 000000000..0e5e734ee --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile.in @@ -0,0 +1,636 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Bastien Vialla +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_sparse/hyb_zo +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_sparse/hyb_zo +pkgincludesub_HEADERS = \ + hyb_zo_spmv.inl \ + hyb_zo_spmm.inl \ + hyb_zo_pspmm.inl \ + hyb_zo_pspmv.inl \ + hyb_zo_utils.inl + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/hyb_zo/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_pspmm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_pspmm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_pspmm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_pspmm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_pspmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_pspmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_pspmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_pspmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_spmm.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_spmm.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_spmm.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_spmm.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_spmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_spmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_spmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_spmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_utils.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_utils.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_utils.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/hyb_zo/hyb_zo_utils.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/read_sparse.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/read_sparse.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/read_sparse.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/read_sparse.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sell.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sell.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sell/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sell/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/Makefile.in new file mode 100644 index 000000000..1c7126248 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/Makefile.in @@ -0,0 +1,634 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2014 FFLAS-FFPACK +# written by Bastien Vialla +# +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/fflas/fflas_sparse/sell +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/fflas/fflas_sparse/sell +pkgincludesub_HEADERS = \ + sell_spmv.inl \ + sell_utils.inl \ + sell_pspmv.inl + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/sell/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/fflas/fflas_sparse/sell/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sell/sell_pspmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/sell_pspmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sell/sell_pspmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/sell_pspmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sell/sell_spmv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/sell_spmv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sell/sell_spmv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/sell_spmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sell/sell_utils.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/sell_utils.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sell/sell_utils.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sell/sell_utils.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sparse_matrix_traits.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sparse_matrix_traits.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/sparse_matrix_traits.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/sparse_matrix_traits.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/utils.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/utils.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/utils.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_sparse/utils.h diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_transpose.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_transpose.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/fflas/fflas_transpose.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/fflas/fflas_transpose.h diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/Makefile.am similarity index 97% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/Makefile.am index 941915289..998bf3f28 100644 --- a/deps/fflas-ffpack/fflas-ffpack/ffpack/Makefile.am +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/Makefile.am @@ -55,7 +55,6 @@ pkgincludesub_HEADERS= \ ffpack_ftrstr.inl\ ffpack_ftrssyr2k.inl\ ffpack_bruhatgen.inl\ - ffpack_sss.inl \ $(multiprecision) diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/Makefile.in new file mode 100644 index 000000000..53ae81351 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/Makefile.in @@ -0,0 +1,662 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# adapted from LinBox configuration +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/ffpack +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/ffpack +multiprecision = ffpack_ludivine_mp.inl \ + ffpack_pluq_mp.inl \ + ffpack_charpoly_mp.inl \ + ffpack_det_mp.inl + +pkgincludesub_HEADERS = \ + ffpack_charpoly_danilevski.inl \ + ffpack_charpoly.inl \ + ffpack_charpoly_kgfastgeneralized.inl \ + ffpack.h \ + ffpack_charpoly_kgfast.inl \ + ffpack_krylovelim.inl \ + ffpack_charpoly_kglu.inl \ + ffpack_echelonforms.inl \ + ffpack_ludivine.inl \ + ffpack_pluq.inl \ + ffpack_ppluq.inl \ + ffpack_frobenius.inl \ + ffpack_minpoly.inl \ + ffpack.inl\ + ffpack_invert.inl\ + ffpack_fgesv.inl\ + ffpack_fgetrs.inl\ + ffpack_fsytrf.inl\ + ffpack_permutation.inl\ + ffpack_ftrtr.inl\ + ffpack_rankprofiles.inl\ + ffpack_ftrstr.inl\ + ffpack_ftrssyr2k.inl\ + ffpack_bruhatgen.inl\ + $(multiprecision) + +EXTRA_DIST = ffpack.doxy +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/ffpack/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/ffpack/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack.doxy b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack.doxy similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack.doxy rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack.doxy diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack.h similarity index 91% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack.h index 4f6658751..ff1acaf31 100755 --- a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack.h +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack.h @@ -210,7 +210,7 @@ namespace FFPACK { /* Permutations */ /** * @brief Applies a permutation P to the matrix A. * Apply a permutation P, stored in the LAPACK format (a sequence of transpositions) - * between indices ibeg and iend (excluded) of P to (iend-ibeg) vectors of size M stored in A (as column for NoTrans and rows for Trans). + * between indices ibeg and iend of P to (iend-ibeg) vectors of size M stored in A (as column for NoTrans and rows for Trans). * Side==FFLAS::FflasLeft for row permutation Side==FFLAS::FflasRight for a column permutation * Trans==FFLAS::FflasTrans for the inverse permutation of P * @param F base field @@ -218,7 +218,7 @@ namespace FFPACK { /* Permutations */ * @param Trans decides if the matrix is seen as columns (FflasTrans) or rows (FflasNoTrans) * @param M size of the elements to permute * @param ibeg first index to consider in P - * @param iend next to last index to consider in P + * @param iend last index to consider in P * @param A input matrix * @param lda leading dimension of A * @param P permutation in LAPACK format @@ -254,7 +254,7 @@ namespace FFPACK { /* Permutations */ * - the remaining iend-ibeg-R values of the permutation are in a monotonically increasing progression * Side==FFLAS::FflasLeft for row permutation Side==FFLAS::FflasRight for a column permutation * Trans==FFLAS::FflasTrans for the inverse permutation of P - * @param F base field + * @param F base field * @param Side selects if it is a row (FflasLeft) or column (FflasRight) permutation * @param Trans inverse permutation (FflasTrans/NoTrans) * @param M @@ -464,7 +464,7 @@ namespace FFPACK { /* ftrtr */ template void ftrtrm (const Field& F, const FFLAS::FFLAS_SIDE side, const FFLAS::FFLAS_DIAG diag, - const size_t N, typename Field::Element_ptr A, const size_t lda); + const size_t N, typename Field::Element_ptr A, const size_t lda); /** @brief Solve a triangular system with a triangular right hand side of the same shape. * @param F base field @@ -568,17 +568,17 @@ namespace FFPACK { const size_t threshold = __FFLASFFPACK_FSYTRF_THRESHOLD); /* PLUQ */ - /** @brief Compute a PLUQ factorization of the given matrix; such that A=PLUQ. + /** @brief Compute a PLUQ factorization of the given matrix. * Return its rank. - * The permutations P and Q are represented using LAPACK's convention. - * Instead of P, the routines produces Pt, a LAPACK representation of P^T + * The permutations P and Q are represented + * using LAPACK's convention. * @param F base field * @param Diag whether U should have a unit diagonal (FflasUnit) or not (FflasNoUnit) * @param M matrix row dimension * @param N matrix column dimension * @param A input matrix * @param lda leading dimension of \p A - * @param Pt the transpose of row permutation P + * @param P the row permutation * @param Q the column permutation * @return the rank of \p A @@ -1925,162 +1925,6 @@ namespace FFPACK { /* Quasi-separable matrices*/ void productBruhatxTS (const Field&Fi, size_t N, size_t s, size_t r, const size_t *P, const size_t *Q, const typename Field::Element_ptr Xu,size_t ldu, size_t NbBlocksU, size_t * Ku, size_t *Tu, size_t * MU,const typename Field::Element_ptr Xl, size_t ldl, size_t NbBlocksL,size_t *Kl, size_t * Tl, size_t * ML,typename Field::Element_ptr B,size_t t, size_t ldb, typename Field::Element_ptr C, size_t ldc); } -namespace FFPACK { /* SSS */ - /** - * @brief Compute the product of a quasi-separable matrix A, - * represented by a sequentially semi-separable generator, - * with a dense rectangular matrix B: \f$ C \gets \alpha * A \times B + beta C \f$ - * - * @param Fi the base field - * @param N the row and column dimension of \p A - * @param t the column dimension of \p B and \p C - * @param s the order of quasiseparability of \p A - * @param alpha a scalar - * @param D an \f$ N \times s\f$ dense matrix - * @param ldd leading dimension of \p D - * @param P an \f$ (N - s) \times s\f$ dense matrix - * @param ldp leading dimension of \p P - * @param Q an \f$ (N - ls) \times s\f$ dense matrix where ls = (N%s)? N%s: s - * @param ldq leading dimension of \p Q - * @param R an \f$ (N - s - ls) \times s\f$ dense matrix - * @param ldr leading dimension of \p R - * @param U an \f$ (N - ls) \times s\f$ dense matrix - * @param ldu leading dimension of \p U - * @param V an \f$ (N - ls) \times s\f$ dense matrix - * @param ldv leading dimension of \p V - * @param W an \f$ (N - s - ls) \times s\f$ dense matrix - * @param ldw leading dimension of \p W - * @param B an \f$ N \times t\f$ dense matrix - * @param ldb leading dimension of \p B - * @param beta scaling constant - * @param [inout] C output matrix - * @param ldc leading dimension of \p C - * - * A = - * +--------+------+------+--------+---- - * | D1 | U1V2 |U1W2V3|U1W2W3V4| ... - * +--------+------+------+--------+---- - * | P2Q1 | D2 | U2V3 | U2W3V4 | ... - * +--------+------+------+--------+---- - * | P3R2Q1 | P3Q2 | D3 | U3V4 | ... - * +--------+------+------+--------+---- - * |P4R3R2Q1|P4R3Q2| P4Q3 | D4 | ... - * +--------+------+------+--------+---- - * | ... | ... | ... | ... | ... - - * @bib S. Chandrasekaran et al. “Fast Stable Solver for Sequentially Semi-separable Linear - * Systems of Equations”. In : High Performance Computing — HiPC 2002. - */ - template - void productSSSxTS (const Field& Fi, size_t N, size_t s, - typename Field::ConstElement_ptr P, size_t ldp, - typename Field::ConstElement_ptr Q, size_t ldq, - typename Field::ConstElement_ptr R, size_t ldr, - typename Field::ConstElement_ptr U, size_t ldu, - typename Field::ConstElement_ptr V, size_t ldv, - typename Field::ConstElement_ptr W, size_t ldw, - typename Field::ConstElement_ptr D, size_t ldd, - size_t t, const typename Field::Element alpha, - typename Field::Element_ptr B, size_t ldb, - const typename Field::Element beta, - typename Field::Element_ptr C, size_t ldc); - /** - * @brief Computes a quasi-separable matrix A from its SSS generators - * - * @param Fi the base field - * @param N the row and column dimension of \p A - * @param s the order of quasiseparability of \p A - * @param P an \f$ (N - s) \times s\f$ dense matrix - * @param ldp leading dimension of \p P - * @param Q an \f$ (N - ls) \times s\f$ dense matrix where ls = (N%s)? N%s: s - * @param ldq leading dimension of \p Q - * @param R an \f$ (N - s - ls) \times s\f$ dense matrix - * @param ldr leading dimension of \p R - * @param U an \f$ (N - ls) \times s\f$ dense matrix - * @param ldu leading dimension of \p U - * @param V an \f$ (N - ls) \times s\f$ dense matrix - * @param ldv leading dimension of \p V - * @param W an \f$ (N - s - ls) \times s\f$ dense matrix - * @param ldw leading dimension of \p W - * @param D an \f$ N \times s\f$ dense matrix - * @param ldd leading dimension of \p D - * @param [inout] A the \f$ N \times N \f$ output matrix - * @param lda leading dimension of \p A - * - * A = - * +--------+------+------+--------+---- - * | D1 | U1V2 |U1W2V3|U1W2W3V4| ... - * +--------+------+------+--------+---- - * | P2Q1 | D2 | U2V3 | U2W3V4 | ... - * +--------+------+------+--------+---- - * | P3R2Q1 | P3Q2 | D3 | U3V4 | ... - * +--------+------+------+--------+---- - * |P4R3R2Q1|P4R3Q2| P4Q3 | D4 | ... - * +--------+------+------+--------+---- - * | ... | ... | ... | ... | ... - * - * @bib S. Chandrasekaran et al. “Fast Stable Solver for Sequentially Semi-separable Linear - * Systems of Equations”. In : High Performance Computing — HiPC 2002. - */ - template - inline void SSSToDense (const Field& Fi, size_t N, size_t s, - typename Field::ConstElement_ptr P, size_t ldp, - typename Field::ConstElement_ptr Q, size_t ldq, - typename Field::ConstElement_ptr R, size_t ldr, - typename Field::ConstElement_ptr U, size_t ldu, - typename Field::ConstElement_ptr V, size_t ldv, - typename Field::ConstElement_ptr W, size_t ldw, - typename Field::ConstElement_ptr D, size_t ldd, - typename Field::Element_ptr A, size_t lda); - /** - * @brief Computes SSS generators for a quasi-separable matrix A - * - * @param Fi the base field - * @param N the row and column dimension of \p A - * @param s the order of quasiseparability of \p A - * @param [inout] P an \f$ (N - s) \times s\f$ output matrix - * @param ldp leading dimension of \p P - * @param [inout] Q an \f$ (N - ls) \times s\f$ output matrix where ls = (N%s)? N%s: s - * @param ldq leading dimension of \p Q - * @param [inout] R an \f$ (N - s - ls) \times s\f$ output matrix - * @param ldr leading dimension of \p R - * @param [inout] U an \f$ (N - ls) \times s\f$ output matrix - * @param ldu leading dimension of \p U - * @param [inout] V an \f$ (N - ls) \times s\f$ output matrix - * @param ldv leading dimension of \p V - * @param [inout] W an \f$ (N - s - ls) \times s\f$ output matrix - * @param ldw leading dimension of \p W - * @param [inout] D an \f$ N \times s\f$ output matrix - * @param ldd leading dimension of \p D - * @param A an \f$ N \times N \f$ dense matrix - * @param lda leading dimension of \p A - * - * A = - * +--------+------+------+--------+---- - * | D1 | U1V2 |U1W2V3|U1W2W3V4| ... - * +--------+------+------+--------+---- - * | P2Q1 | D2 | U2V3 | U2W3V4 | ... - * +--------+------+------+--------+---- - * | P3R2Q1 | P3Q2 | D3 | U3V4 | ... - * +--------+------+------+--------+---- - * |P4R3R2Q1|P4R3Q2| P4Q3 | D4 | ... - * +--------+------+------+--------+---- - * | ... | ... | ... | ... | ... - * - */ - template - inline void DenseToSSS (const Field& Fi, size_t N, size_t s, - typename Field::Element_ptr P, size_t ldp, - typename Field::Element_ptr Q, size_t ldq, - typename Field::Element_ptr R, size_t ldr, - typename Field::Element_ptr U, size_t ldu, - typename Field::Element_ptr V, size_t ldv, - typename Field::Element_ptr W, size_t ldw, - typename Field::Element_ptr D, size_t ldd, - typename Field::ConstElement_ptr A, size_t lda); -} - - namespace FFPACK { /* not used */ /** LQUPtoInverseOfFullRankMinor. @@ -2144,7 +1988,6 @@ namespace FFPACK { /* not used */ #include "ffpack_rankprofiles.inl" #include "ffpack_det_mp.inl" #include "ffpack_bruhatgen.inl" -#include "ffpack_sss.inl" #include "ffpack.inl" #endif // __FFLASFFPACK_ffpack_H diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_bruhatgen.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_bruhatgen.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_bruhatgen.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_bruhatgen.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly_danilevski.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly_danilevski.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly_danilevski.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly_danilevski.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly_kgfast.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly_kgfast.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly_kgfast.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly_kgfast.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly_kgfastgeneralized.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly_kgfastgeneralized.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly_kgfastgeneralized.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly_kgfastgeneralized.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly_kglu.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly_kglu.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly_kglu.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly_kglu.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly_mp.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly_mp.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_charpoly_mp.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_charpoly_mp.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_det_mp.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_det_mp.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_det_mp.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_det_mp.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_echelonforms.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_echelonforms.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_echelonforms.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_echelonforms.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_fgesv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_fgesv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_fgesv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_fgesv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_fgetrs.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_fgetrs.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_fgetrs.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_fgetrs.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_frobenius.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_frobenius.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_frobenius.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_frobenius.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_fsytrf.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_fsytrf.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_fsytrf.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_fsytrf.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ftrssyr2k.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ftrssyr2k.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ftrssyr2k.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ftrssyr2k.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ftrstr.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ftrstr.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ftrstr.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ftrstr.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ftrtr.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ftrtr.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ftrtr.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ftrtr.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_invert.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_invert.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_invert.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_invert.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_krylovelim.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_krylovelim.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_krylovelim.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_krylovelim.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ludivine.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ludivine.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ludivine.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ludivine.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ludivine_mp.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ludivine_mp.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ludivine_mp.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ludivine_mp.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_minpoly.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_minpoly.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_minpoly.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_minpoly.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_permutation.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_permutation.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_permutation.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_permutation.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_pluq.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_pluq.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_pluq.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_pluq.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_pluq_mp.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_pluq_mp.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_pluq_mp.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_pluq_mp.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ppluq.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ppluq.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_ppluq.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_ppluq.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_rankprofiles.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_rankprofiles.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_rankprofiles.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/ffpack/ffpack_rankprofiles.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/field/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/Makefile.in new file mode 100644 index 000000000..ad4bf95ce --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/Makefile.in @@ -0,0 +1,643 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# adapted from LinBox configuration +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/field +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/field +RNS = rns.h \ + rns.inl \ + rns-double.h \ + rns-double-elt.h \ + rns-double.inl \ + rns-double-recint.inl \ + rns-integer.h \ + rns-integer-mod.h + +pkgincludesub_HEADERS = \ + field-traits.h \ + $(RNS) + +EXTRA_DIST = field.doxy +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/field/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/field/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/field/field-traits.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/field-traits.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/field-traits.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/field-traits.h diff --git a/deps/fflas-ffpack/fflas-ffpack/field/field.doxy b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/field.doxy similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/field.doxy rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/field.doxy diff --git a/deps/fflas-ffpack/fflas-ffpack/field/rns-double-elt.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-double-elt.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/rns-double-elt.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-double-elt.h diff --git a/deps/fflas-ffpack/fflas-ffpack/field/rns-double-recint.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-double-recint.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/rns-double-recint.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-double-recint.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/field/rns-double.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-double.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/rns-double.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-double.h diff --git a/deps/fflas-ffpack/fflas-ffpack/field/rns-double.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-double.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/rns-double.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-double.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/field/rns-integer-mod.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-integer-mod.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/rns-integer-mod.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-integer-mod.h diff --git a/deps/fflas-ffpack/fflas-ffpack/field/rns-integer.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-integer.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/rns-integer.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns-integer.h diff --git a/deps/fflas-ffpack/fflas-ffpack/field/rns.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/rns.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns.h diff --git a/deps/fflas-ffpack/fflas-ffpack/field/rns.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/field/rns.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/field/rns.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/Makefile.in new file mode 100644 index 000000000..95dcabe9e --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/Makefile.in @@ -0,0 +1,687 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2010 the LinBox group +# Written by Brice Boyer (briceboyer) +# ========LICENCE======== +# This file is part of the library LinBox. +# +# LinBox is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/interfaces +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/interfaces +SUBDIRS = libs +EXTRA_DIST = interfaces.doxy +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/interfaces/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/interfaces/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/interfaces.doxy b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/interfaces.doxy similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/interfaces.doxy rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/interfaces.doxy diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/Makefile.in new file mode 100644 index 000000000..789c61f2a --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/Makefile.in @@ -0,0 +1,881 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2010 the LinBox group +# Written by Brice Boyer (briceboyer) +# ========LICENCE======== +# This file is part of the library LinBox. +# +# LinBox is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/interfaces/libs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__pkgincludesub_HEADERS_DIST) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(pkgincludesubdir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +am__DEPENDENCIES_1 = +@FFLASFFPACK_PRECOMPILED_TRUE@libfflas_la_DEPENDENCIES = \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(am__DEPENDENCIES_1) \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(am__DEPENDENCIES_1) \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(am__DEPENDENCIES_1) +am__libfflas_la_SOURCES_DIST = fflas_L1_inst.C \ + fflas_L1_inst_implem.inl fflas_L2_inst.C \ + fflas_L2_inst_implem.inl fflas_L3_inst.C \ + fflas_L3_inst_implem.inl +@FFLASFFPACK_PRECOMPILED_TRUE@am_libfflas_la_OBJECTS = \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L1_inst.lo \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L2_inst.lo \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L3_inst.lo +libfflas_la_OBJECTS = $(am_libfflas_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libfflas_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libfflas_la_LDFLAGS) $(LDFLAGS) -o $@ +@FFLASFFPACK_PRECOMPILED_TRUE@am_libfflas_la_rpath = -rpath $(libdir) +@FFLASFFPACK_PRECOMPILED_TRUE@libfflas_c_la_DEPENDENCIES = \ +@FFLASFFPACK_PRECOMPILED_TRUE@ libfflas.la +am__libfflas_c_la_SOURCES_DIST = fflas_lvl1.C fflas_lvl2.C \ + fflas_lvl3.C fflas_sparse.C +@FFLASFFPACK_PRECOMPILED_TRUE@am_libfflas_c_la_OBJECTS = \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_lvl1.lo fflas_lvl2.lo \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_lvl3.lo fflas_sparse.lo +libfflas_c_la_OBJECTS = $(am_libfflas_c_la_OBJECTS) +libfflas_c_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(AM_CXXFLAGS) $(CXXFLAGS) $(libfflas_c_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@FFLASFFPACK_PRECOMPILED_TRUE@am_libfflas_c_la_rpath = -rpath \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(libdir) +@FFLASFFPACK_PRECOMPILED_TRUE@libffpack_la_DEPENDENCIES = libfflas.la +am__libffpack_la_SOURCES_DIST = ffpack_inst.C ffpack_inst_implem.inl +@FFLASFFPACK_PRECOMPILED_TRUE@am_libffpack_la_OBJECTS = \ +@FFLASFFPACK_PRECOMPILED_TRUE@ ffpack_inst.lo +libffpack_la_OBJECTS = $(am_libffpack_la_OBJECTS) +libffpack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libffpack_la_LDFLAGS) $(LDFLAGS) -o $@ +@FFLASFFPACK_PRECOMPILED_TRUE@am_libffpack_la_rpath = -rpath $(libdir) +@FFLASFFPACK_PRECOMPILED_TRUE@libffpack_c_la_DEPENDENCIES = \ +@FFLASFFPACK_PRECOMPILED_TRUE@ libffpack.la +am__libffpack_c_la_SOURCES_DIST = ffpack.C +@FFLASFFPACK_PRECOMPILED_TRUE@am_libffpack_c_la_OBJECTS = ffpack.lo +libffpack_c_la_OBJECTS = $(am_libffpack_c_la_OBJECTS) +libffpack_c_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ + $(AM_CXXFLAGS) $(CXXFLAGS) $(libffpack_c_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@FFLASFFPACK_PRECOMPILED_TRUE@am_libffpack_c_la_rpath = -rpath \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(libdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/fflas_L1_inst.Plo \ + ./$(DEPDIR)/fflas_L2_inst.Plo ./$(DEPDIR)/fflas_L3_inst.Plo \ + ./$(DEPDIR)/fflas_lvl1.Plo ./$(DEPDIR)/fflas_lvl2.Plo \ + ./$(DEPDIR)/fflas_lvl3.Plo ./$(DEPDIR)/fflas_sparse.Plo \ + ./$(DEPDIR)/ffpack.Plo ./$(DEPDIR)/ffpack_inst.Plo +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libfflas_la_SOURCES) $(libfflas_c_la_SOURCES) \ + $(libffpack_la_SOURCES) $(libffpack_c_la_SOURCES) +DIST_SOURCES = $(am__libfflas_la_SOURCES_DIST) \ + $(am__libfflas_c_la_SOURCES_DIST) \ + $(am__libffpack_la_SOURCES_DIST) \ + $(am__libffpack_c_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__pkgincludesub_HEADERS_DIST = fflas_c.h ffpack_c.h fflas_L3_inst.h \ + fflas_L3_inst_implem.inl fflas_L2_inst.h \ + fflas_L2_inst_implem.inl fflas_L1_inst.h \ + fflas_L1_inst_implem.inl ffpack_inst.h ffpack_inst_implem.inl +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@FFLASFFPACK_PRECOMPILED_TRUE@pkgincludesubdir = $(pkgincludedir)/interfaces/libs +@FFLASFFPACK_PRECOMPILED_TRUE@AM_CXXFLAGS = $(FFLASFFPACK_CXXFLAGS) $(GIVARO_CFLAGS) $(BLAS_CFLAGS) $(PARFLAGS) +@FFLASFFPACK_PRECOMPILED_TRUE@AM_CPPFLAGS = -I$(top_srcdir) +#AM_LDFLAGS=-static +@FFLASFFPACK_PRECOMPILED_TRUE@pkgincludesub_HEADERS = fflas_c.h \ +@FFLASFFPACK_PRECOMPILED_TRUE@ ffpack_c.h \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L3_inst.h \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L3_inst_implem.inl \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L2_inst.h \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L2_inst_implem.inl \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L1_inst.h \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L1_inst_implem.inl \ +@FFLASFFPACK_PRECOMPILED_TRUE@ ffpack_inst.h \ +@FFLASFFPACK_PRECOMPILED_TRUE@ ffpack_inst_implem.inl + +@FFLASFFPACK_PRECOMPILED_TRUE@lib_LTLIBRARIES = libfflas.la \ +@FFLASFFPACK_PRECOMPILED_TRUE@ libffpack.la \ +@FFLASFFPACK_PRECOMPILED_TRUE@ libfflas_c.la \ +@FFLASFFPACK_PRECOMPILED_TRUE@ libffpack_c.la + +@FFLASFFPACK_PRECOMPILED_TRUE@libfflas_la_SOURCES = fflas_L1_inst.C \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L1_inst_implem.inl\ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L2_inst.C \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L2_inst_implem.inl \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L3_inst.C \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_L3_inst_implem.inl + +@FFLASFFPACK_PRECOMPILED_TRUE@libfflas_la_LIBADD = $(GIVARO_LIBS) $(BLAS_LIBS) $(PARLIBS) +@FFLASFFPACK_PRECOMPILED_TRUE@libfflas_la_LDFLAGS = -version-info 1:0:0 -no-undefined +@FFLASFFPACK_PRECOMPILED_TRUE@libffpack_la_SOURCES = ffpack_inst.C \ +@FFLASFFPACK_PRECOMPILED_TRUE@ ffpack_inst_implem.inl + +@FFLASFFPACK_PRECOMPILED_TRUE@libffpack_la_LIBADD = libfflas.la +@FFLASFFPACK_PRECOMPILED_TRUE@libffpack_la_LDFLAGS = -version-info 1:0:0 -no-undefined +@FFLASFFPACK_PRECOMPILED_TRUE@libfflas_c_la_SOURCES = fflas_lvl1.C \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_lvl2.C \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_lvl3.C \ +@FFLASFFPACK_PRECOMPILED_TRUE@ fflas_sparse.C + +#libfflas_c_la_CPPFLAGS=$(AM_CPPFLAGS) -DFFLAS_COMPILED -DFFPACK_COMPILED +@FFLASFFPACK_PRECOMPILED_TRUE@libfflas_c_la_LIBADD = libfflas.la +@FFLASFFPACK_PRECOMPILED_TRUE@libfflas_c_la_LDFLAGS = -version-info 1:0:0 -no-undefined +@FFLASFFPACK_PRECOMPILED_TRUE@libffpack_c_la_SOURCES = ffpack.C +#libffpack_c_la_CPPFLAGS=$(AM_CPPFLAGS) -DFFLAS_COMPILED -DFFPACK_COMPILED +@FFLASFFPACK_PRECOMPILED_TRUE@libffpack_c_la_LIBADD = libffpack.la +@FFLASFFPACK_PRECOMPILED_TRUE@libffpack_c_la_LDFLAGS = -version-info 1:0:0 -no-undefined +@FFLASFFPACK_PRECOMPILED_TRUE@EXTRA_DIST = c_libs.doxy +all: all-am + +.SUFFIXES: +.SUFFIXES: .C .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/interfaces/libs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/interfaces/libs/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libfflas.la: $(libfflas_la_OBJECTS) $(libfflas_la_DEPENDENCIES) $(EXTRA_libfflas_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libfflas_la_LINK) $(am_libfflas_la_rpath) $(libfflas_la_OBJECTS) $(libfflas_la_LIBADD) $(LIBS) + +libfflas_c.la: $(libfflas_c_la_OBJECTS) $(libfflas_c_la_DEPENDENCIES) $(EXTRA_libfflas_c_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libfflas_c_la_LINK) $(am_libfflas_c_la_rpath) $(libfflas_c_la_OBJECTS) $(libfflas_c_la_LIBADD) $(LIBS) + +libffpack.la: $(libffpack_la_OBJECTS) $(libffpack_la_DEPENDENCIES) $(EXTRA_libffpack_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libffpack_la_LINK) $(am_libffpack_la_rpath) $(libffpack_la_OBJECTS) $(libffpack_la_LIBADD) $(LIBS) + +libffpack_c.la: $(libffpack_c_la_OBJECTS) $(libffpack_c_la_DEPENDENCIES) $(EXTRA_libffpack_c_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libffpack_c_la_LINK) $(am_libffpack_c_la_rpath) $(libffpack_c_la_OBJECTS) $(libffpack_c_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas_L1_inst.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas_L2_inst.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas_L3_inst.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas_lvl1.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas_lvl2.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas_lvl3.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas_sparse.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffpack.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffpack_inst.Plo@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.C.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.C.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.C.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/fflas_L1_inst.Plo + -rm -f ./$(DEPDIR)/fflas_L2_inst.Plo + -rm -f ./$(DEPDIR)/fflas_L3_inst.Plo + -rm -f ./$(DEPDIR)/fflas_lvl1.Plo + -rm -f ./$(DEPDIR)/fflas_lvl2.Plo + -rm -f ./$(DEPDIR)/fflas_lvl3.Plo + -rm -f ./$(DEPDIR)/fflas_sparse.Plo + -rm -f ./$(DEPDIR)/ffpack.Plo + -rm -f ./$(DEPDIR)/ffpack_inst.Plo + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/fflas_L1_inst.Plo + -rm -f ./$(DEPDIR)/fflas_L2_inst.Plo + -rm -f ./$(DEPDIR)/fflas_L3_inst.Plo + -rm -f ./$(DEPDIR)/fflas_lvl1.Plo + -rm -f ./$(DEPDIR)/fflas_lvl2.Plo + -rm -f ./$(DEPDIR)/fflas_lvl3.Plo + -rm -f ./$(DEPDIR)/fflas_sparse.Plo + -rm -f ./$(DEPDIR)/ffpack.Plo + -rm -f ./$(DEPDIR)/ffpack_inst.Plo + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-libLTLIBRARIES \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L1_inst.C b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L1_inst.C similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L1_inst.C rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L1_inst.C diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L1_inst.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L1_inst.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L1_inst.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L1_inst.h diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L1_inst_implem.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L1_inst_implem.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L1_inst_implem.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L1_inst_implem.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L2_inst.C b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L2_inst.C similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L2_inst.C rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L2_inst.C diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L2_inst.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L2_inst.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L2_inst.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L2_inst.h diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L2_inst_implem.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L2_inst_implem.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L2_inst_implem.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L2_inst_implem.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L3_inst.C b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L3_inst.C similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L3_inst.C rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L3_inst.C diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L3_inst.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L3_inst.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L3_inst.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L3_inst.h diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L3_inst_implem.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L3_inst_implem.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_L3_inst_implem.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_L3_inst_implem.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_c.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_c.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_c.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_c.h diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_lvl1.C b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_lvl1.C similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_lvl1.C rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_lvl1.C diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_lvl2.C b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_lvl2.C similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_lvl2.C rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_lvl2.C diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_lvl3.C b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_lvl3.C similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_lvl3.C rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_lvl3.C diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_sparse.C b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_sparse.C similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/fflas_sparse.C rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/fflas_sparse.C diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack.C b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/ffpack.C similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack.C rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/ffpack.C diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_c.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/ffpack_c.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_c.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/ffpack_c.h diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_inst.C b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/ffpack_inst.C similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_inst.C rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/ffpack_inst.C diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_inst.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/ffpack_inst.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_inst.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/ffpack_inst.h diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_inst_implem.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/ffpack_inst_implem.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_inst_implem.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/interfaces/libs/ffpack_inst_implem.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/paladin/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/paladin/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/Makefile.in new file mode 100644 index 000000000..16c206886 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/Makefile.in @@ -0,0 +1,633 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/paladin +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/paladin +pkgincludesub_HEADERS = \ + fflas_plevel1.h \ + blockcuts.inl \ + pfgemm_variants.inl \ + pfgemv.inl \ + parallel.h \ + kaapi_routines.inl + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/paladin/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/paladin/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/paladin/blockcuts.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/blockcuts.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/paladin/blockcuts.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/blockcuts.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/paladin/fflas_plevel1.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/fflas_plevel1.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/paladin/fflas_plevel1.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/fflas_plevel1.h diff --git a/deps/fflas-ffpack/fflas-ffpack/paladin/kaapi_routines.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/kaapi_routines.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/paladin/kaapi_routines.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/kaapi_routines.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/paladin/parallel.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/parallel.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/paladin/parallel.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/parallel.h diff --git a/deps/fflas-ffpack/fflas-ffpack/paladin/pfgemm_variants.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/pfgemm_variants.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/paladin/pfgemm_variants.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/pfgemm_variants.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/paladin/pfgemv.inl b/deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/pfgemv.inl similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/paladin/pfgemv.inl rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/paladin/pfgemv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/Makefile.am b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/Makefile.am similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/Makefile.am rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/Makefile.in b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/Makefile.in new file mode 100644 index 000000000..710cd8286 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/Makefile.in @@ -0,0 +1,645 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = fflas-ffpack/utils +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(pkgincludesub_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludesubdir)" +HEADERS = $(pkgincludesub_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +pkgincludesubdir = $(pkgincludedir)/utils +pkgincludesub_HEADERS = \ + align-allocator.h \ + args-parser.h \ + debug.h \ + fflas_memory.h \ + fflas_randommatrix.h \ + flimits.h \ + Matio.h \ + fflas_io.h \ + bit_manipulation.h \ + test-utils.h \ + timer.h \ + cast.h \ + fflas_intrinsic.h + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fflas-ffpack/utils/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign fflas-ffpack/utils/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludesubHEADERS: $(pkgincludesub_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludesubdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludesubdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludesubdir)" || exit $$?; \ + done + +uninstall-pkgincludesubHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgincludesub_HEADERS)'; test -n "$(pkgincludesubdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludesubdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludesubdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludesubHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludesubHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludesubHEADERS install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludesubHEADERS + +.PRECIOUS: Makefile + + +### is this really extra dist ? +### this is wrong in a header only lib +# EXTRA_DIST=timer.h + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/Matio.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/Matio.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/Matio.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/Matio.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/align-allocator.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/align-allocator.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/align-allocator.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/align-allocator.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/args-parser.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/args-parser.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/args-parser.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/args-parser.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/bit_manipulation.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/bit_manipulation.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/bit_manipulation.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/bit_manipulation.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/cast.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/cast.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/cast.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/cast.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/debug.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/debug.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/debug.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/debug.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/fflas_intrinsic.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/fflas_intrinsic.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/fflas_intrinsic.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/fflas_intrinsic.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/fflas_io.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/fflas_io.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/fflas_io.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/fflas_io.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/fflas_memory.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/fflas_memory.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/fflas_memory.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/fflas_memory.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/fflas_randommatrix.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/fflas_randommatrix.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/fflas_randommatrix.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/fflas_randommatrix.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/flimits.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/flimits.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/flimits.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/flimits.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/test-utils.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/test-utils.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/test-utils.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/test-utils.h diff --git a/deps/fflas-ffpack/fflas-ffpack/utils/timer.h b/deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/timer.h similarity index 100% rename from deps/fflas-ffpack/fflas-ffpack/utils/timer.h rename to deps/fflas-ffpack-2.5.0/fflas-ffpack/utils/timer.h diff --git a/deps/fflas-ffpack/macros/CodeChunk/Makefile.am b/deps/fflas-ffpack-2.5.0/macros/CodeChunk/Makefile.am similarity index 100% rename from deps/fflas-ffpack/macros/CodeChunk/Makefile.am rename to deps/fflas-ffpack-2.5.0/macros/CodeChunk/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/macros/CodeChunk/Makefile.in b/deps/fflas-ffpack-2.5.0/macros/CodeChunk/Makefile.in new file mode 100644 index 000000000..2400e74d5 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/macros/CodeChunk/Makefile.in @@ -0,0 +1,514 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2013 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# adapted from LinBox configuration +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = macros/CodeChunk +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = \ + clapack.C \ + lapack.C \ + cblas.C \ + fblas.C \ + cuda.C + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign macros/CodeChunk/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign macros/CodeChunk/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/macros/CodeChunk/cblas.C b/deps/fflas-ffpack-2.5.0/macros/CodeChunk/cblas.C similarity index 100% rename from deps/fflas-ffpack/macros/CodeChunk/cblas.C rename to deps/fflas-ffpack-2.5.0/macros/CodeChunk/cblas.C diff --git a/deps/fflas-ffpack/macros/CodeChunk/clapack.C b/deps/fflas-ffpack-2.5.0/macros/CodeChunk/clapack.C similarity index 100% rename from deps/fflas-ffpack/macros/CodeChunk/clapack.C rename to deps/fflas-ffpack-2.5.0/macros/CodeChunk/clapack.C diff --git a/deps/fflas-ffpack/macros/CodeChunk/cuda.C b/deps/fflas-ffpack-2.5.0/macros/CodeChunk/cuda.C similarity index 100% rename from deps/fflas-ffpack/macros/CodeChunk/cuda.C rename to deps/fflas-ffpack-2.5.0/macros/CodeChunk/cuda.C diff --git a/deps/fflas-ffpack/macros/CodeChunk/fblas.C b/deps/fflas-ffpack-2.5.0/macros/CodeChunk/fblas.C similarity index 100% rename from deps/fflas-ffpack/macros/CodeChunk/fblas.C rename to deps/fflas-ffpack-2.5.0/macros/CodeChunk/fblas.C diff --git a/deps/fflas-ffpack/macros/CodeChunk/lapack.C b/deps/fflas-ffpack-2.5.0/macros/CodeChunk/lapack.C similarity index 100% rename from deps/fflas-ffpack/macros/CodeChunk/lapack.C rename to deps/fflas-ffpack-2.5.0/macros/CodeChunk/lapack.C diff --git a/deps/fflas-ffpack/macros/Makefile.am b/deps/fflas-ffpack-2.5.0/macros/Makefile.am similarity index 100% rename from deps/fflas-ffpack/macros/Makefile.am rename to deps/fflas-ffpack-2.5.0/macros/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/macros/Makefile.in b/deps/fflas-ffpack-2.5.0/macros/Makefile.in new file mode 100644 index 000000000..4a24aa726 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/macros/Makefile.in @@ -0,0 +1,688 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# adapted from LinBox configuration +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = macros +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = CodeChunk +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign macros/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign macros/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/macros/ax_cxx_compile_stdcxx_11.m4 b/deps/fflas-ffpack-2.5.0/macros/ax_cxx_compile_stdcxx_11.m4 similarity index 100% rename from deps/fflas-ffpack/macros/ax_cxx_compile_stdcxx_11.m4 rename to deps/fflas-ffpack-2.5.0/macros/ax_cxx_compile_stdcxx_11.m4 diff --git a/deps/fflas-ffpack/macros/common.m4 b/deps/fflas-ffpack-2.5.0/macros/common.m4 similarity index 90% rename from deps/fflas-ffpack/macros/common.m4 rename to deps/fflas-ffpack-2.5.0/macros/common.m4 index dba94c804..1e361e587 100644 --- a/deps/fflas-ffpack/macros/common.m4 +++ b/deps/fflas-ffpack-2.5.0/macros/common.m4 @@ -137,8 +137,18 @@ AC_DEFUN([FPMATH_FLAGS],[ CXXFLAGS="${OPTIM_FLAGS} ${CXXFLAGS}" AS_CASE([$target], [*i386*|*i686*], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[]], [[#ifdef __SSE__ + return 0; + #else + return 1; + #endif + ]])], [AC_MSG_NOTICE("Adding '-mfpmath=sse' to OPTIM_FLAGS") OPTIM_FLAGS+=" -mfpmath=sse"], + [], # either the flag is not recognized by the compiler or + # SSE is not avail => do nothing + [AC_MSG_NOTICE("If available you may want to add + '-mfpmath=sse' to flags")])] # cross-compilation case []) # not on i386 nor i686 => do nothing CXXFLAGS="${BACKUP_CXXFLAGS}" ]) diff --git a/deps/fflas-ffpack/macros/config-header.m4 b/deps/fflas-ffpack-2.5.0/macros/config-header.m4 similarity index 100% rename from deps/fflas-ffpack/macros/config-header.m4 rename to deps/fflas-ffpack-2.5.0/macros/config-header.m4 diff --git a/deps/fflas-ffpack/macros/debug.m4 b/deps/fflas-ffpack-2.5.0/macros/debug.m4 similarity index 60% rename from deps/fflas-ffpack/macros/debug.m4 rename to deps/fflas-ffpack-2.5.0/macros/debug.m4 index 137933bde..bcafb2115 100644 --- a/deps/fflas-ffpack/macros/debug.m4 +++ b/deps/fflas-ffpack-2.5.0/macros/debug.m4 @@ -69,6 +69,77 @@ CCNAM="" AC_DEFUN([AC_COMPILER_NAME], [ AC_MSG_CHECKING(for family name of compiler) - CCNAM=icc - AC_SUBST(CCNAM) + + dnl CHECKING for various compilers + dnl ICC ? + AC_TRY_RUN( [ + #ifdef __INTEL_COMPILER + int main() { return 0 ; } + #else + not intel + #endif], + [ AC_MSG_RESULT(icc) + CCNAM=icc + AC_SUBST(CCNAM) + ]) + + dnl PATHSCALE > 4 ? + AS_IF([ test -z "${CCNAM}"], [ + AC_TRY_RUN( [ + #ifdef __PATHSCALE__ + int main() { return !(__PATHCC__ >= 4) ; } + #else + not ekopath either. + #endif], + [ CCNAM=eko ]) + ]) + + dnl CLANG >= 3.9 ? + AS_IF([ test -z "${CCNAM}"], [ + AC_TRY_RUN( [ + #ifdef __clang__ + int main() { return !((__clang_major__ >= 4) ||(__clang_major__ ==3 && __clang_minor__ >= 9) ) ; } + #else + not clang3.9 + #endif], [ + CCNAM=clang + AC_SUBST(CCNAM) + AC_MSG_RESULT($CCNAM) ]) + ]) + + dnl 3.1 < CLANG <= 3.8 ? + AS_IF([ test -z "${CCNAM}"], [ + AC_TRY_RUN( [ + #ifdef __clang__ + int main() { return !(__clang_major__ ==3 && __clang_minor__ >=1 && __clang_minor__ <=8) ; } + #else + not clang3.8 + #endif], [ + CCNAM=clang38 + AC_SUBST(CCNAM) + AC_MSG_RESULT($CCNAM) ]) + ]) + + dnl GCC >= 5 ? + AS_IF([ test -z "${CCNAM}"], [ + AC_TRY_RUN( [ + #ifdef __GNUC__ + int main() { return !(__GNUC__ >= 5 ) ; } + #else + not gcc neither. + #endif], + [ CCNAM=gcc ]) + ]) + + dnl other ? + + AS_IF([ test -z "${CCNAM}"], + [ AC_MSG_RESULT(unknown) + CCNAM=unknown + AC_SUBST(CCNAM) + echo + echo " *** unknow compiler. please file a bug " + echo + ]) + ]) diff --git a/deps/fflas-ffpack/macros/fflas-ffpack-blas.m4 b/deps/fflas-ffpack-2.5.0/macros/fflas-ffpack-blas.m4 similarity index 64% rename from deps/fflas-ffpack/macros/fflas-ffpack-blas.m4 rename to deps/fflas-ffpack-2.5.0/macros/fflas-ffpack-blas.m4 index 5407792b3..5022e11fc 100644 --- a/deps/fflas-ffpack/macros/fflas-ffpack-blas.m4 +++ b/deps/fflas-ffpack-2.5.0/macros/fflas-ffpack-blas.m4 @@ -63,10 +63,77 @@ AC_DEFUN([FF_CHECK_USER_BLAS], dnl is there user CBLAS accessible ? AC_MSG_CHECKING(for BLAS) - BLAS_LIBS="-lblastrampoline -lpthread" - blas_found="yes" - is_cblas="yes" - AC_SUBST(BLAS_LIBS) + AC_TRY_RUN([ ${CODE_CBLAS} ],[ + blas_found="yes" + is_cblas="yes" + AC_MSG_RESULT(found CBLAS) + ],[ + dnl No, then checking for Fortran BLAS + AC_TRY_RUN( + [ ${CODE_FBLAS} ], + [ blas_found="yes" + is_cblas="no" + AC_MSG_RESULT(found Fortran BLAS) + ],[ + dnl No, then checking for OpenBLAS + BLAS_LIBS="${BLAS_LIBS} -lopenblas -lpthread" + AS_CASE([$CCNAM], [gcc*], [BLAS_LIBS="${BLAS_LIBS} -lgfortran"]) + LIBS="${BACKUP_LIBS} ${BLAS_LIBS}" + AC_TRY_RUN( + [ ${CODE_CBLAS} ],[ + AC_MSG_RESULT(found OpenBLAS) + blas_found="yes" + is_cblas="yes" + AC_SUBST(BLAS_LIBS) + ],[ + blas_problem="$problem" + AC_MSG_RESULT(problem) + ],[ + blas_found="yes" + is_cblas="yes" + AC_MSG_RESULT(cross compiling) + blas_cross="yes" + AC_SUBST(BLAS_LIBS) + ]) + ],[ + blas_found="yes" + is_cblas="no" + AC_MSG_RESULT(cross compiling) + blas_cross="yes" + ]) + ],[ + blas_found="yes" + AC_MSG_RESULT(cross compiling) + is_cblas="yes" + blas_cross="yes" + ]) + + AS_IF([ test "x$blas_found" = "xyes" ], + [ + BLAS_VENDOR="USER" + AC_SUBST(BLAS_VENDOR) + AC_DEFINE(HAVE_BLAS,1,[Define if BLAS is available]) + AS_IF([test "x$is_cblas" = "xyes" ],[ + AC_DEFINE(HAVE_CBLAS,1,[Define if BLAS is a CBLAS]) + ],[]) + + AS_IF([test "x$blas_cross" = "xyes"], [ + echo "WARNING: You appear to be cross compiling, so there is no way to determine" + echo "whether your BLAS are good. I am assuming it is."],[]) + ], + [ + echo '' + echo '*******************************************************************************' + echo ' ERROR: BLAS not found!' + echo + echo ' BLAS routines are required for this library to compile. Please' + echo ' make sure BLAS are installed and specify its location with the option' + echo ' --with-blas-libs= and if necessary --with-blas-cflags=' + echo ' when running configure.' + echo '*******************************************************************************' + exit 1 + ]) + dnl AM_CONDITIONAL(FFLASFFPACK_HAVE_BLAS, test "x$blas_found" = "xyes") dnl AM_CONDITIONAL(FFLASFFPACK_HAVE_CBLAS, test "x$is_cblas" = "xyes") diff --git a/deps/fflas-ffpack/macros/fflas-ffpack-doc.m4 b/deps/fflas-ffpack-2.5.0/macros/fflas-ffpack-doc.m4 similarity index 100% rename from deps/fflas-ffpack/macros/fflas-ffpack-doc.m4 rename to deps/fflas-ffpack-2.5.0/macros/fflas-ffpack-doc.m4 diff --git a/deps/fflas-ffpack/macros/fflas-ffpack-misc.m4 b/deps/fflas-ffpack-2.5.0/macros/fflas-ffpack-misc.m4 similarity index 100% rename from deps/fflas-ffpack/macros/fflas-ffpack-misc.m4 rename to deps/fflas-ffpack-2.5.0/macros/fflas-ffpack-misc.m4 diff --git a/deps/fflas-ffpack/macros/fflas-ffpack-precompile.m4 b/deps/fflas-ffpack-2.5.0/macros/fflas-ffpack-precompile.m4 similarity index 100% rename from deps/fflas-ffpack/macros/fflas-ffpack-precompile.m4 rename to deps/fflas-ffpack-2.5.0/macros/fflas-ffpack-precompile.m4 diff --git a/deps/fflas-ffpack/macros/givaro-check.m4 b/deps/fflas-ffpack-2.5.0/macros/givaro-check.m4 similarity index 92% rename from deps/fflas-ffpack/macros/givaro-check.m4 rename to deps/fflas-ffpack-2.5.0/macros/givaro-check.m4 index 529163225..1263f0c7b 100644 --- a/deps/fflas-ffpack/macros/givaro-check.m4 +++ b/deps/fflas-ffpack-2.5.0/macros/givaro-check.m4 @@ -80,6 +80,24 @@ if test -r "$GIVARO_HOME/include/givaro/givconfig.h"; then [#include ], [Givaro::Integer a;], [ + AC_TRY_RUN( + [#include + int main () { if (GIVARO_VERSION >= $version_min && GIVARO_VERSION < $version_max) return 0; else return -1; /* old version of Givaro are defined as hexa 0x03yyzz*/ } + ],[ + givaro_found="yes" + break + ],[ + givaro_problem="$problem $GIVARO_HOME" + unset GIVARO_CFLAGS + unset GIVARO_LIBS + ],[ + givaro_found="yes" + givaro_cross="yes" + + break + ]) + ], + [ givaro_found="yes" givaro_checked="$checked $GIVARO_HOME" #unset GIVARO_CFLAGS diff --git a/deps/fflas-ffpack-2.5.0/macros/libtool.m4 b/deps/fflas-ffpack-2.5.0/macros/libtool.m4 new file mode 100644 index 000000000..a6d21ae56 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/macros/libtool.m4 @@ -0,0 +1,8394 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cr} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/deps/fflas-ffpack-2.5.0/macros/ltoptions.m4 b/deps/fflas-ffpack-2.5.0/macros/ltoptions.m4 new file mode 100644 index 000000000..94b082976 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/macros/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/deps/fflas-ffpack-2.5.0/macros/ltsugar.m4 b/deps/fflas-ffpack-2.5.0/macros/ltsugar.m4 new file mode 100644 index 000000000..48bc9344a --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/macros/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/deps/fflas-ffpack-2.5.0/macros/ltversion.m4 b/deps/fflas-ffpack-2.5.0/macros/ltversion.m4 new file mode 100644 index 000000000..fa04b52a3 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/macros/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/deps/fflas-ffpack-2.5.0/macros/lt~obsolete.m4 b/deps/fflas-ffpack-2.5.0/macros/lt~obsolete.m4 new file mode 100644 index 000000000..c6b26f88f --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/macros/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/deps/fflas-ffpack/macros/mkl-check.m4 b/deps/fflas-ffpack-2.5.0/macros/mkl-check.m4 similarity index 100% rename from deps/fflas-ffpack/macros/mkl-check.m4 rename to deps/fflas-ffpack-2.5.0/macros/mkl-check.m4 diff --git a/deps/fflas-ffpack/macros/omp-check.m4 b/deps/fflas-ffpack-2.5.0/macros/omp-check.m4 similarity index 84% rename from deps/fflas-ffpack/macros/omp-check.m4 rename to deps/fflas-ffpack-2.5.0/macros/omp-check.m4 index 0ad3a83b4..0d407e1cd 100644 --- a/deps/fflas-ffpack/macros/omp-check.m4 +++ b/deps/fflas-ffpack-2.5.0/macros/omp-check.m4 @@ -36,21 +36,30 @@ AC_DEFUN([FF_CHECK_OMP], AS_IF([ test "x$avec_omp" != "xno" ], [ BACKUP_CXXFLAGS=${CXXFLAGS} - CXXFLAGS="${BACKUP_CXXFLAGS} ${OPENMP_CXXFLAGS}" - AC_CHECK_HEADER([omp.h], + CXXFLAGS="${BACKUP_CXXFLAGS} ${OMPFLAGS}" + AC_TRY_RUN([ +#include + int main() { + int p = omp_get_num_threads(); + return 0; + } + ], [ omp_found="yes" ], - [ omp_found="no" ] - ) + [ omp_found="no" ], + [ + echo "cross compiling...disabling" + omp_found="no" + ]) AS_IF( [ test "x$omp_found" = "xyes" ], [ AC_DEFINE(USE_OPENMP,1,[Define if OMP is available]) - AC_SUBST(OPENMP_CXXFLAGS) + AC_SUBST(OMPFLAGS) AC_MSG_RESULT(yes) HAVE_OMP=yes ], [ - OPENMP_CXXFLAGS= - AC_SUBST(OPENMP_CXXFLAGS) + OMPFLAGS= + AC_SUBST(OMPFLAGS) AC_MSG_RESULT(no) ] ) diff --git a/deps/fflas-ffpack/tests/Makefile.am b/deps/fflas-ffpack-2.5.0/tests/Makefile.am similarity index 98% rename from deps/fflas-ffpack/tests/Makefile.am rename to deps/fflas-ffpack-2.5.0/tests/Makefile.am index c3c4338e7..e06a4be86 100755 --- a/deps/fflas-ffpack/tests/Makefile.am +++ b/deps/fflas-ffpack-2.5.0/tests/Makefile.am @@ -55,7 +55,6 @@ BASIC_TESTS = \ test-compressQ \ test-lu \ test-quasisep \ - test-sss \ test-pluq-check \ test-fsyrk \ test-fsyr2k \ @@ -115,7 +114,6 @@ test_rpm_SOURCES = test-rpm.C test_lu_SOURCES = test-lu.C test_quasisep_SOURCES = test-quasisep.C -test_sss_SOURCES = test-sss.C test_det_SOURCES = test-det.C test_pluq_check_SOURCES = test-pluq-check.C test_det_check_SOURCES = test-det-check.C diff --git a/deps/fflas-ffpack-2.5.0/tests/Makefile.in b/deps/fflas-ffpack-2.5.0/tests/Makefile.in new file mode 100644 index 000000000..ebfed0ccf --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/tests/Makefile.in @@ -0,0 +1,2214 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +@FFLASFFPACK_PRECOMPILED_TRUE@am__append_1 = $(top_builddir)/fflas-ffpack/interfaces/libs/libfflas.la \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(top_builddir)/fflas-ffpack/interfaces/libs/libffpack.la +EXTRA_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) +subdir = tests +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__EXEEXT_1 = test-fdot$(EXEEXT) test-finit$(EXEEXT) \ + test-fscal$(EXEEXT) test-fadd$(EXEEXT) test-fger$(EXEEXT) \ + test-ftrsv$(EXEEXT) test-ftrtri$(EXEEXT) test-ftrmv$(EXEEXT) \ + test-ftrsm$(EXEEXT) test-ftrstr$(EXEEXT) \ + test-ftrssyr2k$(EXEEXT) test-ftrsm-check$(EXEEXT) \ + test-ftrmm$(EXEEXT) test-fgemm$(EXEEXT) \ + test-fgemm-check$(EXEEXT) test-permutations$(EXEEXT) \ + test-rpm$(EXEEXT) test-compressQ$(EXEEXT) test-lu$(EXEEXT) \ + test-quasisep$(EXEEXT) test-pluq-check$(EXEEXT) \ + test-fsyrk$(EXEEXT) test-fsyr2k$(EXEEXT) test-fsytrf$(EXEEXT) \ + test-invert-check$(EXEEXT) test-rankprofiles$(EXEEXT) \ + test-det$(EXEEXT) test-det-check$(EXEEXT) \ + test-echelon$(EXEEXT) test-charpoly$(EXEEXT) \ + test-charpoly-check$(EXEEXT) test-minpoly$(EXEEXT) \ + test-multifile$(EXEEXT) test-io$(EXEEXT) \ + test-maxdelayeddim$(EXEEXT) test-solve$(EXEEXT) \ + test-fgesv$(EXEEXT) test-simd$(EXEEXT) test-fgemv$(EXEEXT) \ + test-nullspace$(EXEEXT) test-storage-transpose$(EXEEXT) \ + regression-check$(EXEEXT) +@FFLASFFPACK_PRECOMPILED_TRUE@am__EXEEXT_2 = \ +@FFLASFFPACK_PRECOMPILED_TRUE@ test-interfaces-c$(EXEEXT) +am_regression_check_OBJECTS = regression-check.$(OBJEXT) +regression_check_OBJECTS = $(am_regression_check_OBJECTS) +regression_check_LDADD = $(LDADD) +am__DEPENDENCIES_1 = +regression_check_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +am_test_charpoly_OBJECTS = test-charpoly.$(OBJEXT) +test_charpoly_OBJECTS = $(am_test_charpoly_OBJECTS) +test_charpoly_LDADD = $(LDADD) +test_charpoly_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_charpoly_check_OBJECTS = test-charpoly-check.$(OBJEXT) +test_charpoly_check_OBJECTS = $(am_test_charpoly_check_OBJECTS) +test_charpoly_check_LDADD = $(LDADD) +test_charpoly_check_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_compressQ_OBJECTS = test-compressQ.$(OBJEXT) +test_compressQ_OBJECTS = $(am_test_compressQ_OBJECTS) +test_compressQ_LDADD = $(LDADD) +test_compressQ_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_det_OBJECTS = test-det.$(OBJEXT) +test_det_OBJECTS = $(am_test_det_OBJECTS) +test_det_LDADD = $(LDADD) +test_det_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_det_check_OBJECTS = test-det-check.$(OBJEXT) +test_det_check_OBJECTS = $(am_test_det_check_OBJECTS) +test_det_check_LDADD = $(LDADD) +test_det_check_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_echelon_OBJECTS = test-echelon.$(OBJEXT) +test_echelon_OBJECTS = $(am_test_echelon_OBJECTS) +test_echelon_LDADD = $(LDADD) +test_echelon_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fadd_OBJECTS = test-fadd.$(OBJEXT) +test_fadd_OBJECTS = $(am_test_fadd_OBJECTS) +test_fadd_LDADD = $(LDADD) +test_fadd_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fdot_OBJECTS = test-fdot.$(OBJEXT) +test_fdot_OBJECTS = $(am_test_fdot_OBJECTS) +test_fdot_LDADD = $(LDADD) +test_fdot_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fgemm_OBJECTS = test-fgemm.$(OBJEXT) +test_fgemm_OBJECTS = $(am_test_fgemm_OBJECTS) +test_fgemm_LDADD = $(LDADD) +test_fgemm_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fgemm_check_OBJECTS = test-fgemm-check.$(OBJEXT) +test_fgemm_check_OBJECTS = $(am_test_fgemm_check_OBJECTS) +test_fgemm_check_LDADD = $(LDADD) +test_fgemm_check_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fgemv_OBJECTS = test-fgemv.$(OBJEXT) +test_fgemv_OBJECTS = $(am_test_fgemv_OBJECTS) +test_fgemv_LDADD = $(LDADD) +test_fgemv_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fger_OBJECTS = test-fger.$(OBJEXT) +test_fger_OBJECTS = $(am_test_fger_OBJECTS) +test_fger_LDADD = $(LDADD) +test_fger_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fgesv_OBJECTS = test-fgesv.$(OBJEXT) +test_fgesv_OBJECTS = $(am_test_fgesv_OBJECTS) +test_fgesv_LDADD = $(LDADD) +test_fgesv_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_finit_OBJECTS = test-finit.$(OBJEXT) +test_finit_OBJECTS = $(am_test_finit_OBJECTS) +test_finit_LDADD = $(LDADD) +test_finit_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fscal_OBJECTS = test-fscal.$(OBJEXT) +test_fscal_OBJECTS = $(am_test_fscal_OBJECTS) +test_fscal_LDADD = $(LDADD) +test_fscal_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fsyr2k_OBJECTS = test-fsyr2k.$(OBJEXT) +test_fsyr2k_OBJECTS = $(am_test_fsyr2k_OBJECTS) +test_fsyr2k_LDADD = $(LDADD) +test_fsyr2k_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fsyrk_OBJECTS = test-fsyrk.$(OBJEXT) +test_fsyrk_OBJECTS = $(am_test_fsyrk_OBJECTS) +test_fsyrk_LDADD = $(LDADD) +test_fsyrk_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_fsytrf_OBJECTS = test-fsytrf.$(OBJEXT) +test_fsytrf_OBJECTS = $(am_test_fsytrf_OBJECTS) +test_fsytrf_LDADD = $(LDADD) +test_fsytrf_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_ftrmm_OBJECTS = test-ftrmm.$(OBJEXT) +test_ftrmm_OBJECTS = $(am_test_ftrmm_OBJECTS) +test_ftrmm_LDADD = $(LDADD) +test_ftrmm_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_ftrmv_OBJECTS = test-ftrmv.$(OBJEXT) +test_ftrmv_OBJECTS = $(am_test_ftrmv_OBJECTS) +test_ftrmv_LDADD = $(LDADD) +test_ftrmv_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_ftrsm_OBJECTS = test-ftrsm.$(OBJEXT) +test_ftrsm_OBJECTS = $(am_test_ftrsm_OBJECTS) +test_ftrsm_LDADD = $(LDADD) +test_ftrsm_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_ftrsm_check_OBJECTS = test-ftrsm-check.$(OBJEXT) +test_ftrsm_check_OBJECTS = $(am_test_ftrsm_check_OBJECTS) +test_ftrsm_check_LDADD = $(LDADD) +test_ftrsm_check_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_ftrssyr2k_OBJECTS = test-ftrssyr2k.$(OBJEXT) +test_ftrssyr2k_OBJECTS = $(am_test_ftrssyr2k_OBJECTS) +test_ftrssyr2k_LDADD = $(LDADD) +test_ftrssyr2k_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_ftrstr_OBJECTS = test-ftrstr.$(OBJEXT) +test_ftrstr_OBJECTS = $(am_test_ftrstr_OBJECTS) +test_ftrstr_LDADD = $(LDADD) +test_ftrstr_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_ftrsv_OBJECTS = test-ftrsv.$(OBJEXT) +test_ftrsv_OBJECTS = $(am_test_ftrsv_OBJECTS) +test_ftrsv_LDADD = $(LDADD) +test_ftrsv_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_ftrtri_OBJECTS = test-ftrtri.$(OBJEXT) +test_ftrtri_OBJECTS = $(am_test_ftrtri_OBJECTS) +test_ftrtri_LDADD = $(LDADD) +test_ftrtri_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_interfaces_c_OBJECTS = test-interfaces-c.$(OBJEXT) +test_interfaces_c_OBJECTS = $(am_test_interfaces_c_OBJECTS) +@FFLASFFPACK_PRECOMPILED_TRUE@test_interfaces_c_DEPENDENCIES = $(top_builddir)/fflas-ffpack/interfaces/libs/libfflas_c.la \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(top_builddir)/fflas-ffpack/interfaces/libs/libffpack_c.la +am_test_invert_check_OBJECTS = test-invert-check.$(OBJEXT) +test_invert_check_OBJECTS = $(am_test_invert_check_OBJECTS) +test_invert_check_LDADD = $(LDADD) +test_invert_check_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_io_OBJECTS = test-io.$(OBJEXT) +test_io_OBJECTS = $(am_test_io_OBJECTS) +test_io_LDADD = $(LDADD) +test_io_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_lu_OBJECTS = test-lu.$(OBJEXT) +test_lu_OBJECTS = $(am_test_lu_OBJECTS) +test_lu_LDADD = $(LDADD) +test_lu_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_maxdelayeddim_OBJECTS = test-maxdelayeddim.$(OBJEXT) +test_maxdelayeddim_OBJECTS = $(am_test_maxdelayeddim_OBJECTS) +test_maxdelayeddim_LDADD = $(LDADD) +test_maxdelayeddim_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_minpoly_OBJECTS = test-minpoly.$(OBJEXT) +test_minpoly_OBJECTS = $(am_test_minpoly_OBJECTS) +test_minpoly_LDADD = $(LDADD) +test_minpoly_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_multifile_OBJECTS = test-multifile1.$(OBJEXT) \ + test-multifile2.$(OBJEXT) +test_multifile_OBJECTS = $(am_test_multifile_OBJECTS) +test_multifile_LDADD = $(LDADD) +test_multifile_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_nullspace_OBJECTS = test-nullspace.$(OBJEXT) +test_nullspace_OBJECTS = $(am_test_nullspace_OBJECTS) +test_nullspace_LDADD = $(LDADD) +test_nullspace_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_permutations_OBJECTS = test-permutations.$(OBJEXT) +test_permutations_OBJECTS = $(am_test_permutations_OBJECTS) +test_permutations_LDADD = $(LDADD) +test_permutations_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_pluq_check_OBJECTS = test-pluq-check.$(OBJEXT) +test_pluq_check_OBJECTS = $(am_test_pluq_check_OBJECTS) +test_pluq_check_LDADD = $(LDADD) +test_pluq_check_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_quasisep_OBJECTS = test-quasisep.$(OBJEXT) +test_quasisep_OBJECTS = $(am_test_quasisep_OBJECTS) +test_quasisep_LDADD = $(LDADD) +test_quasisep_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_rankprofiles_OBJECTS = test-rankprofiles.$(OBJEXT) +test_rankprofiles_OBJECTS = $(am_test_rankprofiles_OBJECTS) +test_rankprofiles_LDADD = $(LDADD) +test_rankprofiles_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_test_rpm_OBJECTS = test-rpm.$(OBJEXT) +test_rpm_OBJECTS = $(am_test_rpm_OBJECTS) +test_rpm_LDADD = $(LDADD) +test_rpm_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_simd_OBJECTS = test-simd.$(OBJEXT) +test_simd_OBJECTS = $(am_test_simd_OBJECTS) +test_simd_LDADD = $(LDADD) +test_simd_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_solve_OBJECTS = test-solve.$(OBJEXT) +test_solve_OBJECTS = $(am_test_solve_OBJECTS) +test_solve_LDADD = $(LDADD) +test_solve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_test_storage_transpose_OBJECTS = test-storage-transpose.$(OBJEXT) +test_storage_transpose_OBJECTS = $(am_test_storage_transpose_OBJECTS) +test_storage_transpose_LDADD = $(LDADD) +test_storage_transpose_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/regression-check.Po \ + ./$(DEPDIR)/test-charpoly-check.Po \ + ./$(DEPDIR)/test-charpoly.Po ./$(DEPDIR)/test-compressQ.Po \ + ./$(DEPDIR)/test-det-check.Po ./$(DEPDIR)/test-det.Po \ + ./$(DEPDIR)/test-echelon.Po ./$(DEPDIR)/test-fadd.Po \ + ./$(DEPDIR)/test-fdot.Po ./$(DEPDIR)/test-fgemm-check.Po \ + ./$(DEPDIR)/test-fgemm.Po ./$(DEPDIR)/test-fgemv.Po \ + ./$(DEPDIR)/test-fger.Po ./$(DEPDIR)/test-fgesv.Po \ + ./$(DEPDIR)/test-finit.Po ./$(DEPDIR)/test-fscal.Po \ + ./$(DEPDIR)/test-fsyr2k.Po ./$(DEPDIR)/test-fsyrk.Po \ + ./$(DEPDIR)/test-fsytrf.Po ./$(DEPDIR)/test-ftrmm.Po \ + ./$(DEPDIR)/test-ftrmv.Po ./$(DEPDIR)/test-ftrsm-check.Po \ + ./$(DEPDIR)/test-ftrsm.Po ./$(DEPDIR)/test-ftrssyr2k.Po \ + ./$(DEPDIR)/test-ftrstr.Po ./$(DEPDIR)/test-ftrsv.Po \ + ./$(DEPDIR)/test-ftrtri.Po ./$(DEPDIR)/test-interfaces-c.Po \ + ./$(DEPDIR)/test-invert-check.Po ./$(DEPDIR)/test-io.Po \ + ./$(DEPDIR)/test-lu.Po ./$(DEPDIR)/test-maxdelayeddim.Po \ + ./$(DEPDIR)/test-minpoly.Po ./$(DEPDIR)/test-multifile1.Po \ + ./$(DEPDIR)/test-multifile2.Po ./$(DEPDIR)/test-nullspace.Po \ + ./$(DEPDIR)/test-permutations.Po \ + ./$(DEPDIR)/test-pluq-check.Po ./$(DEPDIR)/test-quasisep.Po \ + ./$(DEPDIR)/test-rankprofiles.Po ./$(DEPDIR)/test-rpm.Po \ + ./$(DEPDIR)/test-simd.Po ./$(DEPDIR)/test-solve.Po \ + ./$(DEPDIR)/test-storage-transpose.Po +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(regression_check_SOURCES) $(test_charpoly_SOURCES) \ + $(test_charpoly_check_SOURCES) $(test_compressQ_SOURCES) \ + $(test_det_SOURCES) $(test_det_check_SOURCES) \ + $(test_echelon_SOURCES) $(test_fadd_SOURCES) \ + $(test_fdot_SOURCES) $(test_fgemm_SOURCES) \ + $(test_fgemm_check_SOURCES) $(test_fgemv_SOURCES) \ + $(test_fger_SOURCES) $(test_fgesv_SOURCES) \ + $(test_finit_SOURCES) $(test_fscal_SOURCES) \ + $(test_fsyr2k_SOURCES) $(test_fsyrk_SOURCES) \ + $(test_fsytrf_SOURCES) $(test_ftrmm_SOURCES) \ + $(test_ftrmv_SOURCES) $(test_ftrsm_SOURCES) \ + $(test_ftrsm_check_SOURCES) $(test_ftrssyr2k_SOURCES) \ + $(test_ftrstr_SOURCES) $(test_ftrsv_SOURCES) \ + $(test_ftrtri_SOURCES) $(test_interfaces_c_SOURCES) \ + $(test_invert_check_SOURCES) $(test_io_SOURCES) \ + $(test_lu_SOURCES) $(test_maxdelayeddim_SOURCES) \ + $(test_minpoly_SOURCES) $(test_multifile_SOURCES) \ + $(test_nullspace_SOURCES) $(test_permutations_SOURCES) \ + $(test_pluq_check_SOURCES) $(test_quasisep_SOURCES) \ + $(test_rankprofiles_SOURCES) $(test_rpm_SOURCES) \ + $(test_simd_SOURCES) $(test_solve_SOURCES) \ + $(test_storage_transpose_SOURCES) +DIST_SOURCES = $(regression_check_SOURCES) $(test_charpoly_SOURCES) \ + $(test_charpoly_check_SOURCES) $(test_compressQ_SOURCES) \ + $(test_det_SOURCES) $(test_det_check_SOURCES) \ + $(test_echelon_SOURCES) $(test_fadd_SOURCES) \ + $(test_fdot_SOURCES) $(test_fgemm_SOURCES) \ + $(test_fgemm_check_SOURCES) $(test_fgemv_SOURCES) \ + $(test_fger_SOURCES) $(test_fgesv_SOURCES) \ + $(test_finit_SOURCES) $(test_fscal_SOURCES) \ + $(test_fsyr2k_SOURCES) $(test_fsyrk_SOURCES) \ + $(test_fsytrf_SOURCES) $(test_ftrmm_SOURCES) \ + $(test_ftrmv_SOURCES) $(test_ftrsm_SOURCES) \ + $(test_ftrsm_check_SOURCES) $(test_ftrssyr2k_SOURCES) \ + $(test_ftrstr_SOURCES) $(test_ftrsv_SOURCES) \ + $(test_ftrtri_SOURCES) $(test_interfaces_c_SOURCES) \ + $(test_invert_check_SOURCES) $(test_io_SOURCES) \ + $(test_lu_SOURCES) $(test_maxdelayeddim_SOURCES) \ + $(test_minpoly_SOURCES) $(test_multifile_SOURCES) \ + $(test_nullspace_SOURCES) $(test_permutations_SOURCES) \ + $(test_pluq_check_SOURCES) $(test_quasisep_SOURCES) \ + $(test_rankprofiles_SOURCES) $(test_rpm_SOURCES) \ + $(test_simd_SOURCES) $(test_solve_SOURCES) \ + $(test_storage_transpose_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + check recheck distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp \ + $(top_srcdir)/build-aux/test-driver +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = data +AM_CXXFLAGS = $(FFLASFFPACK_CXXFLAGS) $(GIVARO_CFLAGS) $(BLAS_CFLAGS) $(PARFLAGS) $(PRECOMPILE_FLAGS) -g +AM_CPPFLAGS = -I$(top_srcdir) +LDADD = $(GIVARO_LIBS) $(BLAS_LIBS) $(PARLIBS) $(am__append_1) +PERFPUBLISHERFILE = tests-report.xml +BASIC_TESTS = \ + test-fdot \ + test-finit \ + test-fscal \ + test-fadd \ + test-fger \ + test-ftrsv \ + test-ftrtri \ + test-ftrmv \ + test-ftrsm \ + test-ftrstr \ + test-ftrssyr2k \ + test-ftrsm-check \ + test-ftrmm \ + test-fgemm \ + test-fgemm-check \ + test-permutations \ + test-rpm \ + test-compressQ \ + test-lu \ + test-quasisep \ + test-pluq-check \ + test-fsyrk \ + test-fsyr2k \ + test-fsytrf \ + test-invert-check \ + test-rankprofiles \ + test-det \ + test-det-check \ + test-echelon \ + test-charpoly \ + test-charpoly-check \ + test-minpoly \ + test-multifile \ + test-io \ + test-maxdelayeddim \ + test-solve \ + test-fgesv \ + test-simd \ + test-fgemv \ + test-nullspace \ + test-storage-transpose \ + regression-check + +@FFLASFFPACK_PRECOMPILED_TRUE@INTERFACE_TESTS = test-interfaces-c +#test_interfaces_c_CFLAGS = $(AM_CXXFLAGS) +@FFLASFFPACK_PRECOMPILED_TRUE@test_interfaces_c_LDADD = \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(top_builddir)/fflas-ffpack/interfaces/libs/libfflas_c.la \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(top_builddir)/fflas-ffpack/interfaces/libs/libffpack_c.la \ +@FFLASFFPACK_PRECOMPILED_TRUE@ -lm -lstdc++ + +NOT_A_TEST = \ + test-krylov-elim \ + test-fullranksubmatrix \ + test-frobenius \ + test-invert \ + test-sparse + +INFINITE_TEST = \ + testeur_fgemm \ + testeur_ftrsm \ + testeur_lqup + +CLEANFILES = \ + $(NOT_A_TEST) $(EXTRA_PROGRAMS) $(PERFPUBLISHERFILE) + +TESTS = $(EXTRA_PROGRAMS) +test_compressQ_SOURCES = test-compressQ.C +test_permutations_SOURCES = test-permutations.C +test_rpm_SOURCES = test-rpm.C +test_lu_SOURCES = test-lu.C +test_quasisep_SOURCES = test-quasisep.C +test_det_SOURCES = test-det.C +test_pluq_check_SOURCES = test-pluq-check.C +test_det_check_SOURCES = test-det-check.C +test_fgemm_check_SOURCES = test-fgemm-check.C +test_ftrsm_check_SOURCES = test-ftrsm-check.C +test_invert_check_SOURCES = test-invert-check.C +test_charpoly_check_SOURCES = test-charpoly-check.C +test_minpoly_SOURCES = test-minpoly.C +test_echelon_SOURCES = test-echelon.C +test_rankprofiles_SOURCES = test-rankprofiles.C +test_fgemm_SOURCES = test-fgemm.C +test_fger_SOURCES = test-fger.C +test_multifile_SOURCES = test-multifile1.C test-multifile2.C +test_io_SOURCES = test-io.C +# test_fgemm_SOURCES = test-fgemm.C +test_charpoly_SOURCES = test-charpoly.C +# test_ftrmm_SOURCES = test-ftrmm.C +# testeur_fgemm_SOURCES = testeur_fgemm.C +test_ftrsm_SOURCES = test-ftrsm.C +test_ftrstr_SOURCES = test-ftrstr.C +test_ftrssyr2k_SOURCES = test-ftrssyr2k.C +test_ftrmm_SOURCES = test-ftrmm.C +test_ftrsv_SOURCES = test-ftrsv.C +test_ftrmv_SOURCES = test-ftrmv.C +test_fsyrk_SOURCES = test-fsyrk.C +test_fsyr2k_SOURCES = test-fsyr2k.C +test_fsytrf_SOURCES = test-fsytrf.C +# test_redechelon_SOURCES = test-redechelon.C +# testeur_ftrsm_SOURCES = testeur_ftrsm.C +test_ftrtri_SOURCES = test-ftrtri.C +# testeur_lqup_SOURCES = testeur_lqup.C +# test_fullranksubmatrix_SOURCES = test-fullranksubmatrix.C +# test_invert_SOURCES = test-invert.C +# test_krylov_elim_SOURCES = test-krylov-elim.C +test_fgesv_SOURCES = test-fgesv.C +# test_frobenius_SOURCES = test-frobenius.C +test_nullspace_SOURCES = test-nullspace.C +test_fdot_SOURCES = test-fdot.C +test_fadd_SOURCES = test-fadd.C +test_fscal_SOURCES = test-fscal.C +test_finit_SOURCES = test-finit.C +#test_sparse_SOURCES = test-sparse.C +test_interfaces_c_SOURCES = test-interfaces-c.c +test_maxdelayeddim_SOURCES = test-maxdelayeddim.C +# test_fspmv_SOURCES = test-fspmv.C +test_storage_transpose_SOURCES = test-storage-transpose.C +regression_check_SOURCES = regression-check.C +test_solve_SOURCES = test-solve.C +test_simd_SOURCES = test-simd.C +test_fgemv_SOURCES = test-fgemv.C + +# for compilation of new tests +FFLASFFPACK_BIN = @bindir@ +new_examp_comp = $(CXX) $(AM_CXXFLAGS) ${CXXFLAGS} ${INCLUDES} $(AM_CPPFLAGS) $^ -o $@ $(LDFLAGS) $(LDADD) $(LOADLIBES) $(LIBS) +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .C .c .lo .log .o .obj .test .test$(EXEEXT) .trs +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +regression-check$(EXEEXT): $(regression_check_OBJECTS) $(regression_check_DEPENDENCIES) $(EXTRA_regression_check_DEPENDENCIES) + @rm -f regression-check$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(regression_check_OBJECTS) $(regression_check_LDADD) $(LIBS) + +test-charpoly$(EXEEXT): $(test_charpoly_OBJECTS) $(test_charpoly_DEPENDENCIES) $(EXTRA_test_charpoly_DEPENDENCIES) + @rm -f test-charpoly$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_charpoly_OBJECTS) $(test_charpoly_LDADD) $(LIBS) + +test-charpoly-check$(EXEEXT): $(test_charpoly_check_OBJECTS) $(test_charpoly_check_DEPENDENCIES) $(EXTRA_test_charpoly_check_DEPENDENCIES) + @rm -f test-charpoly-check$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_charpoly_check_OBJECTS) $(test_charpoly_check_LDADD) $(LIBS) + +test-compressQ$(EXEEXT): $(test_compressQ_OBJECTS) $(test_compressQ_DEPENDENCIES) $(EXTRA_test_compressQ_DEPENDENCIES) + @rm -f test-compressQ$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_compressQ_OBJECTS) $(test_compressQ_LDADD) $(LIBS) + +test-det$(EXEEXT): $(test_det_OBJECTS) $(test_det_DEPENDENCIES) $(EXTRA_test_det_DEPENDENCIES) + @rm -f test-det$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_det_OBJECTS) $(test_det_LDADD) $(LIBS) + +test-det-check$(EXEEXT): $(test_det_check_OBJECTS) $(test_det_check_DEPENDENCIES) $(EXTRA_test_det_check_DEPENDENCIES) + @rm -f test-det-check$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_det_check_OBJECTS) $(test_det_check_LDADD) $(LIBS) + +test-echelon$(EXEEXT): $(test_echelon_OBJECTS) $(test_echelon_DEPENDENCIES) $(EXTRA_test_echelon_DEPENDENCIES) + @rm -f test-echelon$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_echelon_OBJECTS) $(test_echelon_LDADD) $(LIBS) + +test-fadd$(EXEEXT): $(test_fadd_OBJECTS) $(test_fadd_DEPENDENCIES) $(EXTRA_test_fadd_DEPENDENCIES) + @rm -f test-fadd$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fadd_OBJECTS) $(test_fadd_LDADD) $(LIBS) + +test-fdot$(EXEEXT): $(test_fdot_OBJECTS) $(test_fdot_DEPENDENCIES) $(EXTRA_test_fdot_DEPENDENCIES) + @rm -f test-fdot$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fdot_OBJECTS) $(test_fdot_LDADD) $(LIBS) + +test-fgemm$(EXEEXT): $(test_fgemm_OBJECTS) $(test_fgemm_DEPENDENCIES) $(EXTRA_test_fgemm_DEPENDENCIES) + @rm -f test-fgemm$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fgemm_OBJECTS) $(test_fgemm_LDADD) $(LIBS) + +test-fgemm-check$(EXEEXT): $(test_fgemm_check_OBJECTS) $(test_fgemm_check_DEPENDENCIES) $(EXTRA_test_fgemm_check_DEPENDENCIES) + @rm -f test-fgemm-check$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fgemm_check_OBJECTS) $(test_fgemm_check_LDADD) $(LIBS) + +test-fgemv$(EXEEXT): $(test_fgemv_OBJECTS) $(test_fgemv_DEPENDENCIES) $(EXTRA_test_fgemv_DEPENDENCIES) + @rm -f test-fgemv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fgemv_OBJECTS) $(test_fgemv_LDADD) $(LIBS) + +test-fger$(EXEEXT): $(test_fger_OBJECTS) $(test_fger_DEPENDENCIES) $(EXTRA_test_fger_DEPENDENCIES) + @rm -f test-fger$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fger_OBJECTS) $(test_fger_LDADD) $(LIBS) + +test-fgesv$(EXEEXT): $(test_fgesv_OBJECTS) $(test_fgesv_DEPENDENCIES) $(EXTRA_test_fgesv_DEPENDENCIES) + @rm -f test-fgesv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fgesv_OBJECTS) $(test_fgesv_LDADD) $(LIBS) + +test-finit$(EXEEXT): $(test_finit_OBJECTS) $(test_finit_DEPENDENCIES) $(EXTRA_test_finit_DEPENDENCIES) + @rm -f test-finit$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_finit_OBJECTS) $(test_finit_LDADD) $(LIBS) + +test-fscal$(EXEEXT): $(test_fscal_OBJECTS) $(test_fscal_DEPENDENCIES) $(EXTRA_test_fscal_DEPENDENCIES) + @rm -f test-fscal$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fscal_OBJECTS) $(test_fscal_LDADD) $(LIBS) + +test-fsyr2k$(EXEEXT): $(test_fsyr2k_OBJECTS) $(test_fsyr2k_DEPENDENCIES) $(EXTRA_test_fsyr2k_DEPENDENCIES) + @rm -f test-fsyr2k$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fsyr2k_OBJECTS) $(test_fsyr2k_LDADD) $(LIBS) + +test-fsyrk$(EXEEXT): $(test_fsyrk_OBJECTS) $(test_fsyrk_DEPENDENCIES) $(EXTRA_test_fsyrk_DEPENDENCIES) + @rm -f test-fsyrk$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fsyrk_OBJECTS) $(test_fsyrk_LDADD) $(LIBS) + +test-fsytrf$(EXEEXT): $(test_fsytrf_OBJECTS) $(test_fsytrf_DEPENDENCIES) $(EXTRA_test_fsytrf_DEPENDENCIES) + @rm -f test-fsytrf$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_fsytrf_OBJECTS) $(test_fsytrf_LDADD) $(LIBS) + +test-ftrmm$(EXEEXT): $(test_ftrmm_OBJECTS) $(test_ftrmm_DEPENDENCIES) $(EXTRA_test_ftrmm_DEPENDENCIES) + @rm -f test-ftrmm$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_ftrmm_OBJECTS) $(test_ftrmm_LDADD) $(LIBS) + +test-ftrmv$(EXEEXT): $(test_ftrmv_OBJECTS) $(test_ftrmv_DEPENDENCIES) $(EXTRA_test_ftrmv_DEPENDENCIES) + @rm -f test-ftrmv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_ftrmv_OBJECTS) $(test_ftrmv_LDADD) $(LIBS) + +test-ftrsm$(EXEEXT): $(test_ftrsm_OBJECTS) $(test_ftrsm_DEPENDENCIES) $(EXTRA_test_ftrsm_DEPENDENCIES) + @rm -f test-ftrsm$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_ftrsm_OBJECTS) $(test_ftrsm_LDADD) $(LIBS) + +test-ftrsm-check$(EXEEXT): $(test_ftrsm_check_OBJECTS) $(test_ftrsm_check_DEPENDENCIES) $(EXTRA_test_ftrsm_check_DEPENDENCIES) + @rm -f test-ftrsm-check$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_ftrsm_check_OBJECTS) $(test_ftrsm_check_LDADD) $(LIBS) + +test-ftrssyr2k$(EXEEXT): $(test_ftrssyr2k_OBJECTS) $(test_ftrssyr2k_DEPENDENCIES) $(EXTRA_test_ftrssyr2k_DEPENDENCIES) + @rm -f test-ftrssyr2k$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_ftrssyr2k_OBJECTS) $(test_ftrssyr2k_LDADD) $(LIBS) + +test-ftrstr$(EXEEXT): $(test_ftrstr_OBJECTS) $(test_ftrstr_DEPENDENCIES) $(EXTRA_test_ftrstr_DEPENDENCIES) + @rm -f test-ftrstr$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_ftrstr_OBJECTS) $(test_ftrstr_LDADD) $(LIBS) + +test-ftrsv$(EXEEXT): $(test_ftrsv_OBJECTS) $(test_ftrsv_DEPENDENCIES) $(EXTRA_test_ftrsv_DEPENDENCIES) + @rm -f test-ftrsv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_ftrsv_OBJECTS) $(test_ftrsv_LDADD) $(LIBS) + +test-ftrtri$(EXEEXT): $(test_ftrtri_OBJECTS) $(test_ftrtri_DEPENDENCIES) $(EXTRA_test_ftrtri_DEPENDENCIES) + @rm -f test-ftrtri$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_ftrtri_OBJECTS) $(test_ftrtri_LDADD) $(LIBS) + +test-interfaces-c$(EXEEXT): $(test_interfaces_c_OBJECTS) $(test_interfaces_c_DEPENDENCIES) $(EXTRA_test_interfaces_c_DEPENDENCIES) + @rm -f test-interfaces-c$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_interfaces_c_OBJECTS) $(test_interfaces_c_LDADD) $(LIBS) + +test-invert-check$(EXEEXT): $(test_invert_check_OBJECTS) $(test_invert_check_DEPENDENCIES) $(EXTRA_test_invert_check_DEPENDENCIES) + @rm -f test-invert-check$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_invert_check_OBJECTS) $(test_invert_check_LDADD) $(LIBS) + +test-io$(EXEEXT): $(test_io_OBJECTS) $(test_io_DEPENDENCIES) $(EXTRA_test_io_DEPENDENCIES) + @rm -f test-io$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_io_OBJECTS) $(test_io_LDADD) $(LIBS) + +test-lu$(EXEEXT): $(test_lu_OBJECTS) $(test_lu_DEPENDENCIES) $(EXTRA_test_lu_DEPENDENCIES) + @rm -f test-lu$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_lu_OBJECTS) $(test_lu_LDADD) $(LIBS) + +test-maxdelayeddim$(EXEEXT): $(test_maxdelayeddim_OBJECTS) $(test_maxdelayeddim_DEPENDENCIES) $(EXTRA_test_maxdelayeddim_DEPENDENCIES) + @rm -f test-maxdelayeddim$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_maxdelayeddim_OBJECTS) $(test_maxdelayeddim_LDADD) $(LIBS) + +test-minpoly$(EXEEXT): $(test_minpoly_OBJECTS) $(test_minpoly_DEPENDENCIES) $(EXTRA_test_minpoly_DEPENDENCIES) + @rm -f test-minpoly$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_minpoly_OBJECTS) $(test_minpoly_LDADD) $(LIBS) + +test-multifile$(EXEEXT): $(test_multifile_OBJECTS) $(test_multifile_DEPENDENCIES) $(EXTRA_test_multifile_DEPENDENCIES) + @rm -f test-multifile$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_multifile_OBJECTS) $(test_multifile_LDADD) $(LIBS) + +test-nullspace$(EXEEXT): $(test_nullspace_OBJECTS) $(test_nullspace_DEPENDENCIES) $(EXTRA_test_nullspace_DEPENDENCIES) + @rm -f test-nullspace$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_nullspace_OBJECTS) $(test_nullspace_LDADD) $(LIBS) + +test-permutations$(EXEEXT): $(test_permutations_OBJECTS) $(test_permutations_DEPENDENCIES) $(EXTRA_test_permutations_DEPENDENCIES) + @rm -f test-permutations$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_permutations_OBJECTS) $(test_permutations_LDADD) $(LIBS) + +test-pluq-check$(EXEEXT): $(test_pluq_check_OBJECTS) $(test_pluq_check_DEPENDENCIES) $(EXTRA_test_pluq_check_DEPENDENCIES) + @rm -f test-pluq-check$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_pluq_check_OBJECTS) $(test_pluq_check_LDADD) $(LIBS) + +test-quasisep$(EXEEXT): $(test_quasisep_OBJECTS) $(test_quasisep_DEPENDENCIES) $(EXTRA_test_quasisep_DEPENDENCIES) + @rm -f test-quasisep$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_quasisep_OBJECTS) $(test_quasisep_LDADD) $(LIBS) + +test-rankprofiles$(EXEEXT): $(test_rankprofiles_OBJECTS) $(test_rankprofiles_DEPENDENCIES) $(EXTRA_test_rankprofiles_DEPENDENCIES) + @rm -f test-rankprofiles$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_rankprofiles_OBJECTS) $(test_rankprofiles_LDADD) $(LIBS) + +test-rpm$(EXEEXT): $(test_rpm_OBJECTS) $(test_rpm_DEPENDENCIES) $(EXTRA_test_rpm_DEPENDENCIES) + @rm -f test-rpm$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_rpm_OBJECTS) $(test_rpm_LDADD) $(LIBS) + +test-simd$(EXEEXT): $(test_simd_OBJECTS) $(test_simd_DEPENDENCIES) $(EXTRA_test_simd_DEPENDENCIES) + @rm -f test-simd$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_simd_OBJECTS) $(test_simd_LDADD) $(LIBS) + +test-solve$(EXEEXT): $(test_solve_OBJECTS) $(test_solve_DEPENDENCIES) $(EXTRA_test_solve_DEPENDENCIES) + @rm -f test-solve$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_solve_OBJECTS) $(test_solve_LDADD) $(LIBS) + +test-storage-transpose$(EXEEXT): $(test_storage_transpose_OBJECTS) $(test_storage_transpose_DEPENDENCIES) $(EXTRA_test_storage_transpose_DEPENDENCIES) + @rm -f test-storage-transpose$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(test_storage_transpose_OBJECTS) $(test_storage_transpose_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regression-check.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-charpoly-check.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-charpoly.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-compressQ.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-det-check.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-det.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-echelon.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fadd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fdot.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fgemm-check.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fgemm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fgemv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fger.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fgesv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-finit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fscal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fsyr2k.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fsyrk.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fsytrf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftrmm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftrmv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftrsm-check.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftrsm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftrssyr2k.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftrstr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftrsv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftrtri.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-interfaces-c.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-invert-check.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-io.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-lu.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-maxdelayeddim.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-minpoly.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-multifile1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-multifile2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nullspace.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-permutations.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pluq-check.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-quasisep.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-rankprofiles.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-rpm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-simd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-solve.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-storage-transpose.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.C.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.C.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.C.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ + fi; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + elif test -n "$$redo_logs"; then \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ + else \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ + fi; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ + else \ + color_start= color_end=; \ + fi; \ + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test-fdot.log: test-fdot$(EXEEXT) + @p='test-fdot$(EXEEXT)'; \ + b='test-fdot'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-finit.log: test-finit$(EXEEXT) + @p='test-finit$(EXEEXT)'; \ + b='test-finit'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fscal.log: test-fscal$(EXEEXT) + @p='test-fscal$(EXEEXT)'; \ + b='test-fscal'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fadd.log: test-fadd$(EXEEXT) + @p='test-fadd$(EXEEXT)'; \ + b='test-fadd'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fger.log: test-fger$(EXEEXT) + @p='test-fger$(EXEEXT)'; \ + b='test-fger'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-ftrsv.log: test-ftrsv$(EXEEXT) + @p='test-ftrsv$(EXEEXT)'; \ + b='test-ftrsv'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-ftrtri.log: test-ftrtri$(EXEEXT) + @p='test-ftrtri$(EXEEXT)'; \ + b='test-ftrtri'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-ftrmv.log: test-ftrmv$(EXEEXT) + @p='test-ftrmv$(EXEEXT)'; \ + b='test-ftrmv'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-ftrsm.log: test-ftrsm$(EXEEXT) + @p='test-ftrsm$(EXEEXT)'; \ + b='test-ftrsm'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-ftrstr.log: test-ftrstr$(EXEEXT) + @p='test-ftrstr$(EXEEXT)'; \ + b='test-ftrstr'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-ftrssyr2k.log: test-ftrssyr2k$(EXEEXT) + @p='test-ftrssyr2k$(EXEEXT)'; \ + b='test-ftrssyr2k'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-ftrsm-check.log: test-ftrsm-check$(EXEEXT) + @p='test-ftrsm-check$(EXEEXT)'; \ + b='test-ftrsm-check'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-ftrmm.log: test-ftrmm$(EXEEXT) + @p='test-ftrmm$(EXEEXT)'; \ + b='test-ftrmm'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fgemm.log: test-fgemm$(EXEEXT) + @p='test-fgemm$(EXEEXT)'; \ + b='test-fgemm'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fgemm-check.log: test-fgemm-check$(EXEEXT) + @p='test-fgemm-check$(EXEEXT)'; \ + b='test-fgemm-check'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-permutations.log: test-permutations$(EXEEXT) + @p='test-permutations$(EXEEXT)'; \ + b='test-permutations'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-rpm.log: test-rpm$(EXEEXT) + @p='test-rpm$(EXEEXT)'; \ + b='test-rpm'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-compressQ.log: test-compressQ$(EXEEXT) + @p='test-compressQ$(EXEEXT)'; \ + b='test-compressQ'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-lu.log: test-lu$(EXEEXT) + @p='test-lu$(EXEEXT)'; \ + b='test-lu'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-quasisep.log: test-quasisep$(EXEEXT) + @p='test-quasisep$(EXEEXT)'; \ + b='test-quasisep'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-pluq-check.log: test-pluq-check$(EXEEXT) + @p='test-pluq-check$(EXEEXT)'; \ + b='test-pluq-check'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fsyrk.log: test-fsyrk$(EXEEXT) + @p='test-fsyrk$(EXEEXT)'; \ + b='test-fsyrk'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fsyr2k.log: test-fsyr2k$(EXEEXT) + @p='test-fsyr2k$(EXEEXT)'; \ + b='test-fsyr2k'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fsytrf.log: test-fsytrf$(EXEEXT) + @p='test-fsytrf$(EXEEXT)'; \ + b='test-fsytrf'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-invert-check.log: test-invert-check$(EXEEXT) + @p='test-invert-check$(EXEEXT)'; \ + b='test-invert-check'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-rankprofiles.log: test-rankprofiles$(EXEEXT) + @p='test-rankprofiles$(EXEEXT)'; \ + b='test-rankprofiles'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-det.log: test-det$(EXEEXT) + @p='test-det$(EXEEXT)'; \ + b='test-det'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-det-check.log: test-det-check$(EXEEXT) + @p='test-det-check$(EXEEXT)'; \ + b='test-det-check'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-echelon.log: test-echelon$(EXEEXT) + @p='test-echelon$(EXEEXT)'; \ + b='test-echelon'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-charpoly.log: test-charpoly$(EXEEXT) + @p='test-charpoly$(EXEEXT)'; \ + b='test-charpoly'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-charpoly-check.log: test-charpoly-check$(EXEEXT) + @p='test-charpoly-check$(EXEEXT)'; \ + b='test-charpoly-check'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-minpoly.log: test-minpoly$(EXEEXT) + @p='test-minpoly$(EXEEXT)'; \ + b='test-minpoly'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-multifile.log: test-multifile$(EXEEXT) + @p='test-multifile$(EXEEXT)'; \ + b='test-multifile'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-io.log: test-io$(EXEEXT) + @p='test-io$(EXEEXT)'; \ + b='test-io'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-maxdelayeddim.log: test-maxdelayeddim$(EXEEXT) + @p='test-maxdelayeddim$(EXEEXT)'; \ + b='test-maxdelayeddim'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-solve.log: test-solve$(EXEEXT) + @p='test-solve$(EXEEXT)'; \ + b='test-solve'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fgesv.log: test-fgesv$(EXEEXT) + @p='test-fgesv$(EXEEXT)'; \ + b='test-fgesv'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-simd.log: test-simd$(EXEEXT) + @p='test-simd$(EXEEXT)'; \ + b='test-simd'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-fgemv.log: test-fgemv$(EXEEXT) + @p='test-fgemv$(EXEEXT)'; \ + b='test-fgemv'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-nullspace.log: test-nullspace$(EXEEXT) + @p='test-nullspace$(EXEEXT)'; \ + b='test-nullspace'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-storage-transpose.log: test-storage-transpose$(EXEEXT) + @p='test-storage-transpose$(EXEEXT)'; \ + b='test-storage-transpose'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +regression-check.log: regression-check$(EXEEXT) + @p='regression-check$(EXEEXT)'; \ + b='regression-check'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-interfaces-c.log: test-interfaces-c$(EXEEXT) + @p='test-interfaces-c$(EXEEXT)'; \ + b='test-interfaces-c'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f ./$(DEPDIR)/regression-check.Po + -rm -f ./$(DEPDIR)/test-charpoly-check.Po + -rm -f ./$(DEPDIR)/test-charpoly.Po + -rm -f ./$(DEPDIR)/test-compressQ.Po + -rm -f ./$(DEPDIR)/test-det-check.Po + -rm -f ./$(DEPDIR)/test-det.Po + -rm -f ./$(DEPDIR)/test-echelon.Po + -rm -f ./$(DEPDIR)/test-fadd.Po + -rm -f ./$(DEPDIR)/test-fdot.Po + -rm -f ./$(DEPDIR)/test-fgemm-check.Po + -rm -f ./$(DEPDIR)/test-fgemm.Po + -rm -f ./$(DEPDIR)/test-fgemv.Po + -rm -f ./$(DEPDIR)/test-fger.Po + -rm -f ./$(DEPDIR)/test-fgesv.Po + -rm -f ./$(DEPDIR)/test-finit.Po + -rm -f ./$(DEPDIR)/test-fscal.Po + -rm -f ./$(DEPDIR)/test-fsyr2k.Po + -rm -f ./$(DEPDIR)/test-fsyrk.Po + -rm -f ./$(DEPDIR)/test-fsytrf.Po + -rm -f ./$(DEPDIR)/test-ftrmm.Po + -rm -f ./$(DEPDIR)/test-ftrmv.Po + -rm -f ./$(DEPDIR)/test-ftrsm-check.Po + -rm -f ./$(DEPDIR)/test-ftrsm.Po + -rm -f ./$(DEPDIR)/test-ftrssyr2k.Po + -rm -f ./$(DEPDIR)/test-ftrstr.Po + -rm -f ./$(DEPDIR)/test-ftrsv.Po + -rm -f ./$(DEPDIR)/test-ftrtri.Po + -rm -f ./$(DEPDIR)/test-interfaces-c.Po + -rm -f ./$(DEPDIR)/test-invert-check.Po + -rm -f ./$(DEPDIR)/test-io.Po + -rm -f ./$(DEPDIR)/test-lu.Po + -rm -f ./$(DEPDIR)/test-maxdelayeddim.Po + -rm -f ./$(DEPDIR)/test-minpoly.Po + -rm -f ./$(DEPDIR)/test-multifile1.Po + -rm -f ./$(DEPDIR)/test-multifile2.Po + -rm -f ./$(DEPDIR)/test-nullspace.Po + -rm -f ./$(DEPDIR)/test-permutations.Po + -rm -f ./$(DEPDIR)/test-pluq-check.Po + -rm -f ./$(DEPDIR)/test-quasisep.Po + -rm -f ./$(DEPDIR)/test-rankprofiles.Po + -rm -f ./$(DEPDIR)/test-rpm.Po + -rm -f ./$(DEPDIR)/test-simd.Po + -rm -f ./$(DEPDIR)/test-solve.Po + -rm -f ./$(DEPDIR)/test-storage-transpose.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f ./$(DEPDIR)/regression-check.Po + -rm -f ./$(DEPDIR)/test-charpoly-check.Po + -rm -f ./$(DEPDIR)/test-charpoly.Po + -rm -f ./$(DEPDIR)/test-compressQ.Po + -rm -f ./$(DEPDIR)/test-det-check.Po + -rm -f ./$(DEPDIR)/test-det.Po + -rm -f ./$(DEPDIR)/test-echelon.Po + -rm -f ./$(DEPDIR)/test-fadd.Po + -rm -f ./$(DEPDIR)/test-fdot.Po + -rm -f ./$(DEPDIR)/test-fgemm-check.Po + -rm -f ./$(DEPDIR)/test-fgemm.Po + -rm -f ./$(DEPDIR)/test-fgemv.Po + -rm -f ./$(DEPDIR)/test-fger.Po + -rm -f ./$(DEPDIR)/test-fgesv.Po + -rm -f ./$(DEPDIR)/test-finit.Po + -rm -f ./$(DEPDIR)/test-fscal.Po + -rm -f ./$(DEPDIR)/test-fsyr2k.Po + -rm -f ./$(DEPDIR)/test-fsyrk.Po + -rm -f ./$(DEPDIR)/test-fsytrf.Po + -rm -f ./$(DEPDIR)/test-ftrmm.Po + -rm -f ./$(DEPDIR)/test-ftrmv.Po + -rm -f ./$(DEPDIR)/test-ftrsm-check.Po + -rm -f ./$(DEPDIR)/test-ftrsm.Po + -rm -f ./$(DEPDIR)/test-ftrssyr2k.Po + -rm -f ./$(DEPDIR)/test-ftrstr.Po + -rm -f ./$(DEPDIR)/test-ftrsv.Po + -rm -f ./$(DEPDIR)/test-ftrtri.Po + -rm -f ./$(DEPDIR)/test-interfaces-c.Po + -rm -f ./$(DEPDIR)/test-invert-check.Po + -rm -f ./$(DEPDIR)/test-io.Po + -rm -f ./$(DEPDIR)/test-lu.Po + -rm -f ./$(DEPDIR)/test-maxdelayeddim.Po + -rm -f ./$(DEPDIR)/test-minpoly.Po + -rm -f ./$(DEPDIR)/test-multifile1.Po + -rm -f ./$(DEPDIR)/test-multifile2.Po + -rm -f ./$(DEPDIR)/test-nullspace.Po + -rm -f ./$(DEPDIR)/test-permutations.Po + -rm -f ./$(DEPDIR)/test-pluq-check.Po + -rm -f ./$(DEPDIR)/test-quasisep.Po + -rm -f ./$(DEPDIR)/test-rankprofiles.Po + -rm -f ./$(DEPDIR)/test-rpm.Po + -rm -f ./$(DEPDIR)/test-simd.Po + -rm -f ./$(DEPDIR)/test-solve.Po + -rm -f ./$(DEPDIR)/test-storage-transpose.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) check-am install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-TESTS check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \ + uninstall uninstall-am + +.PRECIOUS: Makefile + +check: + $(BASE_TESTS) +#test_pfgemm_DSL_SOURCES = test-pfgemm-DSL.C + +# Perfpublisher script interaction - AB 2014/11/17 +perfpublisher: + +./perfpublisher.sh "$(PERFPUBLISHERFILE)" "$(EXTRA_PROGRAMS)" "$(CXX)" + mv $(PERFPUBLISHERFILE) .. + make clean + mv ../$(PERFPUBLISHERFILE) . + +%:%.C + $(new_examp_comp) + +%:%.cpp + $(new_examp_comp) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/tests/data/Makefile.am b/deps/fflas-ffpack-2.5.0/tests/data/Makefile.am similarity index 100% rename from deps/fflas-ffpack/tests/data/Makefile.am rename to deps/fflas-ffpack-2.5.0/tests/data/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/tests/data/Makefile.in b/deps/fflas-ffpack-2.5.0/tests/data/Makefile.in new file mode 100644 index 000000000..f9f16e94e --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/tests/data/Makefile.in @@ -0,0 +1,688 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2011 FFLAS-FFPACK +# written by Brice Boyer (briceboyer) +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = tests/data +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = +EXTRA_DIST = mat11.sms +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/data/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/data/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/tests/data/mat11.sms b/deps/fflas-ffpack-2.5.0/tests/data/mat11.sms similarity index 100% rename from deps/fflas-ffpack/tests/data/mat11.sms rename to deps/fflas-ffpack-2.5.0/tests/data/mat11.sms diff --git a/deps/fflas-ffpack/tests/regression-check.C b/deps/fflas-ffpack-2.5.0/tests/regression-check.C similarity index 100% rename from deps/fflas-ffpack/tests/regression-check.C rename to deps/fflas-ffpack-2.5.0/tests/regression-check.C diff --git a/deps/fflas-ffpack/tests/test-charpoly-check.C b/deps/fflas-ffpack-2.5.0/tests/test-charpoly-check.C similarity index 100% rename from deps/fflas-ffpack/tests/test-charpoly-check.C rename to deps/fflas-ffpack-2.5.0/tests/test-charpoly-check.C diff --git a/deps/fflas-ffpack/tests/test-charpoly.C b/deps/fflas-ffpack-2.5.0/tests/test-charpoly.C similarity index 100% rename from deps/fflas-ffpack/tests/test-charpoly.C rename to deps/fflas-ffpack-2.5.0/tests/test-charpoly.C diff --git a/deps/fflas-ffpack/tests/test-compressQ.C b/deps/fflas-ffpack-2.5.0/tests/test-compressQ.C similarity index 100% rename from deps/fflas-ffpack/tests/test-compressQ.C rename to deps/fflas-ffpack-2.5.0/tests/test-compressQ.C diff --git a/deps/fflas-ffpack/tests/test-det-check.C b/deps/fflas-ffpack-2.5.0/tests/test-det-check.C similarity index 100% rename from deps/fflas-ffpack/tests/test-det-check.C rename to deps/fflas-ffpack-2.5.0/tests/test-det-check.C diff --git a/deps/fflas-ffpack/tests/test-det.C b/deps/fflas-ffpack-2.5.0/tests/test-det.C similarity index 100% rename from deps/fflas-ffpack/tests/test-det.C rename to deps/fflas-ffpack-2.5.0/tests/test-det.C diff --git a/deps/fflas-ffpack/tests/test-echelon.C b/deps/fflas-ffpack-2.5.0/tests/test-echelon.C similarity index 100% rename from deps/fflas-ffpack/tests/test-echelon.C rename to deps/fflas-ffpack-2.5.0/tests/test-echelon.C diff --git a/deps/fflas-ffpack/tests/test-fadd.C b/deps/fflas-ffpack-2.5.0/tests/test-fadd.C similarity index 100% rename from deps/fflas-ffpack/tests/test-fadd.C rename to deps/fflas-ffpack-2.5.0/tests/test-fadd.C diff --git a/deps/fflas-ffpack/tests/test-fdot.C b/deps/fflas-ffpack-2.5.0/tests/test-fdot.C similarity index 100% rename from deps/fflas-ffpack/tests/test-fdot.C rename to deps/fflas-ffpack-2.5.0/tests/test-fdot.C diff --git a/deps/fflas-ffpack/tests/test-fgemm-check.C b/deps/fflas-ffpack-2.5.0/tests/test-fgemm-check.C similarity index 100% rename from deps/fflas-ffpack/tests/test-fgemm-check.C rename to deps/fflas-ffpack-2.5.0/tests/test-fgemm-check.C diff --git a/deps/fflas-ffpack/tests/test-fgemm.C b/deps/fflas-ffpack-2.5.0/tests/test-fgemm.C similarity index 100% rename from deps/fflas-ffpack/tests/test-fgemm.C rename to deps/fflas-ffpack-2.5.0/tests/test-fgemm.C diff --git a/deps/fflas-ffpack/tests/test-fgemv.C b/deps/fflas-ffpack-2.5.0/tests/test-fgemv.C similarity index 100% rename from deps/fflas-ffpack/tests/test-fgemv.C rename to deps/fflas-ffpack-2.5.0/tests/test-fgemv.C diff --git a/deps/fflas-ffpack/tests/test-fger.C b/deps/fflas-ffpack-2.5.0/tests/test-fger.C similarity index 100% rename from deps/fflas-ffpack/tests/test-fger.C rename to deps/fflas-ffpack-2.5.0/tests/test-fger.C diff --git a/deps/fflas-ffpack/tests/test-fgesv.C b/deps/fflas-ffpack-2.5.0/tests/test-fgesv.C similarity index 100% rename from deps/fflas-ffpack/tests/test-fgesv.C rename to deps/fflas-ffpack-2.5.0/tests/test-fgesv.C diff --git a/deps/fflas-ffpack/tests/test-finit.C b/deps/fflas-ffpack-2.5.0/tests/test-finit.C similarity index 100% rename from deps/fflas-ffpack/tests/test-finit.C rename to deps/fflas-ffpack-2.5.0/tests/test-finit.C diff --git a/deps/fflas-ffpack/tests/test-fscal.C b/deps/fflas-ffpack-2.5.0/tests/test-fscal.C similarity index 100% rename from deps/fflas-ffpack/tests/test-fscal.C rename to deps/fflas-ffpack-2.5.0/tests/test-fscal.C diff --git a/deps/fflas-ffpack/tests/test-fsyr2k.C b/deps/fflas-ffpack-2.5.0/tests/test-fsyr2k.C similarity index 98% rename from deps/fflas-ffpack/tests/test-fsyr2k.C rename to deps/fflas-ffpack-2.5.0/tests/test-fsyr2k.C index 8d3af4e8b..06b6c17b1 100644 --- a/deps/fflas-ffpack/tests/test-fsyr2k.C +++ b/deps/fflas-ffpack-2.5.0/tests/test-fsyr2k.C @@ -176,7 +176,6 @@ int main(int argc, char** argv) bool ok = true; do{ ok = ok && run_with_field >(q,b,n,k,a,c,iters,seed); - ok = ok && run_with_field >(2,b,n,k,a,c,iters,seed); // forcing Z/2Z test if (q!=2) ok = ok && run_with_field >(q,b,n,k,a,c,iters,seed); ok = ok && run_with_field >(q,b,n,k,a,c,iters,seed); if (q!=2) ok = ok && run_with_field >(q,b,n,k,a,c,iters,seed); diff --git a/deps/fflas-ffpack/tests/test-fsyrk.C b/deps/fflas-ffpack-2.5.0/tests/test-fsyrk.C similarity index 100% rename from deps/fflas-ffpack/tests/test-fsyrk.C rename to deps/fflas-ffpack-2.5.0/tests/test-fsyrk.C diff --git a/deps/fflas-ffpack/tests/test-fsytrf.C b/deps/fflas-ffpack-2.5.0/tests/test-fsytrf.C similarity index 100% rename from deps/fflas-ffpack/tests/test-fsytrf.C rename to deps/fflas-ffpack-2.5.0/tests/test-fsytrf.C diff --git a/deps/fflas-ffpack/tests/test-ftrmm.C b/deps/fflas-ffpack-2.5.0/tests/test-ftrmm.C similarity index 100% rename from deps/fflas-ffpack/tests/test-ftrmm.C rename to deps/fflas-ffpack-2.5.0/tests/test-ftrmm.C diff --git a/deps/fflas-ffpack/tests/test-ftrmv.C b/deps/fflas-ffpack-2.5.0/tests/test-ftrmv.C similarity index 100% rename from deps/fflas-ffpack/tests/test-ftrmv.C rename to deps/fflas-ffpack-2.5.0/tests/test-ftrmv.C diff --git a/deps/fflas-ffpack/tests/test-ftrsm-check.C b/deps/fflas-ffpack-2.5.0/tests/test-ftrsm-check.C similarity index 100% rename from deps/fflas-ffpack/tests/test-ftrsm-check.C rename to deps/fflas-ffpack-2.5.0/tests/test-ftrsm-check.C diff --git a/deps/fflas-ffpack/tests/test-ftrsm.C b/deps/fflas-ffpack-2.5.0/tests/test-ftrsm.C similarity index 100% rename from deps/fflas-ffpack/tests/test-ftrsm.C rename to deps/fflas-ffpack-2.5.0/tests/test-ftrsm.C diff --git a/deps/fflas-ffpack/tests/test-ftrssyr2k.C b/deps/fflas-ffpack-2.5.0/tests/test-ftrssyr2k.C similarity index 100% rename from deps/fflas-ffpack/tests/test-ftrssyr2k.C rename to deps/fflas-ffpack-2.5.0/tests/test-ftrssyr2k.C diff --git a/deps/fflas-ffpack/tests/test-ftrstr.C b/deps/fflas-ffpack-2.5.0/tests/test-ftrstr.C similarity index 100% rename from deps/fflas-ffpack/tests/test-ftrstr.C rename to deps/fflas-ffpack-2.5.0/tests/test-ftrstr.C diff --git a/deps/fflas-ffpack/tests/test-ftrsv.C b/deps/fflas-ffpack-2.5.0/tests/test-ftrsv.C similarity index 100% rename from deps/fflas-ffpack/tests/test-ftrsv.C rename to deps/fflas-ffpack-2.5.0/tests/test-ftrsv.C diff --git a/deps/fflas-ffpack/tests/test-ftrtri.C b/deps/fflas-ffpack-2.5.0/tests/test-ftrtri.C similarity index 100% rename from deps/fflas-ffpack/tests/test-ftrtri.C rename to deps/fflas-ffpack-2.5.0/tests/test-ftrtri.C diff --git a/deps/fflas-ffpack/tests/test-interfaces-c.c b/deps/fflas-ffpack-2.5.0/tests/test-interfaces-c.c similarity index 100% rename from deps/fflas-ffpack/tests/test-interfaces-c.c rename to deps/fflas-ffpack-2.5.0/tests/test-interfaces-c.c diff --git a/deps/fflas-ffpack/tests/test-invert-check.C b/deps/fflas-ffpack-2.5.0/tests/test-invert-check.C similarity index 100% rename from deps/fflas-ffpack/tests/test-invert-check.C rename to deps/fflas-ffpack-2.5.0/tests/test-invert-check.C diff --git a/deps/fflas-ffpack/tests/test-io.C b/deps/fflas-ffpack-2.5.0/tests/test-io.C similarity index 100% rename from deps/fflas-ffpack/tests/test-io.C rename to deps/fflas-ffpack-2.5.0/tests/test-io.C diff --git a/deps/fflas-ffpack/tests/test-lu.C b/deps/fflas-ffpack-2.5.0/tests/test-lu.C similarity index 100% rename from deps/fflas-ffpack/tests/test-lu.C rename to deps/fflas-ffpack-2.5.0/tests/test-lu.C diff --git a/deps/fflas-ffpack/tests/test-maxdelayeddim.C b/deps/fflas-ffpack-2.5.0/tests/test-maxdelayeddim.C similarity index 100% rename from deps/fflas-ffpack/tests/test-maxdelayeddim.C rename to deps/fflas-ffpack-2.5.0/tests/test-maxdelayeddim.C diff --git a/deps/fflas-ffpack/tests/test-minpoly.C b/deps/fflas-ffpack-2.5.0/tests/test-minpoly.C similarity index 100% rename from deps/fflas-ffpack/tests/test-minpoly.C rename to deps/fflas-ffpack-2.5.0/tests/test-minpoly.C diff --git a/deps/fflas-ffpack/tests/test-multifile1.C b/deps/fflas-ffpack-2.5.0/tests/test-multifile1.C similarity index 100% rename from deps/fflas-ffpack/tests/test-multifile1.C rename to deps/fflas-ffpack-2.5.0/tests/test-multifile1.C diff --git a/deps/fflas-ffpack/tests/test-multifile2.C b/deps/fflas-ffpack-2.5.0/tests/test-multifile2.C similarity index 100% rename from deps/fflas-ffpack/tests/test-multifile2.C rename to deps/fflas-ffpack-2.5.0/tests/test-multifile2.C diff --git a/deps/fflas-ffpack/tests/test-nullspace.C b/deps/fflas-ffpack-2.5.0/tests/test-nullspace.C similarity index 100% rename from deps/fflas-ffpack/tests/test-nullspace.C rename to deps/fflas-ffpack-2.5.0/tests/test-nullspace.C diff --git a/deps/fflas-ffpack/tests/test-permutations.C b/deps/fflas-ffpack-2.5.0/tests/test-permutations.C similarity index 100% rename from deps/fflas-ffpack/tests/test-permutations.C rename to deps/fflas-ffpack-2.5.0/tests/test-permutations.C diff --git a/deps/fflas-ffpack/tests/test-pluq-check.C b/deps/fflas-ffpack-2.5.0/tests/test-pluq-check.C similarity index 100% rename from deps/fflas-ffpack/tests/test-pluq-check.C rename to deps/fflas-ffpack-2.5.0/tests/test-pluq-check.C diff --git a/deps/fflas-ffpack/tests/test-quasisep.C b/deps/fflas-ffpack-2.5.0/tests/test-quasisep.C similarity index 93% rename from deps/fflas-ffpack/tests/test-quasisep.C rename to deps/fflas-ffpack-2.5.0/tests/test-quasisep.C index a942a6afd..f2f0e7267 100644 --- a/deps/fflas-ffpack/tests/test-quasisep.C +++ b/deps/fflas-ffpack-2.5.0/tests/test-quasisep.C @@ -1,5 +1,5 @@ /* - * Copyright (C) the FFLAS-FFPACK group + * Copyright (C) FFLAS-FFPACK * Written by Clément Pernet and Quentin Houssier * This file is Free Software and part of FFLAS-FFPACK. * @@ -47,7 +47,7 @@ using namespace FFLAS; template bool test_BruhatGenerator (const Field & F, size_t n, size_t r, size_t t, - typename Field::ConstElement_ptr A, size_t lda,typename Field::Element_ptr TS, size_t l ,RandIter& G) + typename Field::ConstElement_ptr A, size_t lda,typename Field::Element_ptr TS, size_t l ,RandIter& G) { bool fail = false; typedef typename Field::Element_ptr Element_ptr ; @@ -149,10 +149,10 @@ bool launch_test (const Field & F, size_t n, size_t r, size_t t, size_t l,RandIt { /* user provided params, larger lda */ size_t lda = n+10 ; Element_ptr A = fflas_new (F, n, lda); - Element_ptr TS = fflas_new(F, n, l); + Element_ptr TS = fflas_new(F, n, l); // TODO implement this randomGenerator RandomLTQSMatrixWithRankandQSorder (F,n,r,t,A,lda,G); - RandomMatrix(F, n, l, TS,l,G); + RandomMatrix(F, n, l, TS,l,G); fail = fail || test_BruhatGenerator (F, n, r, t, A, lda,TS, l,G); if (fail) std::cout << "failed at user params" << std::endl; @@ -210,7 +210,7 @@ bool run_with_field(Givaro::Integer q, uint64_t b, size_t n, size_t r, size_t t, ok = ok && testLTQSRPM (*F,n,r,t,G); ok = ok && launch_test (*F,n,r,t,l,G); ok = ok && launch_test (*F,n,r,t,l,G); - ok = ok && + ok = ok && nbit--; if ( !ok ) //std::cout << "\033[1;31mFAILED\033[0m "< > (q,b,n,r,t,m,iters,seed); ok = ok &&run_with_field > (q,b,n,r,t,m,iters,seed); ok = ok &&run_with_field > (q,b,n,r,t,m,iters,seed); - ok = ok &&run_with_field > (q,5, ceil(n/4.), ceil(r/4.), ceil(t/4.), - ceil(m/4.), iters,seed); - ok = ok &&run_with_field > (q,(b?b:512), ceil(n/4.), ceil(r/4.), - ceil(t/4.), - ceil(m/4.),iters,seed); + ok = ok &&run_with_field > (q,5,n/4,r/4,t/4,m/4,iters,seed); + ok = ok &&run_with_field > (q,(b?b:512),n/4,r/4,t/4,m/4,iters,seed); seed++; } while (loop && ok); diff --git a/deps/fflas-ffpack/tests/test-rankprofiles.C b/deps/fflas-ffpack-2.5.0/tests/test-rankprofiles.C similarity index 100% rename from deps/fflas-ffpack/tests/test-rankprofiles.C rename to deps/fflas-ffpack-2.5.0/tests/test-rankprofiles.C diff --git a/deps/fflas-ffpack/tests/test-rpm.C b/deps/fflas-ffpack-2.5.0/tests/test-rpm.C similarity index 100% rename from deps/fflas-ffpack/tests/test-rpm.C rename to deps/fflas-ffpack-2.5.0/tests/test-rpm.C diff --git a/deps/fflas-ffpack/tests/test-simd.C b/deps/fflas-ffpack-2.5.0/tests/test-simd.C similarity index 100% rename from deps/fflas-ffpack/tests/test-simd.C rename to deps/fflas-ffpack-2.5.0/tests/test-simd.C diff --git a/deps/fflas-ffpack/tests/test-solve.C b/deps/fflas-ffpack-2.5.0/tests/test-solve.C similarity index 100% rename from deps/fflas-ffpack/tests/test-solve.C rename to deps/fflas-ffpack-2.5.0/tests/test-solve.C diff --git a/deps/fflas-ffpack/tests/test-storage-transpose.C b/deps/fflas-ffpack-2.5.0/tests/test-storage-transpose.C similarity index 100% rename from deps/fflas-ffpack/tests/test-storage-transpose.C rename to deps/fflas-ffpack-2.5.0/tests/test-storage-transpose.C diff --git a/deps/fflas-ffpack/tutorials/101-fgemm.C b/deps/fflas-ffpack-2.5.0/tutorials/101-fgemm.C similarity index 100% rename from deps/fflas-ffpack/tutorials/101-fgemm.C rename to deps/fflas-ffpack-2.5.0/tutorials/101-fgemm.C diff --git a/deps/fflas-ffpack/tutorials/2x2-fgemm.C b/deps/fflas-ffpack-2.5.0/tutorials/2x2-fgemm.C similarity index 100% rename from deps/fflas-ffpack/tutorials/2x2-fgemm.C rename to deps/fflas-ffpack-2.5.0/tutorials/2x2-fgemm.C diff --git a/deps/fflas-ffpack/tutorials/2x2-ftrsv.C b/deps/fflas-ffpack-2.5.0/tutorials/2x2-ftrsv.C similarity index 100% rename from deps/fflas-ffpack/tutorials/2x2-ftrsv.C rename to deps/fflas-ffpack-2.5.0/tutorials/2x2-ftrsv.C diff --git a/deps/fflas-ffpack/tutorials/2x2-pluq.C b/deps/fflas-ffpack-2.5.0/tutorials/2x2-pluq.C similarity index 100% rename from deps/fflas-ffpack/tutorials/2x2-pluq.C rename to deps/fflas-ffpack-2.5.0/tutorials/2x2-pluq.C diff --git a/deps/fflas-ffpack/tutorials/Makefile.am b/deps/fflas-ffpack-2.5.0/tutorials/Makefile.am similarity index 100% rename from deps/fflas-ffpack/tutorials/Makefile.am rename to deps/fflas-ffpack-2.5.0/tutorials/Makefile.am diff --git a/deps/fflas-ffpack-2.5.0/tutorials/Makefile.in b/deps/fflas-ffpack-2.5.0/tutorials/Makefile.in new file mode 100644 index 000000000..27cde9f27 --- /dev/null +++ b/deps/fflas-ffpack-2.5.0/tutorials/Makefile.in @@ -0,0 +1,807 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2017 FFLAS-FFPACK +# written by JGD +# Philippe LEDENT +# +# ========LICENCE======== +# This file is part of the library FFLAS-FFPACK. +# +# FFLAS-FFPACK is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# ========LICENCE======== +#/ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +@FFLASFFPACK_PRECOMPILED_TRUE@am__append_1 = $(top_builddir)/fflas-ffpack/interfaces/libs/libfflas.la \ +@FFLASFFPACK_PRECOMPILED_TRUE@ $(top_builddir)/fflas-ffpack/interfaces/libs/libffpack.la +EXTRA_PROGRAMS = $(am__EXEEXT_1) +subdir = tutorials +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = \ + $(top_srcdir)/macros/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/macros/common.m4 \ + $(top_srcdir)/macros/config-header.m4 \ + $(top_srcdir)/macros/debug.m4 \ + $(top_srcdir)/macros/fflas-ffpack-blas.m4 \ + $(top_srcdir)/macros/fflas-ffpack-doc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-misc.m4 \ + $(top_srcdir)/macros/fflas-ffpack-precompile.m4 \ + $(top_srcdir)/macros/givaro-check.m4 \ + $(top_srcdir)/macros/libtool.m4 \ + $(top_srcdir)/macros/ltoptions.m4 \ + $(top_srcdir)/macros/ltsugar.m4 \ + $(top_srcdir)/macros/ltversion.m4 \ + $(top_srcdir)/macros/lt~obsolete.m4 \ + $(top_srcdir)/macros/mkl-check.m4 \ + $(top_srcdir)/macros/omp-check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__EXEEXT_1 = fflas_101$(EXEEXT) fflas_101_lvl1$(EXEEXT) \ + fflas-101_1$(EXEEXT) fflas-101_3$(EXEEXT) 2x2-fgemm$(EXEEXT) \ + 101-fgemm$(EXEEXT) 2x2-pluq$(EXEEXT) 2x2-ftrsv$(EXEEXT) \ + ffpack-solve$(EXEEXT) ffpack-fgesv$(EXEEXT) +am_101_fgemm_OBJECTS = 101-fgemm.$(OBJEXT) +101_fgemm_OBJECTS = $(am_101_fgemm_OBJECTS) +101_fgemm_LDADD = $(LDADD) +am__DEPENDENCIES_1 = +101_fgemm_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +am_2x2_fgemm_OBJECTS = 2x2-fgemm.$(OBJEXT) +2x2_fgemm_OBJECTS = $(am_2x2_fgemm_OBJECTS) +2x2_fgemm_LDADD = $(LDADD) +2x2_fgemm_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_2x2_ftrsv_OBJECTS = 2x2-ftrsv.$(OBJEXT) +2x2_ftrsv_OBJECTS = $(am_2x2_ftrsv_OBJECTS) +2x2_ftrsv_LDADD = $(LDADD) +2x2_ftrsv_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_2x2_pluq_OBJECTS = 2x2-pluq.$(OBJEXT) +2x2_pluq_OBJECTS = $(am_2x2_pluq_OBJECTS) +2x2_pluq_LDADD = $(LDADD) +2x2_pluq_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_fflas_101_1_OBJECTS = fflas-101_1.$(OBJEXT) +fflas_101_1_OBJECTS = $(am_fflas_101_1_OBJECTS) +fflas_101_1_LDADD = $(LDADD) +fflas_101_1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_fflas_101_3_OBJECTS = fflas-101_3.$(OBJEXT) +fflas_101_3_OBJECTS = $(am_fflas_101_3_OBJECTS) +fflas_101_3_LDADD = $(LDADD) +fflas_101_3_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_fflas_101_OBJECTS = fflas_101.$(OBJEXT) +fflas_101_OBJECTS = $(am_fflas_101_OBJECTS) +fflas_101_LDADD = $(LDADD) +fflas_101_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_1) +am_fflas_101_lvl1_OBJECTS = fflas_101_lvl1.$(OBJEXT) +fflas_101_lvl1_OBJECTS = $(am_fflas_101_lvl1_OBJECTS) +fflas_101_lvl1_LDADD = $(LDADD) +fflas_101_lvl1_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_ffpack_fgesv_OBJECTS = ffpack-fgesv.$(OBJEXT) +ffpack_fgesv_OBJECTS = $(am_ffpack_fgesv_OBJECTS) +ffpack_fgesv_LDADD = $(LDADD) +ffpack_fgesv_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +am_ffpack_solve_OBJECTS = ffpack-solve.$(OBJEXT) +ffpack_solve_OBJECTS = $(am_ffpack_solve_OBJECTS) +ffpack_solve_LDADD = $(LDADD) +ffpack_solve_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/101-fgemm.Po \ + ./$(DEPDIR)/2x2-fgemm.Po ./$(DEPDIR)/2x2-ftrsv.Po \ + ./$(DEPDIR)/2x2-pluq.Po ./$(DEPDIR)/fflas-101_1.Po \ + ./$(DEPDIR)/fflas-101_3.Po ./$(DEPDIR)/fflas_101.Po \ + ./$(DEPDIR)/fflas_101_lvl1.Po ./$(DEPDIR)/ffpack-fgesv.Po \ + ./$(DEPDIR)/ffpack-solve.Po +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(101_fgemm_SOURCES) $(2x2_fgemm_SOURCES) \ + $(2x2_ftrsv_SOURCES) $(2x2_pluq_SOURCES) \ + $(fflas_101_1_SOURCES) $(fflas_101_3_SOURCES) \ + $(fflas_101_SOURCES) $(fflas_101_lvl1_SOURCES) \ + $(ffpack_fgesv_SOURCES) $(ffpack_solve_SOURCES) +DIST_SOURCES = $(101_fgemm_SOURCES) $(2x2_fgemm_SOURCES) \ + $(2x2_ftrsv_SOURCES) $(2x2_pluq_SOURCES) \ + $(fflas_101_1_SOURCES) $(fflas_101_3_SOURCES) \ + $(fflas_101_SOURCES) $(fflas_101_lvl1_SOURCES) \ + $(ffpack_fgesv_SOURCES) $(ffpack_solve_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_VENDOR = @BLAS_VENDOR@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CCNAM = @CCNAM@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FFLASFFPACK_CXXFLAGS = @FFLASFFPACK_CXXFLAGS@ +FFLASFFPACK_DOC_PATH = @FFLASFFPACK_DOC_PATH@ +FGREP = @FGREP@ +GIVARO_CFLAGS = @GIVARO_CFLAGS@ +GIVARO_LIBS = @GIVARO_LIBS@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAPACK_LIBS = @LAPACK_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPFLAGS = @OMPFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARFLAGS = @PARFLAGS@ +PARLIBS = @PARLIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PRECOMPILE_FLAGS = @PRECOMPILE_FLAGS@ +PRECOMPILE_LIBS = @PRECOMPILE_LIBS@ +PROF = @PROF@ +RANLIB = @RANLIB@ +REQUIRED_FLAGS = @REQUIRED_FLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_DEBUG = @USE_DEBUG@ +USE_MKL = @USE_MKL@ +VERSION = @VERSION@ +WARN = @WARN@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_CXXFLAGS = $(FFLASFFPACK_CXXFLAGS) $(GIVARO_CFLAGS) $(BLAS_CFLAGS) $(PARFLAGS) $(PRECOMPILE_FLAGS) +AM_CPPFLAGS = -I$(top_srcdir) +LDADD = $(GIVARO_LIBS) $(BLAS_LIBS) $(PARLIBS) $(am__append_1) +TUTORIALS = fflas_101 fflas_101_lvl1 fflas-101_1 fflas-101_3 2x2-fgemm 101-fgemm 2x2-pluq 2x2-ftrsv ffpack-solve ffpack-fgesv +2x2_fgemm_SOURCES = 2x2-fgemm.C +2x2_ftrsv_SOURCES = 2x2-ftrsv.C +101_fgemm_SOURCES = 101-fgemm.C +2x2_pluq_SOURCES = 2x2-pluq.C +fflas_101_SOURCES = fflas_101.C +fflas_101_lvl1_SOURCES = fflas_101_lvl1.C +fflas_101_1_SOURCES = fflas-101_1.C +fflas_101_3_SOURCES = fflas-101_3.C +ffpack_solve_SOURCES = ffpack-solve.C +ffpack_fgesv_SOURCES = ffpack-fgesv.C +CLEANFILES = $(TUTORIALS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .C .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tutorials/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign tutorials/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +101-fgemm$(EXEEXT): $(101_fgemm_OBJECTS) $(101_fgemm_DEPENDENCIES) $(EXTRA_101_fgemm_DEPENDENCIES) + @rm -f 101-fgemm$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(101_fgemm_OBJECTS) $(101_fgemm_LDADD) $(LIBS) + +2x2-fgemm$(EXEEXT): $(2x2_fgemm_OBJECTS) $(2x2_fgemm_DEPENDENCIES) $(EXTRA_2x2_fgemm_DEPENDENCIES) + @rm -f 2x2-fgemm$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(2x2_fgemm_OBJECTS) $(2x2_fgemm_LDADD) $(LIBS) + +2x2-ftrsv$(EXEEXT): $(2x2_ftrsv_OBJECTS) $(2x2_ftrsv_DEPENDENCIES) $(EXTRA_2x2_ftrsv_DEPENDENCIES) + @rm -f 2x2-ftrsv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(2x2_ftrsv_OBJECTS) $(2x2_ftrsv_LDADD) $(LIBS) + +2x2-pluq$(EXEEXT): $(2x2_pluq_OBJECTS) $(2x2_pluq_DEPENDENCIES) $(EXTRA_2x2_pluq_DEPENDENCIES) + @rm -f 2x2-pluq$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(2x2_pluq_OBJECTS) $(2x2_pluq_LDADD) $(LIBS) + +fflas-101_1$(EXEEXT): $(fflas_101_1_OBJECTS) $(fflas_101_1_DEPENDENCIES) $(EXTRA_fflas_101_1_DEPENDENCIES) + @rm -f fflas-101_1$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(fflas_101_1_OBJECTS) $(fflas_101_1_LDADD) $(LIBS) + +fflas-101_3$(EXEEXT): $(fflas_101_3_OBJECTS) $(fflas_101_3_DEPENDENCIES) $(EXTRA_fflas_101_3_DEPENDENCIES) + @rm -f fflas-101_3$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(fflas_101_3_OBJECTS) $(fflas_101_3_LDADD) $(LIBS) + +fflas_101$(EXEEXT): $(fflas_101_OBJECTS) $(fflas_101_DEPENDENCIES) $(EXTRA_fflas_101_DEPENDENCIES) + @rm -f fflas_101$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(fflas_101_OBJECTS) $(fflas_101_LDADD) $(LIBS) + +fflas_101_lvl1$(EXEEXT): $(fflas_101_lvl1_OBJECTS) $(fflas_101_lvl1_DEPENDENCIES) $(EXTRA_fflas_101_lvl1_DEPENDENCIES) + @rm -f fflas_101_lvl1$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(fflas_101_lvl1_OBJECTS) $(fflas_101_lvl1_LDADD) $(LIBS) + +ffpack-fgesv$(EXEEXT): $(ffpack_fgesv_OBJECTS) $(ffpack_fgesv_DEPENDENCIES) $(EXTRA_ffpack_fgesv_DEPENDENCIES) + @rm -f ffpack-fgesv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(ffpack_fgesv_OBJECTS) $(ffpack_fgesv_LDADD) $(LIBS) + +ffpack-solve$(EXEEXT): $(ffpack_solve_OBJECTS) $(ffpack_solve_DEPENDENCIES) $(EXTRA_ffpack_solve_DEPENDENCIES) + @rm -f ffpack-solve$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(ffpack_solve_OBJECTS) $(ffpack_solve_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/101-fgemm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/2x2-fgemm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/2x2-ftrsv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/2x2-pluq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas-101_1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas-101_3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas_101.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflas_101_lvl1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffpack-fgesv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffpack-solve.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.C.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.C.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.C.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/101-fgemm.Po + -rm -f ./$(DEPDIR)/2x2-fgemm.Po + -rm -f ./$(DEPDIR)/2x2-ftrsv.Po + -rm -f ./$(DEPDIR)/2x2-pluq.Po + -rm -f ./$(DEPDIR)/fflas-101_1.Po + -rm -f ./$(DEPDIR)/fflas-101_3.Po + -rm -f ./$(DEPDIR)/fflas_101.Po + -rm -f ./$(DEPDIR)/fflas_101_lvl1.Po + -rm -f ./$(DEPDIR)/ffpack-fgesv.Po + -rm -f ./$(DEPDIR)/ffpack-solve.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/101-fgemm.Po + -rm -f ./$(DEPDIR)/2x2-fgemm.Po + -rm -f ./$(DEPDIR)/2x2-ftrsv.Po + -rm -f ./$(DEPDIR)/2x2-pluq.Po + -rm -f ./$(DEPDIR)/fflas-101_1.Po + -rm -f ./$(DEPDIR)/fflas-101_3.Po + -rm -f ./$(DEPDIR)/fflas_101.Po + -rm -f ./$(DEPDIR)/fflas_101_lvl1.Po + -rm -f ./$(DEPDIR)/ffpack-fgesv.Po + -rm -f ./$(DEPDIR)/ffpack-solve.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libtool cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +tutorials: $(TUTORIALS) + +define other_compilation + $(CXX) $(CXXFLAGS) $(AM_CXXFLAGS) $(OPTFLAGS) ${DEFAULT_INCLUDES} $(PARFLAGS) ${INCLUDES} $(AM_CPPFLAGS) $*.C -o $@ $(LDFLAGS) $(LDADD) $(LOADLIBES) +endef + +%:%.C + $(other_compilation) + +%:%.cpp + $(other_compilation) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/fflas-ffpack/tutorials/fflas-101_1.C b/deps/fflas-ffpack-2.5.0/tutorials/fflas-101_1.C similarity index 100% rename from deps/fflas-ffpack/tutorials/fflas-101_1.C rename to deps/fflas-ffpack-2.5.0/tutorials/fflas-101_1.C diff --git a/deps/fflas-ffpack/tutorials/fflas-101_3.C b/deps/fflas-ffpack-2.5.0/tutorials/fflas-101_3.C similarity index 100% rename from deps/fflas-ffpack/tutorials/fflas-101_3.C rename to deps/fflas-ffpack-2.5.0/tutorials/fflas-101_3.C diff --git a/deps/fflas-ffpack/tutorials/fflas_101.C b/deps/fflas-ffpack-2.5.0/tutorials/fflas_101.C similarity index 100% rename from deps/fflas-ffpack/tutorials/fflas_101.C rename to deps/fflas-ffpack-2.5.0/tutorials/fflas_101.C diff --git a/deps/fflas-ffpack/tutorials/fflas_101_lvl1.C b/deps/fflas-ffpack-2.5.0/tutorials/fflas_101_lvl1.C similarity index 100% rename from deps/fflas-ffpack/tutorials/fflas_101_lvl1.C rename to deps/fflas-ffpack-2.5.0/tutorials/fflas_101_lvl1.C diff --git a/deps/fflas-ffpack/tutorials/ffpack-fgesv.C b/deps/fflas-ffpack-2.5.0/tutorials/ffpack-fgesv.C similarity index 100% rename from deps/fflas-ffpack/tutorials/ffpack-fgesv.C rename to deps/fflas-ffpack-2.5.0/tutorials/ffpack-fgesv.C diff --git a/deps/fflas-ffpack/tutorials/ffpack-solve.C b/deps/fflas-ffpack-2.5.0/tutorials/ffpack-solve.C similarity index 100% rename from deps/fflas-ffpack/tutorials/ffpack-solve.C rename to deps/fflas-ffpack-2.5.0/tutorials/ffpack-solve.C diff --git a/deps/fflas-ffpack/.github/workflows/ci-sage.yml b/deps/fflas-ffpack/.github/workflows/ci-sage.yml deleted file mode 100644 index 66d437048..000000000 --- a/deps/fflas-ffpack/.github/workflows/ci-sage.yml +++ /dev/null @@ -1,145 +0,0 @@ -name: Run Sage CI for Linux/macOS - -## This GitHub Actions workflow provides: -## -## - portability testing, by building and testing this project on many platforms -## (Linux variants and macOS), each with two configurations (installed packages), -## -## - continuous integration, by building and testing other software -## that depends on this project. -## -## It runs on every push to the GitHub repository. -## -## The testing can be monitored in the "Actions" tab of the GitHub repository. -## -## After all jobs have finished (or are canceled) and a short delay, -## tar files of all logs are made available as "build artifacts". -## -## This GitHub Actions workflow uses the portability testing framework -## of SageMath (https://www.sagemath.org/). For more information, see -## https://doc.sagemath.org/html/en/developer/portability_testing.html - -## The workflow consists of two jobs: -## -## - First, it builds a source distribution of the project -## and generates a script "update-pkgs.sh". It uploads them -## as a build artifact named upstream. -## -## - Second, it checks out a copy of the SageMath source tree. -## It downloads the upstream artifact and replaces the project's -## package in the SageMath distribution by the newly packaged one -## from the upstream artifact, by running the script "update-pkgs.sh". -## Then it builds a small portion of the Sage distribution. -## -## Many copies of the second step are run in parallel for each of the tested -## systems/configurations. - -## on: [push, pull_request] - -## Uncomment this (and comment the above) to run only on pushes to a tag, -## not on all pushes to a branch. -## -on: - pull_request: - types: [opened, synchronize] - push: - tags: - - 'SageCI' - -concurrency: - # Cancel previous runs of this workflow for the same branch - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - # Ubuntu packages to install so that the projects' "make dist" can succeed - DIST_PREREQ: libtool libopenblas-dev libgmp-dev - # Name of this project in the Sage distribution - SPKG: fflas_ffpack - # Sage distribution packages to build - TARGETS_PRE: build/make/Makefile - TARGETS: SAGE_CHECK=no SAGE_CHECK_givaro=yes SAGE_CHECK_fflas_ffpack=yes SAGE_CHECK_linbox=yes fflas_ffpack - TARGETS_OPTIONAL: build/make/Makefile - # Standard setting: Test the current beta release of Sage: - SAGE_REPO: sagemath/sage - SAGE_REF: develop - REMOVE_PATCHES: "*" - EXTRA_CONFIGURE_ARGS: --without-system-givaro --without-system-fflas_ffpack --without-system-linbox - -jobs: - - dist: - runs-on: ubuntu-latest - env: - PREFIX: /tmp/build - steps: - - name: Check out givaro - uses: actions/checkout@v2 - with: - path: build/pkgs/givaro/src - repository: linbox-team/givaro - - name: Check out ${{ env.SPKG }} - uses: actions/checkout@v2 - with: - path: build/pkgs/${{ env.SPKG }}/src - - name: Check out linbox - uses: actions/checkout@v2 - with: - path: build/pkgs/linbox/src - repository: linbox-team/linbox - - name: Install prerequisites - run: | - sudo DEBIAN_FRONTEND=noninteractive apt-get update - sudo DEBIAN_FRONTEND=noninteractive apt-get install $DIST_PREREQ - - name: Run make dist, prepare upstream artifact - run: | - (cd build/pkgs/givaro/src && autoreconf -fi && ./configure --prefix=${{ env.PREFIX }} && make -j3 && make install && make dist) \ - && export PKG_CONFIG_PATH="${{ env.PREFIX }}/lib/pkgconfig:$PKG_CONFIG_PATH" \ - && mkdir -p upstream && cp build/pkgs/givaro/src/*.tar.gz upstream/givaro-git.tar.gz \ - && echo "sage-package create givaro --version git --tarball givaro-git.tar.gz --type=standard" > upstream/update-pkgs.sh \ - && if [ -n "${{ env.REMOVE_PATCHES }}" ]; then echo "(cd ../build/pkgs/givaro/patches && rm -f ${{ env.REMOVE_PATCHES }}; :)" >> upstream/update-pkgs.sh; fi \ - && (cd build/pkgs/${{ env.SPKG }}/src && autoreconf -fi && ./configure --prefix=${{ env.PREFIX }} && make -j3 && make install && make dist) \ - && mkdir -p upstream && cp build/pkgs/${{ env.SPKG }}/src/*.tar.gz upstream/${{ env.SPKG }}-git.tar.gz \ - && echo "sage-package create ${{ env.SPKG }} --version git --tarball ${{ env.SPKG }}-git.tar.gz --type=standard" >> upstream/update-pkgs.sh \ - && if [ -n "${{ env.REMOVE_PATCHES }}" ]; then echo "(cd ../build/pkgs/${{ env.SPKG }}/patches && rm -f ${{ env.REMOVE_PATCHES }}; :)" >> upstream/update-pkgs.sh; fi \ - && (cd build/pkgs/linbox/src && autoreconf -fi && ./configure --prefix=${{ env.PREFIX }} && make dist) \ - && mkdir -p upstream && cp build/pkgs/linbox/src/*.tar.gz upstream/linbox-git.tar.gz \ - && echo "sage-package create linbox --version git --tarball linbox-git.tar.gz --type=standard" >> upstream/update-pkgs.sh \ - && if [ -n "${{ env.REMOVE_PATCHES }}" ]; then echo "(cd ../build/pkgs/linbox/patches && rm -f ${{ env.REMOVE_PATCHES }}; :)" >> upstream/update-pkgs.sh; fi \ - && ls -l upstream/ - - uses: actions/upload-artifact@v3 - with: - path: upstream - name: upstream - - linux: - uses: sagemath/sage/.github/workflows/docker.yml@develop - with: - # Extra system packages to install. See available packages at - # https://github.com/sagemath/sage/tree/develop/build/pkgs - extra_sage_packages: "info" - # Sage distribution packages to build - targets: SAGE_CHECK=no SAGE_CHECK_givaro=yes SAGE_CHECK_fflas_ffpack=yes SAGE_CHECK_linbox=yes givaro fflas_ffpack linbox - # Standard setting: Test the current beta release of Sage: - sage_repo: sagemath/sage - sage_ref: develop - upstream_artifact: upstream - # Docker targets (stages) to tag - docker_targets: "with-targets" - # We prefix the image name with the SPKG name ("singular_") to avoid the error - # 'Package "sage-docker-..." is already associated with another repository.' - docker_push_repository: ghcr.io/${{ github.repository }}/fflas_ffpack_ - needs: [dist] - - macos: - uses: sagemath/sage/.github/workflows/macos.yml@develop - with: - osversion_xcodeversion_toxenv_tuples: >- - [["latest", "", "homebrew-macos-usrlocal-minimal"], - ["latest", "", "homebrew-macos-usrlocal-standard"], - ["13", "xcode_15.0", "homebrew-macos-usrlocal-standard"]] - targets: SAGE_CHECK=no SAGE_CHECK_givaro=yes SAGE_CHECK_fflas_ffpack=yes SAGE_CHECK_linbox=yes givaro fflas_ffpack linbox - sage_repo: sagemath/sage - sage_ref: develop - upstream_artifact: upstream - needs: [dist] diff --git a/deps/fflas-ffpack/.gitignore b/deps/fflas-ffpack/.gitignore deleted file mode 100644 index a7b4f2be7..000000000 --- a/deps/fflas-ffpack/.gitignore +++ /dev/null @@ -1,134 +0,0 @@ -**/Makefile -**/Makefile.in -**/.deps/ - -aclocal.m4 -autom4te.cache -build-aux -*.o -*.lo -*.la -*~ -*.libs -*.trs -*log -*status -*cache -*aux -.vscode -config.h -config.h.in -config.status -configure -fflas-ffpack-config -fflas-ffpack.pc -fflas-ffpack/config.h -fflas-ffpack/fflas-ffpack-thresholds.h -fflas-ffpack/fflas-ffpack-optimise.h -interfaces/ -libtool -macros/libtool.m4 -macros/ltoptions.m4 -macros/ltsugar.m4 -macros/ltversion.m4 -macros/lt~obsolete.m4 -autotune/winograd-modular-double -autotune/winograd-modular-float -autotune/winograd-modularbalanced-double -autotune/winograd-modularbalanced-float -autotune/pluq -autotune/charpoly-Danilevskii-LUK -autotune/charpoly-Danilevskii-LUK-threshold.h -autotune/charpoly-LUK-ArithProg -autotune/charpoly-LUK-ArithProg-threshold.h -autotune/charpoly-threshold.h -autotune/fgemm-threshold.h -autotune/fgemm-thresholds.h -autotune/pluq-threshold.h -autotune/arithprog -autotune/arithprog-blocksize.h -autotune/fsyrk -autotune/fsyrk-threshold.h -autotune/fsytrf -autotune/fsytrf-threshold.h -autotune/ftrtri -autotune/ftrtri-threshold.h -stamp-h1 -benchmarks/benchmark-fgemm -benchmarks/benchmark-fgemv-mp -benchmarks/benchmark-dgemm -benchmarks/benchmark-fgemm-mp -benchmarks/benchmark-fgemm-rns -benchmarks/benchmark-pluq -benchmarks/benchmark-lqup -benchmarks/benchmark-lqup-mp -benchmarks/benchmark-ftrsm -benchmarks/benchmark-dtrsm -benchmarks/benchmark-dgetrf -benchmarks/benchmark-checkers -benchmarks/benchmark-fsyrk -benchmarks/benchmark-ftrtri -benchmarks/benchmark-dtrtri -benchmarks/benchmark-dgetri -benchmarks/benchmark-fsytrf -benchmarks/benchmark-fspmv -benchmarks/benchmark-fspmm -benchmarks/benchmark-inverse -benchmarks/benchmark-quasisep -benchmarks/benchmark-charpoly -benchmarks/benchmark-sss -benchmarks/benchmark-quasisep -examples/det -examples/pluq -examples/charpoly -tests/regression-check -tests/test-compressQ -tests/test-det -tests/test-echelon -tests/test-fadd -tests/test-fgemm -tests/test-fger -tests/test-finit -tests/test-fscal -tests/test-ftrsm -tests/test-fsyrk -tests/test-fsytrf -tests/test-lu -tests/test-multifile -tests/test-nullspace -tests/test-rankprofiles -tests/test-bini-p -tests/test-charpoly-check -tests/test-fgemm-check -tests/test-ftrsm-check -tests/test-invert-check -tests/test-permutations -tests/test-pluq-check -tests/test-simd -tests/test-charpoly -tests/test-maxdelayeddim -tests/test-quasisep -tests/test-sss -test-det-check -test-fdot -test-fspmm-recint -test-ftrmm -test-ftrmv -test-ftrsv -test-ftrtri -test-igemm -test-io -test-minpoly -test-paladin-splitter -test-pfgemv -test-solve -tutorials/101-fgemm -tutorials/2x2-fgemm -tutorials/2x2-ftrsv -tutorials/2x2-pluq -tutorials/fflas-101_1 -tutorials/fflas-101_3 -tutorials/fflas_101 -tutorials/fflas_101_lvl1 -tutorials/ffpack-fgesv -tutorials/ffpack-solve diff --git a/deps/fflas-ffpack/.travis.yml b/deps/fflas-ffpack/.travis.yml deleted file mode 100644 index 0c5a1d152..000000000 --- a/deps/fflas-ffpack/.travis.yml +++ /dev/null @@ -1,99 +0,0 @@ -language: cpp -sudo: required - -matrix: - include: - - os: linux - sudo: required - dist: xenial - compiler: gcc - env: GCC_VERSION=5 - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 - - binutils - - gfortran-5 - - libgmp-dev - - libgmpxx4ldbl - - libtool - - autoconf - - libopenblas-dev - - - os: linux - sudo: required - dist: bionic - compiler: gcc - env: GCC_VERSION=10 - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-10 - - binutils - - gfortran-10 - - libgmp-dev - - libgmpxx4ldbl - - libtool - - autoconf - - libopenblas-dev - - # - os: linux - # sudo: required - # dist: trusty - # compiler: clang - # env: COMPILER=clang++ - # addons: - # apt: - # sources: - # - ubuntu-toolchain-r-test - # packages: - # - libgmp-dev - # - libgmpxx4ldbl - # before_install: - # - sudo add-apt-repository 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main' - # - wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add - - # - sudo apt-get update -qq - # - sudo apt-get install -qq -y clang-format-3.9 - - - os: osx - compiler: clang - before_install: - - brew update > brew-update.log 2>&1 || cat brew-update.log - - brew list automake &>/dev/null || brew install automake - - brew list autoconf &>/dev/null || brew install autoconf - - brew list libtool &>/dev/null || brew install libtool -# - brew install homebrew/science/openblas - -install: - - export CC=${CC}${GCC_VERSION:+-${GCC_VERSION}} - - echo "CC=${CC}" - - export CXX=${CXX}${GCC_VERSION:+-${GCC_VERSION}} - - echo "CXX=${CXX}" - - export FC=${GCC_VERSION:+gfortran-${GCC_VERSION}} - - echo "FC=${FC}" - - -before_script: - - git clone --depth 1 https://github.com/linbox-team/givaro.git && cd givaro && ./autogen.sh && make && sudo make install && cd .. - - git clone --depth=1 https://github.com/xianyi/OpenBLAS.git && cd OpenBLAS && make && sudo make PREFIX="/usr/local" install && cd .. - - export LD_LIBRARY_PATH=/usr/local/lib - - ./autogen.sh - -script: - - make - - make check - - make benchmarks - - make examples - - make tutorials - - make dist - -after_failure: - - cat config.log - -notifications: - on_success: change - on_failure: always diff --git a/deps/fflas-ffpack/_clang-format b/deps/fflas-ffpack/_clang-format deleted file mode 100644 index 3aa204731..000000000 --- a/deps/fflas-ffpack/_clang-format +++ /dev/null @@ -1,52 +0,0 @@ ---- -Language: Cpp -# BasedOnStyle: LLVM -AccessModifierOffset: -2 -ConstructorInitializerIndentWidth: 4 -AlignEscapedNewlinesLeft: false -AlignTrailingComments: true -AllowAllParametersOfDeclarationOnNextLine: true -AllowShortIfStatementsOnASingleLine: false -AllowShortLoopsOnASingleLine: false -AllowShortFunctionsOnASingleLine: true -AlwaysBreakTemplateDeclarations: false -AlwaysBreakBeforeMultilineStrings: false -BreakBeforeBinaryOperators: false -BreakBeforeTernaryOperators: true -BreakConstructorInitializersBeforeComma: false -BinPackParameters: true -ColumnLimit: 120 -ConstructorInitializerAllOnOneLineOrOnePerLine: false -DerivePointerBinding: false -ExperimentalAutoDetectBinPacking: false -IndentCaseLabels: false -MaxEmptyLinesToKeep: 1 -NamespaceIndentation: None -ObjCSpaceAfterProperty: false -ObjCSpaceBeforeProtocolList: true -PenaltyBreakBeforeFirstCallParameter: 19 -PenaltyBreakComment: 300 -PenaltyBreakString: 1000 -PenaltyBreakFirstLessLess: 120 -PenaltyExcessCharacter: 1000000 -PenaltyReturnTypeOnItsOwnLine: 60 -PointerBindsToType: false -SpacesBeforeTrailingComments: 1 -Cpp11BracedListStyle: false -Standard: Cpp11 -IndentWidth: 4 -TabWidth: 4 -UseTab: Never -BreakBeforeBraces: Attach -IndentFunctionDeclarationAfterType: false -SpacesInParentheses: false -SpacesInAngles: false -SpaceInEmptyParentheses: false -SpacesInCStyleCastParentheses: false -SpacesInContainerLiterals: true -SpaceBeforeAssignmentOperators: true -ContinuationIndentWidth: 4 -CommentPragmas: '^ IWYU pragma:' -SpaceBeforeParens: ControlStatements -... - diff --git a/deps/fflas-ffpack/autogen.sh b/deps/fflas-ffpack/autogen.sh deleted file mode 100755 index 182554830..000000000 --- a/deps/fflas-ffpack/autogen.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -ex - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. - -# Recover command line, with double-quotes -CMDLINE="" -for arg in "$@" - do - WHO="`echo $arg | cut -d'=' -f1`" - WHAT="`echo $arg | cut -s -d'=' -f2`" - if test "x$WHAT" = "x"; then - CMDLINE="$CMDLINE $WHO" - else - CMDLINE="$CMDLINE $WHO=\"$WHAT\"" - fi -done - -echo "$0 $CMDLINE" > $srcdir/autogen.status -chmod +x $srcdir/autogen.status - -# run autoconf, libtoolize, automake, etc. -autoreconf -vif $srcdir - -# run configure script -if test x$NOCONFIGURE = x; then - $srcdir/configure "$@" -fi diff --git a/deps/fflas-ffpack/benchmarks/Makefile.tests b/deps/fflas-ffpack/benchmarks/Makefile.tests deleted file mode 100644 index 4c2f4b3b5..000000000 --- a/deps/fflas-ffpack/benchmarks/Makefile.tests +++ /dev/null @@ -1,28 +0,0 @@ -SIZES=6 6 7 8 9 10 11 12 13 -BITS=30 60 120 240 480 960 1920 3840 7680 -MATR=1000 - -SHELL := /bin/bash -index = $(words $(shell a="$(2)";echo $${a/$(1)*/$(1)} )) -swap = $(word $(call index,$(1),${SIZES}),${BITS}) - -OUTP=output.fgemv -MODEL=$(shell cat /proc/cpuinfo | grep "model name" | head -1|cut -d':' -f2| tr -s ' '|sed 's/^ //') - -EXEC=benchmark-fgemv-mp -WSRC=${EXEC:%=-W %.C} - -mkruns = make "OPTFLAGS=-Ofast -DSTD_RECINT_SIZE=$(1) -DBENCH_RECINT" ${EXEC} ${WSRC}; ${EXEC} -b $(call swap,$(1)) -m ${MATR} -k ${MATR} -i 2 |awk '{print "SIZE:",$(1),$$0}' >> ${OUTP}; make "OPTFLAGS=-Ofast -DINTEGER_NO_RNS" ${EXEC} ${WSRC}; echo "NORNS"`${EXEC} -b $(call swap,$(1)) -m ${MATR} -k ${MATR} -i 2`|awk '{print "SIZE:",$(1),$$0}' >> ${OUTP}; - - -all: run split - -run: - - rm ${OUTP} - $(foreach siz, ${SIZES}, $(call mkruns,${siz})) - -split: - fgrep RecInt ${OUTP} | sed 's/4rintILm/ /;s/EEE/ /'> ${OUTP}.rint - fgrep Givaro ${OUTP} | fgrep NORNS > ${OUTP}.gmp - fgrep Givaro ${OUTP} | fgrep -v NORNS > ${OUTP}.rns - \ No newline at end of file diff --git a/deps/fflas-ffpack/benchmarks/benchmark-echelon.C b/deps/fflas-ffpack/benchmarks/benchmark-echelon.C deleted file mode 100644 index 13a20a85f..000000000 --- a/deps/fflas-ffpack/benchmarks/benchmark-echelon.C +++ /dev/null @@ -1,340 +0,0 @@ -/* Copyright (c) FFLAS-FFPACK - * Written by Clement Pernet , from benchmark-pluq by Ziad Sultan - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - */ - -// declare that the call to openblas_set_numthread will be made here, hence don't do it -// everywhere in the call stack -#define __FFLASFFPACK_OPENBLAS_NT_ALREADY_SET - -#include "fflas-ffpack/fflas-ffpack-config.h" -#include -#include "fflas-ffpack/config-blas.h" -#include "fflas-ffpack/fflas/fflas.h" -#include -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/args-parser.h" -#include "fflas-ffpack/ffpack/ffpack.h" -using namespace std; - -typedef Givaro::ModularBalanced Field; - -// random generator function: -ptrdiff_t myrandom (ptrdiff_t i) { return rand()%i;} - -// pointer object to it: -ptrdiff_t (*p_myrandom)(ptrdiff_t) = myrandom; - -typename Field::Element* construct_U(const Field& F, Field::RandIter& G, size_t n, size_t r, std::vector& P, size_t commonseed, size_t seed, int nt) -{ - size_t lda = n; - Field::Element *U=new Field::Element[n*n]; - - FFLAS::ParSeqHelper::Parallel H(nt); - - std::vector E(r); - PARFOR1D(i,r,H, E[i]=i; ); - - - srand48(commonseed); - std::vector Z(n); - PARFOR1D(i,n,H, Z[i]=i;); - - P.resize(r); - for(size_t i=0; i& P, size_t seed, int nt) -{ - FFLAS::ParSeqHelper::Parallel H(nt); - - size_t lda = m; - size_t taille=m*m; - Field::Element * L= new Field::Element[taille]; - PARFOR1D(i,taille,H, { F.init(L[i]); F.assign(L[i],F.zero); } ); - - std::vector E(r); - PARFOR1D(i,r,H, E[i]=i;); - - srand48(seed); - std::vector Z(m); - PARFOR1D(i,m,H, Z[i]=i; ); - - std::vector Q(r); - for(size_t i=0; i pWH(nt); - PAR_BLOCK{ - FFLAS::fgemm (F, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - m,n,r, alpha, L,r, U, - lda,beta,A,lda,pWH); - } - return L; -} - -void verification_PLUQ(const Field & F, typename Field::Element * B, typename Field::Element * A, - size_t * P, size_t * Q, size_t m, size_t n, size_t R, int nt) -{ - - FFLAS::ParSeqHelper::Parallel H(nt); - - Field::Element * X = FFLAS::fflas_new(m*n); - Field::Element * L, *U; - L = FFLAS::fflas_new(m*R); - U = FFLAS::fflas_new(R*n); - - PARFOR1D (i,m*R,H, { F.init(L[i]); F.assign(L[i], 0.0); } ); - PARFOR1D (i,n*R,H, { F.init(U[i]); F.assign(U[i], 0.0); } ); - PARFOR1D (i,m*n,H, { F.init(X[i]); F.assign(X[i], 0.0); } ); - - - PARFOR1D (i,R,H, - for (size_t j=0; j pWH (nt); -#pragma omp task shared(F, L, U, X) - FFLAS::fgemm (F, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, m,n,R, - F.one, L,R, U,n, F.zero, X,n, pWH); - - } - bool fail = false; - // PARFOR1D (size_t i=0; i(&seed1), sizeof(seed1)); - f.read(reinterpret_cast(&seed2), sizeof(seed2)); - f.read(reinterpret_cast(&seed3), sizeof(seed3)); - f.read(reinterpret_cast(&seed4), sizeof(seed4)); - std::vector Index_P(r); - Field::RandIter GG(F, seed1); - - PAR_BLOCK{ FFLAS::pfrand(F,GG,m,n,A,m/NBK); } - - - // std::cout<<"Construct U"<(maxP); - size_t *Q = FFLAS::fflas_new(maxQ); - - FFLAS::ParSeqHelper::Parallel H(nt); - - PARFOR1D(i,(size_t)m,H, - for (size_t j=0; j<(size_t)n; ++j) - Acop[i*n+j]= (*(A+i*n+j)); - ); - - for (size_t i=0;i<=iter;++i){ - - PARFOR1D(j,maxP,H, P[j]=0; ); - - PARFOR1D(j,maxQ,H, Q[j]=0; ); - - PARFOR1D(k,(size_t)m,H, - for (size_t j=0; j<(size_t)n; ++j) - *(A+k*n+j) = *(Acop+k*n+j) ; - ); - - //Additional tests for templated helper - FFLAS::ParSeqHelper::Parallel parH(nt); - - - chrono.clear(); - - if (i) chrono.start(); - // Added by AB 2014-12-15 - //#ifdef __FFLASFFPACK_USE_OPENMP - PAR_BLOCK{ - r = FFPACK::RowEchelonForm(F,m,n,A,n,P,Q,transform,LuTag,parH); - } - if (i) {chrono.stop(); time+=chrono.realtime();} - - } - - // ----------- - // Standard output for benchmark - Alexis Breust 2014/11/14 -#define CUBE(x) ((x)*(x)*(x)) - double gflop = 2.0/3.0*CUBE(double(r)/1000.0) +2*m/1000.0*n/1000.0*double(r)/1000.0 - double(r)/1000.0*double(r)/1000.0*(m+n)/1000; - if (transform) - gflop += CUBE(double(r)/1000.0)/3.0 + double(r)/1000.0*double(r)/1000.0*double(n-r)/1000.0; - std::cout << "Time: " << time / double(iter) << " Gfops: " << gflop / time * double(iter-1); - FFLAS::writeCommandString(std::cout, as) << std::endl; - - //verification - if(v) - verification_PLUQ(F,Acop,A,P,Q,m,n,R,nt); - FFLAS::fflas_delete( A); - FFLAS::fflas_delete( Acop); - - return 0; -} - -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s - diff --git a/deps/fflas-ffpack/benchmarks/benchmark-fspmm.C b/deps/fflas-ffpack/benchmarks/benchmark-fspmm.C deleted file mode 100644 index 236f276f9..000000000 --- a/deps/fflas-ffpack/benchmarks/benchmark-fspmm.C +++ /dev/null @@ -1,197 +0,0 @@ -/* Copyright (c) FFLAS-FFPACK - * Written by Bastien Vialla - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - */ - -#include -#include -#include -#include -#include - -#include "fflas-ffpack/config-blas.h" -// #include "fflas-ffpac/field/modular-double.h" -#include "fflas-ffpack/fflas/fflas.h" -#include "fflas-ffpack/fflas/fflas_sparse.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/args-parser.h" - -#ifdef __FFLASFFPACK_USE_OPENMP -typedef FFLAS::OMPTimer TTimer; -#else -typedef FFLAS::Timer TTimer; -#endif - -using namespace std; -using namespace FFLAS; - -template T from_string(std::string const &s) { - std::stringstream ss(s); - T result; - ss >> result; // TODO handle errors - return result; -} - - -template -std::pair test_fspmm(size_t iter, const Field &F, IndexT *row, IndexT *col, - typename Field::Element_ptr dat, index_t rowdim, index_t coldim, uint64_t nnz, - int blocksize, typename Field::Element_ptr x, int ldx, - typename Field::Element beta, typename Field::Element_ptr y, int ldy) { - MatT matrix; - sparse_init(F, matrix, row, col, dat, rowdim, coldim, nnz); - TTimer time; - time.clear(); - time.start(); - for (size_t i = 0; i < iter; ++i) - fspmm(F, matrix, blocksize, x, ldx, 1, y, ldy); - time.stop(); - sparse_delete(matrix); - return make_pair(time.usertime(), matrix.nElements); -} - -template void print_res(pair &p, size_t iter, T as, int blocksize) { - // cout << 2*p.second*blocksize*iter << endl; - std::cout << "Time: " << p.first / double(iter) - << " Gfops: " << ((2*blocksize*p.second)/(1000000.*p.first))*(double(iter)/1000) ; - FFLAS::writeCommandString(std::cout, as) << std::endl; -} - -int main(int argc, char **argv) { - - using Field = Givaro::Modular; - using Element = typename Field::Element; - - size_t iter = 10; - int q = 1009; - int blocksize = 4; - int s = 0; - std::string matrixFile = ""; - - Argument as[] = { { 'q', "-q Q", "Set the field characteristic (-1 for random).", TYPE_INT, &q }, - { 'b', "-b Q", "Set the block size.", TYPE_INT, &blocksize }, - { 'i', "-i R", "Set number of repetitions.", TYPE_INT, &iter }, - { 's', "-s S", "Compute and print matrix statistics.", TYPE_INT, &s }, - { 'f', "-f FILE", "Set matrix file.", TYPE_STR, &matrixFile }, - END_OF_ARGUMENTS }; - - // matrixFile = "matrix/cis.mk8-8.sms"; - // matrixFile = "matrix/M06-D9.sms"; - // matrixFile = "matrix/GL7d17.sms"; - // matrixFile = "data/mat11.sms"; - - FFLAS::parseArguments(argc, argv, as); - - // cout << matrixFile << endl; - - Field F(q); - - index_t *row = nullptr, *col = nullptr; - typename Field::Element_ptr dat; - index_t rowdim, coldim; - uint64_t nnz; - - index_t * st = nullptr ; - readSmsFormat(matrixFile, F, st, col, dat, rowdim, coldim, nnz); - row = fflas_new(nnz); - for (index_t j = 0 ; j < rowdim ; ++j) { - for (index_t k = st[j] ; k < st[j+1] ; ++k) - row[k] = j ; - } - - if (s) { - // auto stats = sparse_details::getStat(F, row, col, dat, rowdim, coldim, nnz); - // std::cout << "Sparse Matrix statistics : " << std::endl; - // stats.print(); - std::cout << std::endl; - } - - auto x = FFLAS::fflas_new(F, coldim, blocksize, Alignment::CACHE_LINE); - auto y = FFLAS::fflas_new(F, rowdim, blocksize, Alignment::CACHE_LINE); - - for (size_t i = 0; i < coldim * blocksize; ++i) { - x[i] = 1; - } - - for (size_t i = 0; i < rowdim * blocksize; ++i) { - y[i] = 0; - } - - // auto coo = test_fspmm>(iter, F, row, col, dat, rowdim, coldim, nnz, - // blocksize, x, blocksize, 1, y, blocksize); - // cout << "COO : "; - // print_res(coo, iter, as); - - // auto coozo = test_fspmm>(iter, F, row, col, dat, rowdim, coldim, - // nnz, blocksize, x, blocksize, 1, y, blocksize); - // cout << "COO_ZO : "; - // print_res(coozo, iter, as); - auto csr = test_fspmm>(iter, F, row, col, dat, rowdim, coldim, nnz, - blocksize, x, blocksize, 1, y, blocksize); - cout << "CSR : "; - print_res(csr, iter, as, blocksize); - auto ell = test_fspmm>(iter, F, row, col, dat, rowdim, coldim, nnz, - blocksize, x, blocksize, 1, y, blocksize); - cout << "ELL : "; - print_res(ell, iter, as, blocksize); - auto ellzo = test_fspmm>(iter, F, row, col, dat, rowdim, coldim, nnz, - blocksize, x, blocksize, 1, y, blocksize); - cout << "ELL_ZO : "; - print_res(ellzo, iter, as, blocksize); - // auto csrzo = test_fspmm>(iter, F, row, col, dat, rowdim, coldim, - // nnz, blocksize, x, blocksize, 1, y, blocksize); - // cout << "CSR_ZO : "; - // print_res(csrzo, iter, as); - // auto ell = test_fspmm>(iter, F, row, col, dat, rowdim, coldim, nnz, - // blocksize, x, blocksize, 1, y, blocksize); - // cout << "ELL : "; - // print_res(ell, iter, as); - // auto ellzo = test_fspmm>(iter, F, row, col, dat, rowdim, coldim, - // nnz, blocksize, x, blocksize, 1, y, blocksize); - // cout << "ELL_ZO : "; - // print_res(ellzo, iter, as); - auto hybzo = test_fspmm>(iter, F, row, col, dat, rowdim, coldim, nnz, - blocksize, x, blocksize, 1, y, blocksize); - cout << "HYB_ZO : "; - print_res(hybzo, iter, as, blocksize); - auto csrhyb = test_fspmm>(iter, F, row, col, dat, rowdim, coldim, nnz, - blocksize, x, blocksize, 1, y, blocksize); - cout << "CSR_HYB : "; - print_res(csrhyb, iter, as, blocksize); - // for (size_t i = 0; i < 10*blocksize; ++i) { - // std::cout << y[i] << " "; - // } - // std::cout << std::endl; - - // ----------- - // Standard output for benchmark - Alexis Breust 2014/11/14 - - // std::cout << "Time: " << coo.first / double(iter) - // << " Gfops: " << (2*coo.second)/1000000000. / coo.first * double(iter); - // FFLAS::writeCommandString(std::cout, as) << std::endl; - - // std::cout << "Time: " << csr.first / double(iter) - // << " Gfops: " << (2*csr.second)/1000000000. / csr.first * double(iter); - // FFLAS::writeCommandString(std::cout, as) << std::endl; - fflas_delete(x); - fflas_delete(y); - return 0; -} -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/benchmarks/benchmark-fspmv.C b/deps/fflas-ffpack/benchmarks/benchmark-fspmv.C deleted file mode 100644 index 04a5755cc..000000000 --- a/deps/fflas-ffpack/benchmarks/benchmark-fspmv.C +++ /dev/null @@ -1,191 +0,0 @@ -/* Copyright (c) FFLAS-FFPACK - * Written by Bastien Vialla - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - */ - -#include "fflas-ffpack/fflas-ffpack-config.h" -#include -#include -#include -#include -#include - -#include "givaro/modular.h" -#include "givaro/modular-balanced.h" - -#include "fflas-ffpack/config-blas.h" -#include "fflas-ffpack/fflas/fflas.h" -#include "fflas-ffpack/fflas/fflas_sparse.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/args-parser.h" - -#ifdef __FFLASFFPACK_USE_OPENMP -typedef FFLAS::OMPTimer TTimer; -#else -typedef FFLAS::Timer TTimer; -#endif - -using namespace std; -using namespace FFLAS; - -template T from_string(std::string const &s) { - std::stringstream ss(s); - T result; - ss >> result; // TODO handle errors - return result; -} - - -template -std::pair test_fspmv(size_t iter, const Field &F, IndexT *row, IndexT *col, - typename Field::Element_ptr dat, index_t rowdim, index_t coldim, uint64_t nnz, - typename Field::Element_ptr x, typename Field::Element_ptr y, - typename Field::Element beta) { - MatT matrix; - sparse_init(F, matrix, row, col, dat, rowdim, coldim, nnz); - TTimer time; - time.clear(); - time.start(); - for (size_t i = 0; i < iter; ++i) - fspmv(F, matrix, x, 1, y); - time.stop(); - sparse_delete(matrix); - return make_pair(time.usertime(), matrix.nElements); -} - -template void print_res(pair &p, size_t iter, T as, int blocksize = 1) { - std::cout << "Time: " << p.first / double(iter) - << " Gfops: " << (2 * blocksize * p.second) / 1000000000. / p.first * double(iter); - FFLAS::writeCommandString(std::cout, as) << std::endl; -} - -int main(int argc, char **argv) { - - using Field = Givaro::Modular; - - size_t iter = 10; - Givaro::Integer q = 1009; - int s = 0; - std::string matrixFile = ""; - - Argument as[] = { { 'q', "-q Q", "Set the field characteristic (-1 for random).", TYPE_INTEGER, &q }, - { 'i', "-i R", "Set number of repetitions.", TYPE_INT, &iter }, - { 's', "-s S", "Compute and print matrix statistics.", TYPE_INT, &s }, - { 'f', "-f FILE", "Set matrix file.", TYPE_STR, &matrixFile }, - END_OF_ARGUMENTS }; - - // matrixFile = "matrix/cis.mk8-8.sms"; - // matrixFile = "matrix/GL7d17.sms"; - // matrixFile = "data/mat11.sms"; - - FFLAS::parseArguments(argc, argv, as); - - // cout << matrixFile << endl; - - Field F(q); - - index_t *row = nullptr, *col = nullptr; - typename Field::Element_ptr dat; - index_t rowdim = 0, coldim = 0; - uint64_t nnz; - - if ( (matrixFile.find(".sms") != std::string::npos) || (matrixFile.find(".smf") != std::string::npos)) { - index_t * st = nullptr ; - readSmsFormat(matrixFile, F, st, col, dat, rowdim, coldim, nnz); - row = fflas_new(nnz); - for (index_t j = 0 ; j < rowdim ; ++j) { - for (index_t k = st[j] ; k < st[j+1] ; ++k) - row[k] = j ; - } - } else if (matrixFile.find(".spr") != std::string::npos) { - readSprFormat(matrixFile, F, row, col, dat, rowdim, coldim, nnz); - } - - if (s) { - //auto stats = sparse_details::getStat(F, row, col, dat, rowdim, coldim, nnz); - //std::cout << "Sparse Matrix statistics : " << std::endl; - //stats.print(); - //std::cout << std::endl; - } - - auto x = FFLAS::fflas_new(F, coldim, Alignment::CACHE_LINE); - auto y = FFLAS::fflas_new(F, rowdim, Alignment::CACHE_LINE); - - for (size_t i = 0; i < coldim; ++i) { - x[i] = 1; - } - - for (size_t i = 0; i < rowdim; ++i) { - y[i] = 0; - } - - auto coo = - test_fspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "COO : "; - print_res(coo, iter, as); - auto coozo = - test_fspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "COO_ZO : "; - print_res(coozo, iter, as); - auto csr = - test_fspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "CSR : "; - print_res(csr, iter, as); - auto csrzo = - test_fspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "CSR_ZO : "; - print_res(csrzo, iter, as); - auto ell = - test_fspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "ELL : "; - print_res(ell, iter, as); - auto ellzo = - test_fspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "ELL_ZO : "; - print_res(ellzo, iter, as); - // auto ellsimd = test_fspmv>(iter, F, row, col, dat, rowdim, coldim, - // nnz, x, y, 1); - // cout << "ELL_simd : "; - // print_res(ellsimd, iter, as); - // auto ellsimdzo = test_fspmv>(iter, F, row, col, dat, rowdim, - // coldim, nnz, x, y, 1); - // cout << "ELL_simd_ZO : "; - // print_res(ellsimdzo, iter, as); - auto csrhyb = - test_fspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "CSR_HYB : "; - print_res(csrhyb, iter, as); - auto hybzo = - test_fspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "HYB_ZO : "; - print_res(hybzo, iter, as); - // ----------- - // Standard output for benchmark - Alexis Breust 2014/11/14 - - // std::cout << "Time: " << coo.first / double(iter) - // << " Gfops: " << (2*coo.second)/1000000000. / coo.first * double(iter); - // FFLAS::writeCommandString(std::cout, as) << std::endl; - - // std::cout << "Time: " << csr.first / double(iter) - // << " Gfops: " << (2*csr.second)/1000000000. / csr.first * double(iter); - // FFLAS::writeCommandString(std::cout, as) << std::endl; - return 0; -} -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/benchmarks/benchmark-pfspmv.C b/deps/fflas-ffpack/benchmarks/benchmark-pfspmv.C deleted file mode 100644 index 74d3c4b0a..000000000 --- a/deps/fflas-ffpack/benchmarks/benchmark-pfspmv.C +++ /dev/null @@ -1,167 +0,0 @@ -/* Copyright (c) FFLAS-FFPACK - * Written by Bastien Vialla - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - */ - -#include -#include -#include -#include -#include - -#include "fflas-ffpack/config-blas.h" -// #include "fflas-ffpac/field/modular-double.h" -#include "fflas-ffpack/fflas/fflas.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/args-parser.h" - -#ifdef __FFLASFFPACK_USE_OPENMP -typedef FFLAS::OMPTimer TTimer; -#else -typedef FFLAS::Timer TTimer; -#endif - -using namespace std; -using namespace FFLAS; - -template T from_string(std::string const &s) { - std::stringstream ss(s); - T result; - ss >> result; // TODO handle errors - return result; -} - - -template -std::pair test_pfspmv(size_t iter, const Field &F, IndexT *row, IndexT *col, - typename Field::Element_ptr dat, index_t rowdim, index_t coldim, uint64_t nnz, - typename Field::Element_ptr x, typename Field::Element_ptr y, - typename Field::Element beta) { - MatT matrix; - sparse_init(F, matrix, row, col, dat, rowdim, coldim, nnz); - TTimer time; - time.clear(); - time.start(); - for (size_t i = 0; i < iter; ++i) - pfspmv(F, matrix, x, 1, y); - time.stop(); - sparse_delete(matrix); - return make_pair(time.usertime(), matrix.nElements); -} - -template void print_res(pair &p, size_t iter, T as, int blocksize = 1) { - std::cout << "Time: " << p.first / double(iter) - << " Gfops: " << (2 * blocksize * p.second) / 1000000000. / p.first * double(iter); - FFLAS::writeCommandString(std::cout, as) << std::endl; -} - -int main(int argc, char **argv) { - - using Field = FFPACK::Modular; - using Element = typename Field::Element; - - size_t iter = 10; - int q = 1009; - std::string matrixFile = ""; - - Argument as[] = { { 'q', "-q Q", "Set the field characteristic (-1 for random).", TYPE_INT, &q }, - { 'i', "-i R", "Set number of repetitions.", TYPE_INT, &iter }, - { 'f', "-f FILE", "Set matrix file.", TYPE_STR, &matrixFile }, - END_OF_ARGUMENTS }; - - matrixFile = "matrix/cis.mk8-8.sms"; - // matrixFile = "matrix/GL7d17.sms"; - // matrixFile = "data/mat11.sms"; - // cout << matrixFile << endl; - - FFLAS::parseArguments(argc, argv, as); - - Field F(q); - - index_t *row = nullptr, *col = nullptr; - typename Field::Element_ptr dat; - index_t rowdim, coldim; - uint64_t nnz; - - if (matrixFile.find(".sms") != std::string::npos) { - readSmsFormat(matrixFile, F, row, col, dat, rowdim, coldim, nnz); - } else if (matrixFile.find(".spr") != std::string::npos) { - readSprFormat(matrixFile, F, row, col, dat, rowdim, coldim, nnz); - } - - if (s) { - auto stats = sparse_details::getStat(F, row, col, dat, rowdim, coldim, nnz); - std::cout << "Sparse Matrix statistics : " << std::endl; - stats.print(); - std::cout << std::endl; - } - - auto x = FFLAS::fflas_new(F, coldim, Alignment::CACHE_LINE); - auto y = FFLAS::fflas_new(F, rowdim, Alignment::CACHE_LINE); - - for (size_t i = 0; i < coldim; ++i) { - x[i] = 1; - } - - for (size_t i = 0; i < rowdim; ++i) { - y[i] = 0; - } - - auto csr = - test_pfspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "CSR : "; - print_res(csr, iter, as); - auto csrzo = - test_pfspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "CSR_ZO : "; - print_res(csrzo, iter, as); - auto ell = - test_pfspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "ELL : "; - print_res(ell, iter, as); - auto ellzo = - test_pfspmv>(iter, F, row, col, dat, rowdim, coldim, nnz, x, y, 1); - cout << "ELL_ZO : "; - print_res(ellzo, iter, as); - auto ellsimd = test_pfspmv>(iter, F, row, col, dat, rowdim, coldim, - nnz, x, y, 1); - cout << "ELL_simd : "; - print_res(ellsimd, iter, as); - auto ellsimdzo = test_pfspmv>(iter, F, row, col, dat, rowdim, - coldim, nnz, x, y, 1); - cout << "ELL_simd_ZO : "; - print_res(ellsimdzo, iter, as); - // auto csrhyb = test_fspmv>(iter, F, row, col, dat, rowdim, coldim, - // nnz, x, y, 1); - // cout << "CSR_HYB : "; - // print_res(csrhyb, iter, as); - // ----------- - // Standard output for benchmark - Alexis Breust 2014/11/14 - - // std::cout << "Time: " << coo.first / double(iter) - // << " Gfops: " << (2*coo.second)/1000000000. / coo.first * double(iter); - // FFLAS::writeCommandString(std::cout, as) << std::endl; - - // std::cout << "Time: " << csr.first / double(iter) - // << " Gfops: " << (2*csr.second)/1000000000. / csr.first * double(iter); - // FFLAS::writeCommandString(std::cout, as) << std::endl; - return 0; -} -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/benchmarks/benchmark-qscomp.C b/deps/fflas-ffpack/benchmarks/benchmark-qscomp.C deleted file mode 100644 index 904f70fad..000000000 --- a/deps/fflas-ffpack/benchmarks/benchmark-qscomp.C +++ /dev/null @@ -1,219 +0,0 @@ -/* Copyright (c) FFLAS-FFPACK - * Written by Hippolyte Signargout - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - */ - -// Template from benchmark-sss.C - -#define __FFLASFFPACK_OPENBLAS_NT_ALREADY_SET 1 - -#include "fflas-ffpack/fflas-ffpack-config.h" -#include -#include - -#include "fflas-ffpack/fflas-ffpack.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/test-utils.h" -#include "fflas-ffpack/utils/fflas_randommatrix.h" -#include "fflas-ffpack/utils/fflas_io.h" -#include "fflas-ffpack/utils/args-parser.h" - -using namespace std; -using namespace FFLAS; -using namespace FFPACK; - -template -void run_with_field(int q, size_t n, size_t m, size_t s, size_t r, size_t iter, uint64_t seed){ - Field F(q); - typedef typename Field::Element_ptr Element_ptr; - FFLAS::Timer chrono; - size_t lda=n; - size_t ldts = m; - size_t rs = n%s; // Size of the partial block - size_t ls = (rs)? rs: s; // Size of the last block - - double time_gens = 0, time_cbxtss =0; - Element_ptr A = FFLAS::fflas_new (F, n, n); - Element_ptr A2 = FFLAS::fflas_new (F, n, n); - Element_ptr B = FFLAS::fflas_new (F, n, n); - Element_ptr B2 = FFLAS::fflas_new (F, n, n); - Element_ptr TSS = FFLAS::fflas_new (F, n, m); - Element_ptr D = fflas_new (F, n, s); - Element_ptr P = fflas_new (F, n - s, s); - Element_ptr Q = fflas_new (F, n - ls, s); - Element_ptr R = fflas_new (F, ((n > (s + ls))? (n - s - ls): 0), s); - Element_ptr U = fflas_new (F, n - ls, s); - Element_ptr V = fflas_new (F, n - ls, s); - Element_ptr W = fflas_new (F, ((n > (s + ls))? (n - s - ls): 0), s); - Element_ptr Res = fflas_new(F, n, m); // Inadequate name - size_t * p = FFLAS::fflas_new (n); - for (size_t i = 0; i < ceil(n/2.); i++) - { - p[i] = n - i - 1; - } - - double time_genb = 0, time_cbxtsb =0; - Element_ptr H = FFLAS::fflas_new (F, n, 1); - Element_ptr TSB = FFLAS::fflas_new (F, n, m); - size_t * pa = fflas_new (n); - size_t * qa = fflas_new (n); - Element_ptr L = fflas_new(F,n,n); - Element_ptr Ua = fflas_new(F,n,n); - Element_ptr Xu = fflas_new(F, 2*s, n); - size_t * Ku = fflas_new (r+1); - size_t * Mu = fflas_new (n); - size_t * Tu = fflas_new(r); - Element_ptr Xl = fflas_new(F, n, 2*s); - size_t * Kl = fflas_new (r+1); - size_t * Ml = fflas_new (n); - size_t * Tl = fflas_new(r); - size_t * pb = fflas_new (n); - size_t * qb = fflas_new (n); - Element_ptr Lb= fflas_new(F,n,n); - Element_ptr Ub= fflas_new(F,n,n); - Element_ptr Xub= fflas_new(F, 2*s, n); - size_t * Kub= fflas_new (r+1); - size_t * Mub= fflas_new (n); - size_t * Tub= fflas_new(r); - Element_ptr Xlb= fflas_new(F, n, 2*s); - size_t * Klb= fflas_new (r+1); - size_t * Mlb= fflas_new (n); - size_t * Tlb= fflas_new(r); - size_t r2; - size_t r3; - Element_ptr CBruhat = fflas_new(F, n, m); - - for (size_t i=0;i >(q, n, m, order, rank, iter, seed); - } - } - std::cout << "( "; - FFLAS::writeCommandString(std::cout, as) << ")" << std::endl; - return 0; -} - -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/benchmarks/benchmark-sss.C b/deps/fflas-ffpack/benchmarks/benchmark-sss.C deleted file mode 100644 index 317edb073..000000000 --- a/deps/fflas-ffpack/benchmarks/benchmark-sss.C +++ /dev/null @@ -1,145 +0,0 @@ -/* Copyright (c) FFLAS-FFPACK - * Written by Hippolyte Signargout - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - */ - -// Template from benchmark-quasisep.C - -#define __FFLASFFPACK_OPENBLAS_NT_ALREADY_SET 1 - -#include "fflas-ffpack/fflas-ffpack-config.h" -#include -#include - -#include "fflas-ffpack/fflas-ffpack.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/test-utils.h" -#include "fflas-ffpack/utils/fflas_randommatrix.h" -#include "fflas-ffpack/utils/fflas_io.h" -#include "fflas-ffpack/utils/args-parser.h" - - -using namespace std; -using namespace FFLAS; -using namespace FFPACK; - -template -void run_with_field(int q, size_t n, size_t m, size_t s, size_t r, size_t iter, uint64_t seed){ - - Field F(q); - typedef typename Field::Element_ptr Element_ptr; - - FFLAS::Timer chrono; - Element_ptr A, B, TS; - - double time_gen = 0, time_cbxts =0; - for (size_t i=0;i (n); - for (size_t i = 0; i < ceil(n/2.); i++) - { - p[i] = n - i - 1; - } - applyP (F, FFLAS::FflasLeft, FFLAS::FflasNoTrans, n, 0, ceil(n/2.), A, n, p); - applyP (F, FFLAS::FflasRight, FFLAS::FflasNoTrans, n, 0, ceil(n/2.), B, n, p); - faddin (F, n, n, B, n, A, n); - RandomMatrix(F, n, m, TS, ldts, G); - - size_t rs = n%s; // Size of the partial block - size_t ls = (rs)? rs: s; // Size of the last block - - Element_ptr D = fflas_new (F, n, s); - Element_ptr P = fflas_new (F, n - s, s); - Element_ptr Q = fflas_new (F, n - ls, s); - Element_ptr R = fflas_new (F, ((n > (s + ls))? (n - s - ls): 0), s); - Element_ptr U = fflas_new (F, n - ls, s); - Element_ptr V = fflas_new (F, n - ls, s); - Element_ptr W = fflas_new (F, ((n > (s + ls))? (n - s - ls): 0), s); - - chrono.clear(); - chrono.start(); - DenseToSSS (F, n, s, P, s, Q, s, R, s, U, s, V, s, W, s, D, s, A, n); - chrono.stop(); - - time_gen+=chrono.usertime(); - - - Element_ptr Res = fflas_new(F, n, m); // Inadequate name - - chrono.clear(); - chrono.start(); - productSSSxTS(F, n, m, s, F.one, P, s, Q, s, R, s, U, s, V, s, W, s, - D, s, TS, m, F.zero, Res, m); - chrono.stop(); - - time_cbxts += chrono.usertime(); - FFLAS::fflas_delete(A, D, P, Q, R, U, V, W, B, p); // Could be done once for all iters - FFLAS::fflas_delete(TS, Res); - } - // ----------- - // Standard output for benchmark - Alexis Breust 2014/11/14 - std::cout << "Time: " << (time_gen + time_cbxts) / double(iter) - << " Gfops: Irrelevant Specific times: " << time_gen / double(iter) - <<" (for construction), " << time_cbxts / double(iter)<<" (for CB x TS)" ; -} - -int main(int argc, char** argv) { - -#ifdef __FFLASFFPACK_OPENBLAS_NUM_THREADS - openblas_set_num_threads(__FFLASFFPACK_OPENBLAS_NUM_THREADS); -#endif - - size_t iter = 10; - int q = 131071; - size_t n = 2167; - size_t m = 455; - size_t t = 236; - size_t r = 1100; - uint64_t seed = FFLAS::getSeed(); - - Argument as[] = { - { 'q', "-q Q", "Set the field characteristic (-1 for the ring ZZ).", TYPE_INT , &q }, - { 'n', "-n N", "Set the order of the square matrix A.", TYPE_INT , &n }, - { 'm', "-m M", "Set the column dimension of n x m RHS matrix B.", TYPE_INT , &m }, - { 't', "-t T", "Set the quasiseparability order of A.", TYPE_INT , &t }, - { 'r', "-r R", "Set the rank of each upper/lower triangular part of A.", TYPE_INT , &r }, - { 'i', "-i R", "Set number of repetitions.", TYPE_INT , &iter }, - { 's', "-s S", "Sets seed.", TYPE_INT , &seed }, - END_OF_ARGUMENTS - }; - - FFLAS::parseArguments(argc,argv,as); - - run_with_field >(q, n, m, t, r, iter, seed); - - std::cout << "( "; - FFLAS::writeCommandString(std::cout, as) << ")" << std::endl; - return 0; -} - -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/benchmarks/files/mat1916-1916x1916-195985.smf.gz b/deps/fflas-ffpack/benchmarks/files/mat1916-1916x1916-195985.smf.gz deleted file mode 100644 index 82a13e9c2c98dfdf3a191a814f48b8fffd6cb6cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541753 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

Myp&NrO&m)}u$9^Oe~Mh9y$Gio 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

-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

*6*sOi}iv)~YAu!@ec$T(RPUf52e{3CO@ zW-GM^J@gF`qQX=%B8LG;jgu&f0o1YL|Vf z6gI5&3Q05f%Eqergb{gbsjTQ!5zFY(aNmmzq1wsBg?qblAWVZ=T4S;C!!%%OBJL4X zPhzWcEB<$;)9~*?g|Yew_e2%mkC}|}KJq@h7OjI`W9bnrJNF1OeCV+)2ff#aRQBl| zLOnAk&VX3|5m=%bh8dzX9D3%q>rrRqjP*0a9pb$bojZxB6yEnqaHvXc7 z`xo{RBasHTcYC1~So==oJ(nlNvgci>Qz{0?U6GYME$Q2%SdGvb%zCmSH-740X&bc^~Tmp zz)A3GzC8E#o{3o2{OFd+gi0Ys^xnjodUWMJUd|{Py~ZR7efOhd6iXF4kD_Xkg?K`w z(Qe-EZAj&9ksF@2_xDC|Do?>IJFuG!W2)J#=g*s42eicfG#7b=jXuhbQ?z_^Lf$*f zc*=Ee9H)%z0)X`;Pndk>motChi4|-3Hi{-*3`aTF?eXUJ{Hq?Pv8$K9nz6^*-1Dz_ zY{+hr!J-+YAQiW1tjhrU$iGQKAZp}@M*w8>86EY7nV6ifhJ*kkUI!9QAS#6_>ThiW zUnpF=_Ck-xLRGT<3_rlYEn?~DPayjL0uht-h9d(E+FMRyH&8(wuPyW~kb5iIq}`!C zte*Q{q?0}czg$mkt*%e+Rmt?CvA9NNuR84miECqi2me&Ze_3R6eaxZqCFIyxZ|XLK z8zvB+_x*Td71^IS<>Tq4s^TY}7vbaieO@5>TfSoxyosogn8~XI0cupg-FQC`W~gRK z6W~hq^dMQ7lX0&4N^gKWPm2p{YH$OL_~a7dF<3=osK&Y+)AHHnW%_mACFE{TB!vf7 ziD&!S$4T9qWXDToR1OpwV_1KKP6tZRN1D({js{E4d%Cz|#C@7Za3i2dMn)Q>$#Xt@ z^gXDL0rxSn>a!EpT?MbvC@S7{A|n;P2?al^ON^8=@i=Y2iLo{ECRm%eAFfioSmb8$R}+KNQ8V5{NdS-^F6g8_nBF2My@4PLsA~Ie4xh zqa6PW{HXm$nCA302VW~(GKes(yU~&Q$a}$1=1vS4qJ5r~vS)}gI#Gz6OoQ2ToG%7x zZKf6*Qb(~Jw-4V^Ts%$PXFhzuAmRKxW?*aX9o<^PcFh3^(XrX+v`Bz@k^`~ic5wen z198FZg`)6;=M4Vl=;sT}8}{7opqow7tpN0Qrg`jgN(exWbqw;#dff+F*ivshv5k5=;`F!$8qqGBKeb(}~Vb9?5K zwA5sH4NrpcC_`YK@u;cfd-z7qZl3fP6_iX}gd)vAY~W%>MrY}eLpATZ)x!Qu2xG8p zICBgT5!xrL9M;*ts^+2N&n3kHWG<3FOMFROk*dk`dl3?d@uGJi(o*CdVohNOn{Yh2 z(+NDOfIf<3aHvVRQxu#k@-Z_x;DqFmrgNV>XW2x2y~2^=Qutn;tu$x#yAkQl24b zZhu`RXgU0h!CWW-W2HYBVw0!@g$SSrNpyBBj3n=Gb%RMbo0&ufd73egIZ}h<^S24|HN@5qd1hhlnYl_Ctu6d*%*T#ZI*- z7zz!=fW9jBs~U#DDO;q;)(0E^#Db8=SUNnNok_1$M8kV30fXfl;&0v^#Zg64v=?}-2O zs9>M&SLh}|9DI1mn^?=Om{Ym9dN|><71XMUdk+ss2Qi2~#3-ES#wggxLy(EKKM6l4b?5GPMN~xY3=m6?OtoC=oa!Q)uXb zZ|~j*b$+@B`C=G)$XN$`fj%;n9r4w1fRBMYIqqqmS2<9Z*sBhFb7Ts&pWcYlekZs& zWz@p(-rfIS3%926NP8P|4PL6%UCM;vD@c9SWKuocrbZa$StO~M)^Dlj7#OS9#a-PJ znA2CN9m#ypsl09XU1Hla+R2nWk%kl7JwY6c;ibmJiKm%WeMmhb5gdEWyP~h%!(H|) zZJ+;{r&(d|sI(orb+7K~j?SJuXWT%8!>TL8tity`lI z5=eq2!99fF?k<4@fNAbIG)7dMfUjc@E8zi~wc>f6f`E6CULYY^JFS zcBfUoGdD?OOlg%*Z`zq?5XBX|Ltj!A#J*nvhfU)<#G!!~P<$sW%RDvfZ@-TZk4LsJ zZbft#C6qX5hWf;!3#D>wJqta;3DYFPUuV?32@!ZG?HnVyP1SzwiN9`9>9N{Ka4NRQ zaI*J2U?J=HT_1!7Vrw6L33JUoI`N;7R@i8{SMtuy84tjF4K+Ad#t^K~))kV4&k9^fMwD)Rs@!Ch22z3@;>aucuTl2{{B=%Z=yU#i#+I{BeBp(A) z(Lv|~(tn1K6BGjj>5`v`T9NGNec?CeiBNfG=I4x}%Ux8BxPCaC`$pHVAmU6cG~;;^ z)p~)9{>hJ588bc+CCGdx&BgV8?l*OUBX!)bq4k-Ru`O6@y8PRDQOg)FtyB7s94#;V z?6W=wu{P(h&-qS?sfQr>gw*}M#gW0s-{4>4!99QtW=PA|iIWp$&+CC5xLg#j=iS;L ztm=tw6kJ7ZU3sDxJSAZG3P=`?+e({7A7x=k&#$yH8+f*jy*&}PjNMOIp*=44#hw<) z?d-K*J-gGIwVk}y&Uf}z%<6gKoYiipt~zqz87bSnF?3sln1uKcWWK=v-6LLi2E=X< zT%=qQU8|Cxu9o}|7bxm?p`!dm*^A2cvRnJfk9t?L+ytwe=W<{${wOffIXZ)n3fLtd z8+CqhP2qQ?d&3My)TVmIPBVblnS7`l=1F(gwX^HTfndVw{htBkWU|4WDQl9949a0L zhOy!EpAPOaicqQj65lg+oSAneq+dIkT88lro2U7h#+{R05=VBsF>7wD1-nAlYSY zbH;o6Zr2Q*fW!yC+2L$nzvOxAWVJw2doz>n;uV4~#Il1}Va4L?`1Z3syjnZgTwfRMzt-2VXlA{4(IqPgWagaJXYup^?LEB~-$ zwqp45(QJp4Ug5N8coy8(zVPM74w>wTEHrD7pZXuu0M*T!llHQ(W7mM{#GXDO+>p<0 zRR0$+Q2C_7qK!_SssGV{+P6Vh6@FIXZh38-ht6E1m*UW;=3m$6nw>F0hR>}us`>Z? z-??TP%Nt^5hqO0}>Uyy&$MjPSm}4}L-FR;0Nf${|PGnbbz(}?)4=l8f4>Z~^%prO6 z*RtyDhw(n6s{x|LX7BeG&H)Nkl6RxNzPay_Hq!)CXgK#UJ8zcdV@q{5;X53@Kz@po zHAFCQs$USp-*eL`vf7Kaxb_vjY|&lsl(X(C$@vQ(7V66Ovm%8!LDzN?{=-@)0GGp4 z55#0IGB#OpS;1Esls6+7;cgFjw-waW1mH8Tlg`xzz#luNM}FwuNjaMMr|?cEQQ7F7t5qlON?sE_G;;=>SwbYy0aA6 z`WV4w&)hi5aFbL*05+&=s#DKGkC{XF_^+{R&URh_Wlorch zhFsb=`ToqK>;9Ac&+NbH4Q&tiCDQ=W`B)?S9y-Np$My-C+SpBPkDg;_QJH-4`ZG7a zdnj)zh*5Jf^stn9WX*{$O_?P2S8C}r28Ua_k?hp&vm}1q3QCJJ#i=g^w&BqaL$oBI z61IhckaL>VratEqmVarUB^SABG#&BEocmoUDVa)t!n#@DIwz>6N2UsHGAN6qJFCaO z?pF`bjU$#XF)t$n)G$%OdwUp^Dpp7N|F=6kgBK+|L`rvx4Sgbw#7>IDl?8mA zJGKEw-vJ>WSCHGSJ!fGL(I`d_17YyhTPHf3o_43k#c)4C=agC%eIIu0{|JQb$U{vy zxCTD&u>WTO5>d)qU;hnvG*V;Z<(w;FPxe)o{&(;?T@T1%AKqa;1OB;w=Ji*|{SK$2 z4)x4In7nkQ9gqG4_)_v3JeDr8NzhtmX%f~?wMf1EhT9m})_>|IqF)Ug3PRD6{jT|Q zNf;4_<>G_?ZSQ-aQ5*3Np4mDJYT$?RJaD_%5()&PnxWF<A&hwL=HQp_24f%6{%vV zSZ7j~c>uKIH742r32cseq`r0h+F=qw<1FczmHOG*l)u>eBrOmN&q) zE<{#Z0ZEhpG@seT!v*{WQrBUoi_Ckx*&aQWu=q0~NVEQo)4wAZx%cj2!LOResH#4# zyF2LbPv<~O(V^qZ-OvLlV$pGGO+f)+hYRXvUrj70VKcDG(jsp}CClwqqCDIG z(%k_>LQG3~yN9$eq(|kkGvxyaSLY{n%X4PSW|k0A-lLNCY2y%_9m}oDsA;%4CVO<;Dmw4Ev?Mf zrnwj?;_--F74PZBjF*kn6FX024*hNUTxCtFy3_+whwH<_g1#^8%};H*u|byiB@9uoF?O5*3c(K_ItzeL2098PM<{a{XS;AFvR>3B0RPcPW8|fMtp4mCtPv& zY_m!s_0q%B#at$wGdz4uyK_H7y_xA{dTMd~Ad5HeXYMLt{?5=DLn=aEHK*RjVh=O~5k{ZUD9 zaW4ha^ka&oRs)Q9i$_t?I_1x#ID8(+FBD1ktC|`H={USNLNW90E`x3)zAvdJIr)ONoyTHd&c{Rf zGbbiz_1n6Ye-69O)uxzx;h*nB8n9uX`;G&Rk6&@)TMudl}H6vu)fX)3V1q=-ed90*>(ivYFo&wH zvuLyw^OeMGv8^pXSBgM^P`<6Stc3KU;i`{6-PQI^(~o%&YclRN?d6VhT{8BvSvb2} z_W@7%{rzDc81c{WXNDQ~oLAhQW}vk%N#_7bxsG$rO^^7DI2uIP@8EGDfCp}ApwuoWUx zr2x76?m~0?0yPbe;@~r;IbWa7g^a%>r67Q)$gsjTj?i0Cqq3~m82e|9<&~y zoUwhM93`2AUj;~jH)p8Bc+tQ%Q3cne@+F=J%rv`TU=GiQ9h$Hc0c;o4+{Smm2TVjZ z+Uig?%j?q(zb3hVlx18`fTo?0@`v)_lTT`Z>Yad9gZchR4YzG;%@fayS(gJ(lgHo_ z*XfGcT^XOQ5=W)j`CGh$HulW&Z)z*U1y?M8;i-0B(*Gchj*s)4axt$?{$OrK|;0uE@m8`%Pk*9)m0C3eDyR-E%n z1Qb^K7Q4mzPEICOPUveSL~6ICaaWDI?_`q}?wbqd`fJZw_HSWs`QWjEN?7FazTv1_ z!U;pvg5hX`lxrLjY%**pIx;J)QsCCpr*@4l;rM-v_G^YZ39GDqi7IVC*yJ^Lxl?bx z2E&Td#8GXexAC`>8C*b;q{E4T{pBANe_z!X@68$5&%hAigEpc@$OkC$heS6Jy zidUf>T~7PwJ&m6iu=L6EokrM=K%?in44yXAS6a7T>z=kqio7-@=W$q1phEXxBTmVK z5yQ!SA{~)K=@440g+L$xYdUK}p9gL6+BExq`=jyMVUGoMMfzf5Et@wi)Q( z9PGazyW^wN;k~DLfQ_sFP5`M_gtswGYq=Y-o6bM&`OGG}Vw3`o2+^IxkYa}rBsbuP z4!t*>TkZK4G_)^AhU%JDw&h&!-=Uj|)Jp@R@!*9Gt~jz5hD5$$1mZ3DlH=A_&N|b) zrMpDdF6McANJTt^*Xbu&Cqc&ynY_>?{OBqNB9;2E8V9A+EPD^P=~QKHutsn>69V$2 z&l9LK@<^XAufDtW7yeMY8SjZ&{Ce4SIRShRrNMRh%_DCmJR62^V{sb(v4FaY<%Q}N z#3B~UB?b~e993+c0IC|?dx#yX>?#pZy!!q=PQkgAny=J^(B?Th9X=9vD1ywg&xciS z1!tWRt|d%j6*e?3KcwV#fQHXGaIR>MnJ8-jEC?6uo}>R67}V}hSh#DBRr__K%-VG8 zajh1fm=Md_H2!VGEW0LgTbi}WG@J9+358dQX^OLqsv*{UB2#h*%6;5JF-QLL&!B<* zE7sZa*T&+U;+e`GJ*nSf%(iXH8}6il3Xa^Je3HQ{*7a`=h8NXjsh)R#z1hz4VX9uS z8szrntVM#-JF<`~NaY>d|0m6GGO3~0Qs~4|vIIcvvh+&fk&Dg4pFVConQA>LY(4RA z{c|WOJy%Sfqx+=z&d#@vaX+XbZJC zSP1#JjW9$-W;!tHf|GC0yZ~?qn!yRXiNwsKCtBmRo(dE{)p=GODpBBs6L8t={UUb<6eNX9ge| zwrDVvm_9Tl_;7BBy3$*t3hBe)BMjrl*7&a%!CRs9t9Kktz;XWFL74k%!~x~IJ{%Fk z7Vd+HA>uHzcNqNN)WG8uRd?24>y7lpOGSMD=T+sjV|`v#N)m&?3W}`vN3=L%8((;< zqEpoRWD-L2vUbNlIhs*F5Z0Rt6i(w7W8981{0jXud4_vq<&I{myd}?EFnUImxkXPu z=7Os_Q`81z=!___D~?rzRcD5SeivEgCTDx*-e${!$g50JN}nJ9x{JA=J$5~vD68U1 zQAw7eliAeXLv3<>Jya)nB7%^voP<&E>oVJtF;w{2D9!rKuam^LloY)|;&yu9lH>ns znn`Ysi)^~`-``SECC3L*82xZDdJ_O#N!2geju_X_=Y`lYq`4+32+fXv(Q!XFGfIe8 zr7(&ON-)&>KbsgxKLnQ(UL}09u^|(g$`QR|M}mf8AKtQ)h!wS1BW!D(zTSUqL{+8m zVLiAHN6Gi>THNz`Wx@m5A(POhd!@t|Luv8&wuf(krsKdY(SsCICI!M=$p)e4-c#=S zTu-07F_~GzwoPw&t}(M;NAqPYvV*)}F7Y^aqcMxy+H`YsbZ{uE*V5EZ{TvcAol~G@ zt7Tp^Mr!(CHvg#xFpo&@Cn#=jbUkWh;8iHLcI(V%d}97wYbvO|6a%a~qZ#jr zlRfX3lDpG{7K@OPo}B0yr`7Et0tIE{cxCievg{ZGv#AquVw~sa6RjPw; zO>3Z!LKyk9)ts9hs>X+liQ|4^Ga3e z^r@N1-LodSZ1V}zd<}YnVr7JGMQ!7;z8v0@_r#i$WrW*Ylb^&;=0KE>#ie~)5<$?0 z6|z98%82*x%Bu(^kK+)=$gtXeJ& zPzsn?dDsh*_;bc%K#>Qh=sbX-aUJ2z?{s(^pY76RFk@2|l{aluBkN)1fMC?z%!B#8 zWC4VdqA{q=V?iSC*ov?LoD&;tv5gv&gLL#=fVqGqHe}^?z<5JdI@?8exUjf^Pw?2~ zRE~dgtZvY4JBDFa8I~njbtbh_Kdo({<|3WeH#M@S55o14d zv;ooFv-;RHW}8U>&37rA!>Bf@AP1VPec(Ft9em7X^{QvhZULN@C2x%T_}u^GZqKJt z&_?gx(H^)dlY0fB!zA*NaYErjS8`3V3b91kMpnbo&rmqC7$$OYST^50{v=fcs6T=i z;^{dG*Rb^_g0F$aD<(ez&V{gaeGwco&vIel7IPLE`Vv>-6^&hg&gL19?AiGn5602+ zA6EoT`oJ+VEK+5cBZN>}fDB=f~C(a?B8aeuZ`$ zS-`{IBI5OrvT%MyzGY-orgl7|Y0RXtRxI*yRsq@b4I(DkK@JxO5|_>b{4rX*(}f%% z6U^HM)R~eaQh)!wA#AUnXa?uyW@vXk*Jm%J8{V@;-o}ft+jF$VP<{EOgE?Nl^SiTk z&|Ojec(Z$e*gYUI+;}aPA=nS`Iu+*GXH_7H6ri$_&sfes$EBPgHq&$0S~6K5ysRS6rHpx}j5)d$yf;kXA~)V)dl}#} zNF3h{h5xJ%@@gNX_lqd%4g`;!29%C-rh!kxb(xHY*K*jIP&r-s0}pCwa*sWIP|`&CH_`EX28)hz zC=k?5CWVQx{}heOux1Jfc2_~`nyjKLUi=(ULx%T4_Tk|e>%LSV*p!|0=zBls=RJzL z%}#Glx}@@yYiSYw9__-ZwFTjh=m3U(SCFdvv&6QFDfan8-}~V|@^{L4f&TA&pz7Jr z`+siUfo$VTx|=kDANBlbEu*rbdrtW8o5=7z!mVX5Z0H^n{(hNC_?vd2O83Hy8lla< zruqSa`lxs1sS{=D-f#9DZEAcQi01Z|tdN{|YiHX4D@%Y9+#ht~(?Nbz{k_(W(h0V< zuQ}Hg+~8z;UTo~#@YJ1TKUEgE0uQns?-4A1SmG6Y;Vvk2gttn+yU@OW8<&>L%~Ixe zZ+Ov33rfv@>fSQ6?cVFRq(0Yl8e+4k5=;$Rr+>W2Io2PSZsH!?U1Q?DO1gp_X3Z}< z_vW~0Gf3T_`NPI3z*Z{LiJzx1M8ui5!cLRan(Ga9feCVu>5LmE)H|G-Vz@X4JEhpD&B@?W71|3 z4%=Cp*6@@UR@Kq=(0~B-ojVNL9p~eLeWW6Z$K__^C>#nAO8@%(Q?QA~WD8Gkp;YoTumViZ9jXQo1L$Z^p z=fFiQAZreCL&gKNrR$fW!_Eu_Q(sLlPl|bJvtR4BdzwV_7=2vJQ5s~vjxp}rHK<*E zP=8vme@haj)sv042;^2mFx7Vpxmjr5Zz+)%&7vm&0=J1_2Kk>Yvl}q?2#cy^Uo-M0aUVTv#vx3Gz$D%`Iih zamTJ!qiDc8D8K%O)qHKTz%gQ(vNmI(Z zF)OEgo)d4tX~ddF(6@je_yX=a!QNN0C9pSKdqcE|&lT6?9VJ^ZbS(^Aq$W9udeWN1 z4?N$m<8z5je{W?-@T-rr`u%UrJb3viIqNibsm-~JKZDf6Z{vvMz z;C&*1EO?akBK#)RP8*MWeBb@C2cQjTCfAH$>xP)3=yFUHNai+f5yqez1L)Q&=@u*0 z_MPU#6oYfr_*%||O8{ppi`zs4CA&PR$H_=-Ex{enRn!l7wq4aIF!nAhodjxBo2+Mt$g*h1H0 z!6j%Gxbdb6D%Sedf_C<>V(C?~0aP!fal7zjwotOmg5t&?p*f(cEZJnI33~9NCRJ0! zy_@tsU|%-mcMIs#FDVHMi&>mrxd_N3?WQO0CkC1!Kp^?@%@CW@nuP6b;Kx+6*WKgZ zH1zXvplE>*d|UUz7x4E$D-TC$Nta=-tZE%DnrpNtAk_y8n z0>BF+2_~u$DqmMU*dV-pnc4|~%97MGSd9^>d8|u%tmOIz3?}g=r2+M&?STyysx#^G zXvN@t3s1G%1UJ2V&Qsozd*+jQwLM0H$-YPzLjyDabM6N_z%PPVUa$NMtTg`Gb^%e@%Um9la%^fa=e|(b6 zeil9$B@yt<%4vZW0X|DcmuJACI!|G3Z}Bd+8=COcs4q_ui=)74;(Z-7H%pG+^YTdA+)&KCi(5H;JHc)U*o9$r4E_l>Y6Jw1162o7DS5pOUzAE* zS8OsPc6cIm_1?3}P6rdWxRE`^G}jjpwJnf;F`46Zs?TE<=dRR8-w)kw`t4u`9neDM5v^J4!G|K;%d zQ|Gpeat+9|QPl3Y44J~z0m_LHT3q3i=l(C6K9jyL(RunGy3f0Do_9N~sw(kfxN5VIeP@u~%04 z*jdno8zs+txcn`0xTKMOWRJ5xj^BD;^{|0s|A)I8hR%MndwsELmvF7?iiSPSki)j$ zO`>qIbsJD21>-&jsu^@RQ!Jb^flVCd`voZ>vODc*;u`dsnD`N@OB*V;c=?zng{yyfP zL#$zw{C+87euzAuJd|k%(y=!FIo44G`hRT*ng~8rkyz(P=;>c-L++eUztUxzV3F;u=~aDwvcV*l?zp z8iAH9X}@;cBN2Bw>T0jk#9g{TsA4^{C~-)yTNsiz-V7nDaLkU$=`Bv&&F?Ly!Pmmw z&2L}UtfRG`c@m|mWY8%0JD8@Gd^Oppm7@NDQfni?{O&v%Xeh5QlPc`(Ond;E5G|_T z5kHXKYmqwT!Xw4cKCWQ+P8xg60DzO9#bfy*cnV$9$p1tXGyf+)_UP}269olvJo&r% zKVW|U#Gh9dpBR$&1E!fLkw0m^XIlQ1qQK-g%%FHUlt5zqDrew{D3DFdBYs0R(J%-k zBBF@}%`cB-#9VZujnibC`rxa{W@+X*6P-hL|6MdS-L6kG@vMlSKRT5b#h0Fqj$WD| zs$_wSLo_Sy7wZ(Cn`7}2pgBB4;K;sFQ>^7iJb6`ifYbw@SWB}t3Q6airQtuP)V{S; z4rWx-*tQOEG#IOfC34OQp*lrO2;WauFxq;y`Q8P8jLi19TYt}WZ?`poLhLX$X~^n} zlp^%3g{Ee+tj^7Nqo8NgpykF~u{pPIy`Tp)F;b)iW^o>lQJRmHoF%BFF%(7NVOPFB z_E=SKk@)pmFo&Z84Y`Vj>_7wf?DAU-Q-4nbuxExwlsOh_Fh1`aH`DMWxIKLzwVzGg z_e)yA?WSa-Y;YhKDd8|Gv3$J;jYAu5da?kU9#jA5k>v_O5fyx2v+$qd^>iV7Oq95^WQx zVO41dOxQ5ybJuT=;zAS3w0_HGIz+Q7BC&!Ux~*K)Eb~I`k4yAwG*YNI?`a(SA%E#+ z{#NV*mkpV#Ds4<0^uM47q>Ax=tZys3u)OaFg!ueV>dAJhf^xun6jmMXlE-E!69Ae@ z+g`?QK)5&%k8nrX1&--|<*=iHAdhQpijLWXbHGJ7*~n6X=i^@sJ4V+)CCYrEc8wyk z>xX_0WA+(Rc;45EAI2%=WGpfZ(1|7|M;Kr~$skJB`T|W6#pY1|8~+;x@L&xypvN*# z7UtGw3*+7Qb7ws^6H{*_y={7T!8UmP!NdjM(l$28Qz(tMTV2$I``&VA7{T@3j+(`Z zxTuLsJz03M8}O*+@$IEr>V$haGo?lRH~J{8l2pD>`(@&RTL@_NZYJGs#dsJQ-$m%P z&o#f@Y4f)N<&`m-WHmp90-Jn2=5C<*M84p)nc+=r?$Z$Ym$>>^@0A{RA4h&!l(k!D zej+dV0-PzX>=B$3>ns6`2IXM-Fk_lCW3nA8S|}s45ckEXm)FycAw1D|?t=SI6s)9o z<~vgzekM@%KezoMWYZyM(=ls$rjWBH)dHu1+*~Z2~_v4ee(Y& zoW35ETy1=2i~OPn?q9%(9YUlwxzegOp{t*45uX%VZCzQTV+lWj{l5dB?k|jqMx9^C z{{ZV)k5`Pxrk^F21>@fXPs|xq?AsENCp1boKC|N#*6I9upcG1*)Ro4;O8zSxEpxHb z@#D~omHL3-VT~^vZ`g3s>z?jC$uxHfd&Bf0vw>e%u&OetK1()h^JMci6B3v^xBs0c z8uUm^EykF1NG~;%FP*QrASW&;`Qtjtr=lyL4wzf^Wd?3<+eb7}JEm{Gk%V+>I;2R* z+$ulYgwe3=N+W#z04m&t#>-j)MwOG19A@{;g>Yas+!8vK$ALY|HPzk5fmVIk!vqxd zaf)3&i0sCotm@z*bzJDj^!YZ_s&uu{peY|Rz7Al?i+n!<@D268^I9!EiYx$pm4J&v(Ud$> zcHwu;GM3+>9Y3^%YRcP`5ccT+H}^s7zqecFFW$%axJkttn3#EabLZjkzVt^1$K{5)>H5)|9h<{Q5-!hLg9B^M|u>2WS z;sXz3Q3twX9Fm0{W@)Wje==909N>1Jcz^6Aj&O znBgu>%4eJTqUF`MTK{rb^VIXS`+A%J2C{C{Zo;D5HD&ku-T+O3-o{I*)tEeKoH`KS zYk9tW^`K5zy*ibS)`!le!O#AMg>UCUosjwAk;*ImL5cZ6pU`TlUw0JhCAqoc&uA)` zCcn`eQ7CI3+YcbHuVK`D<3+0F(lp{X%h%KXX(kB091#`>z14d8{FWal6-$|jpFc1i zvXwpt1RtvbfTdXj>8X|%Ash!52tyq1q6E&>KE?nnv(B_upz_Tg-~mtQKV(8XF*9CE zLbOM3F?&E_sWXdM{WtjEn;^_`lv;LpRr;6_P-@N&<+KeZ}hcxS`0`8^us54|z{fbbm?E(?z8iO{ygZOJ=UO+#!d zqR=ZGfcSd?T=XM!*h*bA&5$1P7$x;`KHat-^mN`1F_@YDmWzTdlRZfIz8! zM>t1Z&<(0Z`I`6tm7)ivB;@?{e4U;if^6S{4Ij~A=p=Z%QMaoPgir*QviGL;({5_#{98)I&7}t;n<{wCUYd^YqwG`()OWn!{@A)@j!~5id93W~G zevjL*|LJ-LwS4_>UAb${c%x@b|B>pVSrbj{f}(VO$HWLrw8 z-DiF~*;Rmx5m2*|`tG%8?kgqJ`0Z4;ud#)04@kU#9q#=tB)kpe(w7ixgkO-u{=0fn z9*7{>?Fs8>+QMjsIMCeAlWb-)6Ck@aEqHmE zPj~Mr1)eglPW7zW12oP>wujz&xQ^usMxB^y9uK|czx6(VNV_mi2s{wke#{pMnX;=> z#@|x4041EJT0-za&`GF6vQtJfAgykD^-Ad-_Stf;aLSNE)_X^vZ=e9)m#=4#H-k(xBq z+ADz58aA`mnE^6$T3FQ8zMSDukFr&=pzh6nwTb>E)n8W_Q)jZM{3WB&Sm54j2*ZLl zJn+g~k(wUqL)5y77rk{rtoqATHt`Y^O_v@jQ?m%SiL3$f>+5DzhpYl>0!w*)M19@M{MH&5(5OhfgD~)amtH+XZa6a)xq5$<&--xG(RA2L zU0fjarogJFVSniCEE#`R-%krExvn7W!g146&;jNNYxAlvm?Gfe^Gbg9I{4~Mtw+7p zmyo5i?X%JhrN=eEzC`e7jnX;<&`rZXZ_>PXu;wY*D4uIS+Ez_Dx758n2@os#(b6=% zG0A?cBR4e^5q1;b*IYy|>vXzx$XPhbPO0&>d=y_!8?z25iCb;V_PK9bzCU??yD5An z>Y6Jc37W-*Rt#eUe}W#?Wht7#MJ<-hX^v~tJfN)^4|M~9B6tB^tp$@p5+bkR#}gaY z%O)u<)rdtCUL@6*mBrn2&>&doIdFpE{>*r38^|oS-|le9&75iloPzU(=U4kV{q7oi z100@V!Lt2O2Gu~xAc@JRY69QEoAjU-`bjL6crxr6&%hCh)u~}DM~$W-)kD+MqK>zi z{MDObu@>^t!8ouOAS{NdG$~Hm8m)!oPt6AbS-N zEk34wC6zcT)qM^**iF}#@$tT2YZD(uQ|tNTE!y$pz`y~}((IFF&869OmTj*^PUm8& zIPswzK2RdmMd$2%oXxfd*{Q+i4`|O7O(=pe_Z^q5hMr=`iuO8mIV@Y@JoJCV5FCc= z**7!0NNb$SGk29!gJ=!#A=>4JlB!4^1^12x41-rT->4wbrMKqfJ~&>rktgeCjjy|# zU$yh!`WUu_<5&a3*lB3M4l1e^a7d{YdOgp_I^SsCk9Cs@l@H~RTf=4I!%l1&?qVrU zzRL6UqFSPcHLANc8@A)jL7I}cBNQ~_?$ui$gH-4Y%hjI<=+~co= z+CzXLb6TFZ;N6gJ%T<}6|F+N}8YWEW@Gjl?maF8+*zSmDjJeJXUJ;pxPyuJNm} zT6J-HR>vFB(BU?<%)fg;?C6Zn+ZaHkvHVWzYvJ_;|!idc;c32n8zS&q*^zC zA*~Vts#6x~{1boPlh;l}!I5YDuWl-@4qiL0rvas3k*dT)TH%k=9LE;ry~J*bZcA+! z_C7As2(r1U0M5@>_c~`Z^AQW?U$pxsNE}vv?4p(Lzux&TxckW?vGWE?)hPmu^snI6 zJSCCF<=EGWW9TI3i1eSpD>~)W2|hfq!MB$8KLS;QZ#nN@&;gqzF@%kpOip}J5m-Va zu?ax0?LeA?Zy+k2{SN@7P3?KlqfHU@)~>>6T{2mnF;ByOEXWTo9U6lTX3h`eiqA2g zu`3l5b!$7`UHo9xtlFt;;S)ofJB*XOh-^qtEzH;%S&8s<{`rpYNE28r>d7yWLOQHX zzER3&a=97j=e;viL3ObfLo}=Zgi4oBc&R)S^v<3;0wtxN&J=#@9NR*CNR; zO>Eswv+ zKSUct-Db>pfOjRi6;X6}=x26yB1{~xkUxsH&d7lu9x7@IIWWc8hW4za%IhYjPR!eI zXZOk8Upq@FT-tvnz^dMc5U9m4;H){%>1QF0nsaH^WK=>`Q5*o3y@J#Uc_T4ykyAR* z>P0{2UTP{-7D6BU@`*rGq&Cjfs76?eI|2*>RQjtsEE>J{k@ccuxjV9Kl+6$byV?b+ z06!Djydx&Uw=wQF*`Tgj&E-56095VVhc5*NyHW;%s#RRn3wu>Bx9SGnZs(QbZvVS4hsI7DC3lkt&O zlQhU815{1Fr3o_12sl$j?mKs>67A^@oZTvF0{m^SzT>pmD5QneM{#U?7w(2PAQbvH zfR0xo;FCbcWRJ(^gE#rdjxtQB)tcbVcc>zXl~l#~r~ zad>vRRyK6_#Cb`zL#-Z&`>f6vm}6&g_}EwfmKLlO+Zb!pTp$sXBql{ zlr~*sn<+d($1|atKGm&ES7*;kD|q=rU6SwoKlZW!YrW6FyN_z(?r6SK)@l9WTR9Csk>eGzstdysTwZ!14Mmv{f@Y1zM+qz{s~O;g9AK1cSQ6w z{;$A_6fTSNX(7k0S3TKKF5b4Zk&l^?m(f zzE4w_P-yDD`-)pm=@#NqJcP^s{P9TO2i~q9DS9I^WhOZ)l?rq-F7z``jPB`P@=A7g zee?7N^LEvz=*`QNS>>qIC=||8PwZjtIDY+y{%aOB_8w-iW8caRrmy22^led(9it1j zq`~bsW1rIt7t2u^1CD{7nNn&?uG!1qxOaN!pIlzEU>aSj3J|9hI4qWE(^bNU2iWpU~06ucpD>lgQ9C zt)vZg%(9*QJW|ZIuU3oHQj>3j7wZ^1u3e?0g6~9+YdPRHcO8><&gFEFy0_HAqkfoQ zUT53ZIa<*W+wbo&pinVru==^T`$^QPI>ydJ`?l7$%>Z@6V1C?lu2yIAmHGI+@#-T_ z3vE=d3u}%WDz`q*sV^6vrT$gV4)3@YrAh)$${0kTwW!1z@U%UheavNcQiX&Vv^``0 z)dX18l1dUMfp`^G3iHUb)v%`+1znzVM7nw@Q{lYiQiU&~*xzHAcNF{SE>T-FI`(>y zF&)g#bABfA(q}yEuthGw;=qWpD(`Q9pOutri@|R7qg#5cwzn^}mjM~*Jq&~HDBMUW zTuLaMNhlmk*llK-_RuZAZZ|mh3*xET#Arvw=C$oj_Ah1|iOH@XeGf|9lEBb3{Xr}3 zkQMYmQv9!ElS5WqvBMTnX6>-m*J2Tdyr5wFrGUGAoKOvt&QA0IDQfomW9)L@Wu8FC z5(it^@2l{Q&YfXrxN4B_3HO9__FI!*aqw!#snheWWynb779%lTUPOmjj0QP~;Aze! zkniW79=?td4imW+d`!b5W;x$_6FD4I=#O`rY`MXRr#bHmgvESUdah1-7F&fDVO@j% zByGxRO1tv0)iqwXMIoa&Bm#V^B~cTEkAfPbeejuPxu=jx9$&9OV(FmzxGU)Bu^ z5*nj8x-K;(7n%+QVeC~-rTo=|{WJUGHv^vbF3Oq%kK<}waiZGDaesEX+dMOhxwfqWh?N8`^tbGhuhx>}b z|4T6GGSK@sO(65Hfllr7dF1o9F~%%Cy&;z|Sopf1DiifYNoogo_?7$z0)}`@WQwlO z;$=FYl81>%7#OXm-wvM{0%E%_-}-Nlthcxo6(R@nhOhw9kLZ#|<$bkNtd7UMSJ z>?|e*I=fXGd40j*3UZKu|L+}k|2rzcw+jCW+I4XK$h2~@4o9_z(PR=;YB6_&v15R$J z+R8d}Reuk0)kJ6EZq^#VjdgME;*1$ZuIL_g;9`dMQ5R^ z-UJ=KbX!5CFEgJH z5xMsF)72ve`%ofnRjV8XEPZbyZU)oG)-%(^l3yRkssQx{)Kp@`26Sk{PaSy*Bf&+H zXpXwQkVGaV_`*mkvbAJMeumIZX0FXovso;xgQjD!5-cG?CWc4wowgyt&MMD_rWUqNII($h4jZI=9Pu&zJ)TLd;RSDz=#LuYkM`p| zHImR&!_i#SQB|GLRGq?T2SA4_tbR=4+9|o$D*FV4l(gJvFOPA{y?BcoVLH{ED8do8 zfu!Yv#k*-bn^i2z=}5v0$|4KOt56>^YtP-NA`FW7A!O@ZQXbM`nbxX3ytk^v`!_|O z?ZA{8^Fb-pKy1EUIG;R1ee0MFL^8xB_(w4n_}f(YH#tg|l~?NNWL4~MpuV?M;^a{$ zUntKr-o{9czDx~~lroFWL=)c^1EMXm5eJD?>IZWPnf2ZS0Yshgndq|iYFqC6>k`T< zgR6_o0FC;<+i4m#7QjaKx}Tv@KsRV}V> z93wNI9=Y!f77$xCDP-@y5ug6>tvvXx7x=~g`e4$#naz3bc84ej>Yg~8rxib(_XbFu z!ZI7RHo|$uj(SqaE>{O5qiY6lY&SpN)!M)Hn&bZV!{d_{&+%Vl4+DM3CJ$pD?AL)w zpR`0D#;9lLA99cM5(W1Odx7U%dl+NW?+Z3vi06&Q8|{9Yo%5_>Z#dsYfB&cEQRA;7 zpb?K$QIYU7Ti?ugT5yW<+bi2RAbzwd#Lga@9ruOj)dnyEmMV? zedKQ@uPYghG(R>VwmMnYm>CO6)XkR3^44?F<$mn$1K}OE|zAUL*aOU}daC%PoW%RT`kN1{EEc^R=Mn`-V1=Hd;?+_K01J?UgLd<^7#42B8! zr3*ql!o=O*0?O9lbsEI_9K)mch^f(T9&ncbC{Y4&!}}?o0qJLiS^iHykUtF+HqP?L z54OD=`@vQL^e|azy9WBqjj(c_u1AZ9P3~cCdiCu%9)aD4uA`=)HcS2;J_Kk;R@w>j zdj;qFXEEtx%`>edHZN?h%@BH;J6NO9c=l)UBdc6y)|Z5z-4;Kyc86qmOx4ah^Bf59 z?e_+ELwpFrA1`3J5%-5$BZytwyjW>#Ly0mO*!g+=cHmv*4-T73bP~?m8|9T*B+2cw zFAg8Xe4Lk?Lf+`U({$WONGsLgmFD^qHL#%z={AgotiPM+KQfF}WgHC1qCb7*G3|$= z3cYNObeUdPn{=3H(W+;Zyfeh*F;+MXAQ>WT6kK?8aZB3euSlIaLpmO|R7B>|aHFyn zahKnO7eIhWab~2!(YyMsnF}iuMl-N-5Ph`n0*dd_-Hay~6v)R4>L8qB!r%lL!=DHi zziRnLif0mS6H?UGSs9!*V4q~->@q{E*jEn>NG2vi`W50=8>)>oVy|i|`?E9|z&3fl z{|{|%9oAOUy$e4r6emD|;>E2%fI!gzMO(Z;TcEhRd$FRyy#$K2IK`#72LeHhySr;~ zIcfX6_B-!6-}&deu63<_uY0XMnUFAhGP7oe`K0@zu$T;*!(oMWa;Ze7@xATBQGZ}C z;RaDXfwt0H)Pis-NA45vk!fp2wF<+7VkZ)H0H*J0qA`jq2=SOHv|X1?ME`<@)h8UN z=7t}#2_J#bGs9_$Y9o8qG)i0mQ59sI^2wmhUem_iIG_uFm1k{w73S*U4#XRjmbFb8 zYTeCX^fy8T>J8(Wh&_E8=bMz>kS#Bm$+IOznR9kcQac(f#`Qo-HSiu~wnM=((Eyw%KN7hyE9#9mw zRa+6G)E~Sjw&mR<$E}wMD4|7jHX?K03$$(2vI*Fqv#Q7>t{-y0akb*z+$S4X*=!Yx zsGo!7HxQTB6G9m>J6pU{G_fU(l&D5SaNIcF(C1o zU+wjQX&yv_%%`85Ka7BQ>=I_%U1#6D)}jZ<|Ez9OA!&u18yfMJbAO&BRkV&^;*%ky z$O?@d>iA8|h-jyiN|iB^2T%Y9$zN8HksFZ$D0cK5upv78JC2;niF(W5xS5tJj;0yU zBVTy$UI#`-4;nL#RfoV3b*SFcQW@3M)q<3^8C=vaY@BL$;|7$R$##C^MV3cH*WN>~ zg?2P)QJ^{LYz#X46sk%+-tp~5kiWP@VgOAZNoz0c_=Zv<*}xD8CTAk6Q-dKsr?NqH zjw|6)-3%^txlVFjQ)&s{=R=x`&hOOH#-z;tK*Ikg_;Xm(rOy_|-GJM*TMbAXvqG1I z`8590{xTdvvLgbHJRJ@P?8sL%LMBM16xxIxDDq^}Z z)-^kvUt{ePEm~~qRm~u2tf})q2evFWUBlM!u=(>Rn_vhu4b}u8R+Zi(Eab;V@vhtx zs*^;u1e$y1dQgVL#4--#{HBv&O~N=sR_a!VEq^%x!Cm`>HMcpbaC2s*S>50}I*Hf8 zqhdLL;TqynH^EkX z?lNdXYo!cF`EYaTd+_@9*cE9o5AZTyo$&4L)5UVX+E~WS7S*Ao$)!=j2X*b>73+bppHPd zyg*WyE^3d-o77w0oQ&L4y^-qWb7d=PUE68Nf+JENTQEj7;N$9AQu*?Hd`T*x znZ$l-;GOuWzs~BgH1L=5ZLeOgqx+eHQ5@Ilz>Lf1n@ydD^!dD=M@BcZDOh#@Rh>(%krt186k0xM&QAQdZ+&o{hO}ZzH|4>gweude!i;WH+OJEFOwRTO`(PJ zj~`p1SL3tD%8!0s9}usiyL?lbRc0K%qosUJ;4^sdB49^4;IX*C(1ITdyDc=m=l(oq zIkv?`-LcTR)FiYM5^9gO)Vcz`j}d%boHa&z1JyLez3UwS4>;r81=B7FG*Up^Rt{~s zq5&mx#cna)mQ$X1Vk`wJ1$kM;0xHK_o0_vvMhfXaJHKv7Gt^(_@8{7FC7<;jY#BO7 zX3l<~DQ`Kv33yd}UPJ#C7(nrGTdCN)H7wxDQfAf zX8w_>J6!IKT@kwI0LlTLm|2uv@}Xh6*#hMNE&CcnFKffWu~d4+H4r&uAPaR&cNBb^ zuF%CrHnCsm?75&@4`xU^Z=WTrx&~Hq98qd`8k~Ou4K>B52~8CsRgPMo^LB!g$iZYB zb6#0Od|!Z4+HgVq^mPR`CxS2zXz~tSd25lC3Y-&==X|)ty46S`^t>K)eM`zb}(3<`9gw#R#Xj)+)qmp=~7u1qK0VKSPN5>JWn%*vVGd;e`Qs(hwLwW*OI z&85|gD;baJq|I3LqEsr|$ke)2o`8Hc6>s2jk+NpMVdrmkSNJ?5(j-G@Pc6@ToAT=b z!5_sdmnKs%!s0@nqm(r&_$19}2&t;SI%x<&a;Rs@%CPA;ttCm~J3IND%W-v(aOTH< zLb4A)$-z>a$yUW-ondHpr2-B=ly=>aq8^7owZHN@=UKHt)f32*Ta&cAisp;q7rvT$ zhoXCrw}1Y$CkvFvX=g-RdK_RcTgqM@2POTRhpyk;v8!X_R1tV1@?R1@21XE<`V>eo9o~ZnH!Q zeZz^`)~`Tk_Dn_SdXRj;%kmdRC}kMqeQp;YBYvZERA@gM8P8ZoZRuf?m32h?yx!rf zjr$%>PyEMoQzJ(%ugH*e_5;NYS)AMSjzdtwc`jtL4PS(1U=&8XH5H^d8QbDb+WwL` zZebL2D3n%++gMJd>sg7(Prn`A%Fm6E69{*RNX zcqd5upm%j2e@HjBbaD&UlSzTsE((G|3c^&mB3n(eAME1hDL%;JfxfRkO#31t7`b`5 zd+K$zIxA~w{y`L32E%h_RmqK^AD;{k+k6hUQl!?nCQGsS!v?|#@VcCEF(`i4;i z^LqSJn#Ap09FO=-l8Cf)_`z|7{8gNDqQ!fq$cx5j^}|-Dc<$_7kRy@JG)ijt`2cyh z)_%lMn>2SxxZM*u%QxFw7WP8!=gvg@>#SPlA--1NjB!++`vQujwX8PZ`#HW=hwq5+ z_vqvHH!$)5^yDkF`8HHn{YYfm8$NW5bT%np{W{|3Wny*l}QED zS48jT3nQ_Erku!bzxu|TOPS`Ex6FN|E+Hh0l${*s~Sii7aS4FzJ-s67S2*E;&0VLB6E=R6{89u&Kf$AKQC87Qv?7f3UlzJ)Ci9)tsA+3!Wt~Ls`FIX`iJ7Ml zwWyh5m}5$YeNrpyCE5i&YEWncs@cEU{P8is6Gy3y3Uxd*?&`|6wP;F1!lpG*&^(BA z7zM2l9^BhwIW?)mjnmZjm0!QrnzBeJxIe~#-u8@k|CHN&iP|=8E9V0wf8GIte*7x= zmMRbw48Ed`_UX=|K6h~A+A*>_nO_RpUo@gR)_{P=X`@{dEs-nij?C%$*>HmaBD*Ue zCO4$PO^7^x))=OY`RwfsFXQ-VYt{D(q7|~NLhD4h(vHC=qf2%Sm(3GB2)~ux+msg=9 zfE|LP2_R#l6Hk;3Mqwd;7L;7fL?pwN6S0%E32L%f}@ z?DW1q?TWS7mA3fA6<{8Pj^NPAn4HhF^3Np`ErZ#|a5TS>RlMObE--D(`TStriF?JH zR!N~FG*p0_fSGBzLn^iVc<}5|qbj9;P`GG7xG0QOigZGlwC$JJq8_l|EE)#~J=Ujp zATzZmGZn}qn$Qh)l5^NIvEMThz@;x~!hzP&BRB9HHwX?tSSp4YJG3;!12|7s!tWN$uZ{h(3uiC|b)|Hsm5d4A_|!>HH7cS;XiGo!c^7Nn8Ngy9 z=4!%c5H_&!T)^)>nE2YhTRSQBgRf+;%j7+&00MMot+d40cVq-Q>$_mrhf^hj=7Mti zI=PM7E=`6@u9QZW5{`44T$tKSGaAR&>PkP%iS$($snS>-6f9N-H<(wB^1LH7y>z*_ zG^u;HO?`0vGUYrtL2mG@N;RP)YJmdNQ?@qWI`Jbu9>&oZ>nJBF@Zob8qbCyX3ykwB zA(j!Us1%W#ZyyFv!b3-cEeGdAF^#Rx&=%Zk5N8Tzn9ooA$(c3>W^11Xc(b&LCcIAZ z4{{AMlP)2hd>NNO@%zW#GJqRdVMT1-a8PPOcn}>C++KP zII`GRY<8(JP;j9`^HZL;Ikt^=TbV4tg`s;SA60bX$g55*zu+Me{@$D_P^%&8fA&zl zyGw^w4^Oamad&Rvnf~^oi8c34^EozJ5H<%u^zzEO4KC$!d>vA&b!^b)h54CN{AA5% zuNCVEBYu#M8Ln9|5r2z~5|SY>S$S>beHa=5D~?^ry+tIvL5e{dvAi#(8{@-Y*jy7R1m#i>Fm<|V&v ze;pX_G4G%NCGnV-qz6{k)R%vnW1YXg-rhA)go4y7QWr-^DNS(!srVyw9aR|I91;rQ z{}T%Ic`6pnq!zV=?65Jk$*wQvu{ur$LAgwM`=k3+eUm65n$$^@v`k$~G0v=d(*Pd& zGg%yVV^G=twKJj?89_9UYeS zZJkpwd;7+y0J-}sDH==$jei2ywuE9ZsmMh74RzL2W?d6Uws%%bT%YJZV#adx@52FR3`<60jA)M)G84f<=S^ebAyu5ltx*0>i(ye?Zn}Aq4k8JF}H46Hm z`NU(5BzeO2(q!=ktiJMr%c}tsMKi$|aaItEG+Ivg7b3C*x&T$<*I_t4Yyn&sqPm`* z4L%Bd&8{=rrd>9E4@%Bk8vP$oQVW@22UwQLG8QqZh5hx4;4jvPG}3=%V|+}I%>Zqw zF?si7D<_|_#*3N^=P6wMCgbCM3@KKmUjLvb8`f>P89G5%3dT|VBev$LZj$srKH8}x z4}c`k;)=QQB5HU?UH-KU(J&_3?Qt&tgq)LS{bzJ{F!MK~MlGuK^754@@TcV_9nw;4 z+dD9H6_=H{8wx3+^+D4Vw?dPg3V`r(rhR5}^T+SD++y8rmu(241JUmG>JZIAIw4yE zDqJk+(#LmFnX{|rJ-`sHH;ox)Rw+^s87?I5xVZ{Vw^m;-L0%3*m6|D>ghBA z3MT8q?=VFbi=Wx#1Bp`?1Brqmqe61}Mue%Yc^&+sm%cFt@j;4j(AvMM2=HP-WR`y5 z-}6!|oA8TT*{`TEpgXJx4X%Ar$0RQH!4LX0u}#D2^k!}{3%;%2&aZS495NGN&dubo z!eE=)fxE<1X%G*C2czrg#e+j0KS`;Zya2@kGP7t1$QdQFq|Av>aC?FAZ4v)2p87ss z^8!@Ha$GA0Q7=%-l`*YTA5Xd`uknsQ5f4}Mf0BpFp__Qh9T?fDaethpjHwT%jPJ7u zm=j3xOlg-FKvZHH(a>}|G}FASK+aTnm#3Bob6t-xJqk|FZkZF-I(tgLgqNv`c6W9Y z<$D@YIkgkB?!6}5ySqq-#$#;I#NHQ$+z?k6`f1^ah6g+`v)eUwq1roDTkdA~a4Jy9 z(3hSz*B?o)U`Z4o$vLYOB)$vD_;aT-p3L4_pEO+D)IDgdF?pCCsx z^`+nlbQOe<|G7RhV40!Eq>&;crG*nl#hWV>3swBn-la6Al#9cABcL4Od_0G<@4l4j zj|B{7ruw6EGX<>BUTF9SeHuKV!RqzXEiFy7)i#&TrNIhF*{{g1k=c(kV^KD!bM)2d$WBYI zgY6M2t$QFn;WzWvoRtG<%Q#4KkjG7PB&Uz@9M^SrQQO~azYJW~HUyE><*c*~i2uv3 z6FN2c^PN{Mk?n@ok;%N3+*}V2@^I&!vbh&1sm4l+rm1cH0?R3gljmVqCz+AX>WNlq zKe@>|;F`FDvnI$UOEu^6)UuM`N23bR@x)jzQd* zt!FACxvj@MM&+}l-mruHjSb!T@Z(pp{7Cdqdtc;M#Gw=vSR8}1;_DnK7C(k5t9a2l z`o-nr#eX2hNngbbgz*6&w=M1`xT&5Z$uNPBc-{e`q^k?o@LrJvay~_zZoF%_L7mX& z?O1orp|WMK)V4sj+{Xsui#YYe05SFHUyTwzxnv+5|0}nYIS#?UVEyob`O-<9?ZPsm z8p^x}y8fnp0Lft9J2ce$6n^U%mjhUnor%B{Hf{$bmq{}1#voxFAURu-X)8un=)b^) zl{zx}*51_bUDhMdzM=DQ2bp#1->T3Q^Y(Qx1w}r0X3qP$x|+;Sgw+^)NXLvFhfx4Jr z$-v(4#~+`iZXG7vs2$5w?99eor~XWqe+sRyTP;QKk)=Cp?tjltt$F2;yfzAq>h;=} z+{XLLBfY6WAfy&JK=hTTQ#F~+nF$uZ9{!!V0omgZFlt3kS;P99a z5|jOGyGr$+%3ucao{ILwV_aMz0s#U%VLVxXD*`j7o}HCq{_4#ob4I58RSgMI6u@;=ZTpo?o=b#SfD5MP_}pMw8qfxlnv4>?!sTY+6EiY(Wp z@5Mi(`8-LUwma%=Y5l5}tGjIdto(Ye>@+pFph+q<2`g8KriO4nlk%`oNPQ$1o$3;a%awGRk4m22=oZP^18sDbw5^V9 z=R9}Uf6@PlNI>_bk`g0Lv9M->r;l)MpN0$FW`fCgY2*&^Yyy52@Q=tp&|_e-%})zw z-u1xKL_w~X`BUgWq8v#E#Ce|r zRrA6}3)a$rsw5-@;o+m5(%Z{)E)KEvwXbxvvw?qT@g>98wWLHqw9Xk8*C zN#{Y3(NfxvU?DYORk=-NWC$D`MAi zAQam#A(A0;_!CR5H?lxax{f9MWqS+V6kwD{eT;P1Dq*g>ElH=V4(zt84)889e_0k{ z`{rwTy-D@G$FaEgJ8<5qA&Hq z@rDM@SF(~x8WoN|!_whEU`P=p0F7sEEQ`~FayPbfE-%a~aP>KeEv5N0UNf#rD>KO6@K=6k& z!!)L}5Gs#1V(PGOSCR``$|h9`Gf2M@^w{25HH$MHR;m{kd?tx_y}z0i8sN(8=GfOE z-ViS=$kY|u)AB1=95m34|8v{zTL`T7w zYdx7%VPMn~9GOg~Js%udKe2j}HTKESB}YTYu0>{y`rX7#sUP@x!MqP{HY9=7Wiq~z zG#+dcm#1)?Ae#;;P9(9$YoA#uOqFu~!~7Gm%CL|TE*KiTN1oD{&s61I_9bFL z0_1~@xOl*@f*!LA!vXpH^|!&t^eli!eRrjyXUTlkSh}~^G3mTxx(|7ZDT7$oi~-b2 z9XUeC)K@>oZ4C7&71G*tMA}8l$rxu2rc{YmRvsgw--cmlnDXhJ$2&Ml{Vr&ICgXJj zAGs+VtR^4o7f0dEjMN6df{7c9+rLhFPDx~nbHpEfK_Ph)NqYy!_q7sW=_3bVRR#yN z7q#`<;M&^$&G5jtDU5zbmS4d&y#FI;#u^trNK^7h{O`g_`GY4YU^|gZKjDWTjNF^J z8|O)N?Qs4l{ro8r@?j#R)q@x}u6W*@rJV>aqGi^N51lYxwsEZ+XB@O_*U{K#`&oq2 z46LM7kidl2FvXW47_32<6y7N*+_WhQuP|d5v|aa2WNVoEL_1ckL4qj?15ELih}Dj* zmT^G>k0&KZ?Aj}uwd1UX!e_YQ34{mgG0Hwgj?$Bw63uiJ> zonU3?(um0)IA{t5%MYs)CSC*UprcNB@ekIU4ksJHXTa$C-Yn4vg*wRAykqnD57pFb zbZ|WBuv~;IdM3^-z=DRZ^kH7zo4wUulj^_=pK;V9k%B}ne|F-{^j&7Wm2O-- z;WfITop!AQ)v7hl1uvQxIf^JA9cRa4dJ^E{hP`+ak{)LqAt zA4L{HF}|dYYX5PFZpxcVaOQ-&RHc@`r4U>$+VjZkNs`}Q}o@3hJ~&(rHI;dy;( z>X8Jd4V^#teLc8ER7^zeuW6@m>_zNX8tx5T=`$MurP6@)Qn!0pq{(>0y@{?Cb{!<+ z3%JqAR1 znpbAR6+m211t~pDomZ2kXpk}${(`QusjyOcTLCQ|gMmjTF6B3$%pEt&@DLGU21+_o zK;ubA=s)(Wvb&UPGrPLWm&#bt8Mu77;pOMl+$yNIn96BCKq9b#oqFkOoXKWGum2C%L%_wG^-O{#h)yR-^t-k0TE zRjhjKH}^6%c89NxCT{oc^2d83UceK#MZUaLLFc$3ei|o@hscB&AC2iRMZg183X-hC zoopORI0n9p30DwmqPxF(BEk@U00@sabr@z>`rIj7DPVDD4;r)QPqM{lJEwL0Gr^G4jAe&!AD} z6t2(5{1rL^ftvitK;2kmY^eHbS%O7TH0uNgAY!q#c5Q<`G9$Wb@i#CFe;OgzS&JJr zv-n4?@zX~xMEvsd)AOSp8)BeC?Ct-dxKIcp{4n4zP>pE(kq0`bt5`(Ha={r$jUGpE zV>S#fea0k%(HaRD<3J*oVz?(*Xu8E`v6 z@|HDo1b4rkpslgdHtM&?1BLuKuKE7#I!=uK3(Qw5%rqQ=#21*|k!_8B-zW}(G288= zY_0Q!*5w>a4xM5tn76f16Xa-iTIW0FHJhvrV+w=VZzr-eL;q# zort=!dkSf63v7$$C^s-1`}DSTYSWLtTuZmG*JpT=Qyxj5eMx)n3}~((ew$#delZ-W zd#-^Sn7|2MK(9w*vM;IjUE5JvIRP^TIQdGKlrNZO|J?$KOG${3vb0l4$Q3%uY#rUU zHi1jJ#X3@JULk+7okjyt?*(*kvQU-|xj>!-8Ada+nw%QNDLa8>bLcgP@3f-sHxVLs z#E&WvYw3##{#@ zKeab|D9yirn2wv)!G;sVq#M{LTuF3SSub-Uzl-me$v>TNMh>IzeJ9wj&~C`SVO(p( zb%bgv)dc|LMIfgh$g7y!50m-AS#e0b_uKt1u(s>ZvlGGD@>JGxPYa?Er1_*3u=zj; zGK(iUe6VJDADQ*IQ7_28vXC7~9MCdlGMl(#;Z&E7%mb%CXpSIR&|d3Kf{)xTw?@1a#RH+hA3?)7y9c>3Wg7o zAYW$s)DffuZ;_>-{Z*-dtKa_}%E*R2ko6l0rOYF|Rgn!7m*vJc+}0L#1yTz`qtiAX z2@YaAmRty_d!?~84{+vOy~y5Zi`sqx#Eq4&sM`4>lGe3t=li{~`x*Ag4pk$k@f^M; zztngnbrgOrWxK4d>Oh=Tj!q0ja&-ycLqO^&Aodr$pv}Ao?Wl!oKyvnwe-sY^pODQK zWCs(RL%CH5^d8G8eTEFkkiYBzG*oEsI2Ow{q~2;et9~l`CN&`=B2<7h z2tVh>znll$&g}JxLjEbYYC9S0(oIr1k7_$}&UW_9aT(_^d3#*?E?USKtD#GnMjG9_ zy#EUEIDh}kI3`v}Pftp0lc}P6WO7WE+#!?E`mRo+T|S1S(HZ82OtR9shW!l@wf@Mg zIOu6j%VI^YSUJD+t|Eb_TE{%m|0_)K2F>Xt+4$wB&}{?c(_iJvYthW-hSabw+l0BN z(EWeIqK=eXUEFiGf^fNIT5^PgY68Vt>h1QIz<@TKP!P%S_`^N8zGWo2B=1@qCOfy$ zMr%UPwbvYl=7B}uPDdwBxSRYu-B6ei*BTAE@ou#cmxLg zHB~_7VCwB+2I0^bA@Vik_-eurCbc!tXi=2RlmUg=bPJ*}~Gm4nHS+XLHZ3>OcZ zQ#lxaEP&F)kGX2n>@`%z#p2B`rI9r`sj?9EZcZS{?MtE6+A>YAjyVNWN*e6#GdnuF zv`R;Oj^K3DqLdTtl>v>K041qXX3wT5v#IX8{+gr}8AUsR0u%mqBX4`v-lg%RfdL7Y zy(QW$BhY;ec!$uoT{7w6Lz$pZ6$8UJq!VVyX~g-OaS6N@MK37HwkE|Dpyg*OjMju{ zM>DUQ(w4epFO^5&``WQ#ddtR2CsEo=ML^&|Kjx}mw)J#>GQnQNQ(If zLPfjGEk)j@&|jqP=cnjj1pyLHfgJnRgc#4aw3m#k(s-r^sJco8#DE7ljZR(FhGvUt z!qvpWEusezZBFpTIwP%e9<)KKnXoi&_W@Gy#>55^>=Pvp{4j))f|25;NtW!yzy)P?vcM5t!?K2aG=QdwcP5c`**eBlt=MC=-w2n+Ma7g@?=(w~|gTq_x z2}pqtVRfG_B4|W;Qibi^fd*%?Hq@f*HU&S1U~QrWdoaja^LKA|9;TAs4wvLwAmN0` za=pSkC}JC=sl!y*YwVI-1dJausrUz}uJ|rBrwY@z$QHc8Ci0;Hm5)}hsUPU>=Jty0 zK!qpG40yTRp|SiyCv$+&dhoX#*i*FUbKgFC+`jR+-K`E2`8PkY`B7W6#l-HC;<&(i zt`qmvaUlkzc6D%#d^}-RDzFO{HwetNsUed^lWx(@w;unJf1Coi>?C2 zbbM7z+8|Dc1CUU7VP2y1r**s&9^a&N9FMc?3Er*eiXRkDAo!8lg}htO6jM38xeBA~ zKY>;+kyC5ShA>U^TDka=;f|?ciUnX@WEzv+H@G8~;5%gT}LV0gyFgaY5*ZwT%-BTpDhRF2!2_)7 zY@*}wVtn8%FJB-V*hA1nW~=c=t5y9N@=kh-jJW3#<9#Zs47aE5h+Jw^_`vQ_Jt3|X zETnY>%B2xWWPRF8#A$MDz18c;(Z$`Az}lmi*{$16%=kyi6LfnB9e>oLDFXt#6ss4(tvI(nJ z9I9rW=98YuHJ>4}Ny)VNLmp}5y0fbxZ$Q?BBXzk+VW^#T{uj*jP~)}JJz&%w5Ja?r*P_9* z8cM}J+PbS7(TyUUH^vAPlJ)P5h$e$oUf4cx$VjmKj(Zh3T5kScTb^Sa?ioWPDD9rf~I^T6jza z#ivrDJm}F@wi?PM=fwsk8C@6argV`-yAqE}i9ZS{hcXMTazw_B*^_$Ox4b zrU^6kX^)ocF+7+8n&!pjw^9i2^Gi%jYa9wy_Tt>{m`ck3Foi&ONG@k9UV@u|>?qT^ z8w1vWy6`6yTG~t};<|~oMGtWSu9<`?3!r2?&;d^}o>C@34(fbuWm((f$v#jrztX%7 z=wNk@$&F+2oJT=lI%4_4y>iSEKv^x@Tnm>I;SH z+TGR2LRvd4$7(OH_Zm}TvoW{P%p(n})ID)#uLS=*ed7s*3WiKYXOr@**Lx+C&N)&p z4=a;7C1dnW?#o8MTCc+p9}@e$YQ5VL;GCK1F`HuBaftTedEmS9Be>QUt@n;kS+3Pr zUqTY!3!X1Kp*ASwvuS-pFZ(B@c=$@Db&#hMX$2Uan#&|4lSaSfi9;^7s*E(XuNYv; zf(uv}u;}TwCy8<;;Qi{ns^&(>#j99^(@zV0ihiJ&c%8e-sW?&npuak#%u+N3`7B7M zv;EvnQ6!{m>TNl8RCX%++F1Y5aaol}_8u*dY9Rh|Ps09rsY?E#T}56`&i*JWQ*7bB zC$34iw!SG`-eTd*M}TI7OUM`@IPrvLA1xq-*%_Gr zqt0DoV;M88P;Jz;ys4qP4(M1CzBea5;DWR!=XImeTEf&4B(sOy&1db_{YU7tvaa1OM8}+Z!YqE;=A0b9M0SAT< zH#l|?@OMEc#8-~Y$l32pp{DxD4V~SSfr+g#lX17?pA~GoTwNSy-cZejKenVb0#ME< z+>yA8uT}A1jVGcCE!eglpbE4Njuzn-G`-Nvxy#Oj0Ztz`pQDD8@ayg;=dm37^jfno zt81gJjhYlA#2Q#Wa);D9TwBLZFubHUGb_}L&DD9m@KLZYaYdmRCf|cOUpUY%1San( zfc0^rdmuCElGY}o^7|zx6OV~ZMZ6UZ=1Gn(cdH!?kQ2m1q6UPCH+BY2>NzB1P8pQ% z!Ec?7VA7-}@zZ`?QMOe|&c^u<__qR<2y)N~NgFAwf(Z~KawIh??CJ079li)9sh{A$ zpnfp>%F0X9IJMxVMp#)%Cs(Q)>AS0^a*HGnDsyol9*`I4S?wF;B&E?2U7~B{${xFF zPp=dHhQdH<-WP*0 z^QdCG?vfqk(}f6KT~E}v*cqy5d61m#h4CK|-)iLhDuZ?*Cwdrbh}LNE$d z>*nluxduuy$g2Y$aXwNQ>Euy_{===b{{Ck2XgM@HoH-7d{;J-cZtIu9J^V|M6q*bt zk|iZ=LOKk2Pm%J=O^v6E6QK)Eb>`;!fRrQq;m+30$Rh$~f|^z{4#0^8Ww}Y`RC0Qh za|mrqCi<2lnvz!BodOrhL~MA7g9BAv2n7j$T==Gg14&&7Es0xf_$x;Tf=gl%!bS$2 z<38nD%t`=0KTwx}WN1aJsEjfs9R}QzAJ#-i1`kzEF?!1i4m0CRHcLliR%VbuD5c|& z1rW#r=@8Nkbs-ESv8!}(+EPgJJ-$>(tnNkiuC0PdmGn_1i_eqJ!OV+Gwrv~d1-tg2 zi7m>3x5$M}Z%Nm$m%TQaE%=oZ_0vMO^|v|6OMPo!%TAVuyY6OE^=4_2MBD0w8~VSj zDUqHkGj9Zvm&)UeGsb(($%=+m@`zAvaT!nGEzE&uSC4oTQBd4M7mVi+Xvnn|44Q6+ zI9$EF$dw*7Lg)LS4}S2Y$1CoLkGh~QP@GLhln?&_Wlndf$Kr8H4AIfqqwRFWsYoyA z5WsI}f8klqB`GK-{3RcpS82;m{V>{CqK(dZiyoNAC8ZyjHBdRIGLM1kGOruZoHMF^cR!I}i~ zN#j)KiK+Uc77O|i^LJY3tgrW=q@K3;T`Mp4HOClru5TK`BfK%Y1(! z_h6hAp-rxTWFGhkra_B}X`OB^xaBD$W+I&$weR(u6Df0)4KW zjz%&l+ic^zu z?3u9*Lz5d4x`dG!0JG4{jGI3@apmH`iPYE*{zB!f`uv$mdL$dCB%$pSs8$tCy=PI5 zOq(@;O|Z6FQE%~G6;v4bXxOspxouHGQ)+3t14_1i6a9B))rB8n6l{;2jor&tj|{|_ zMI-WR4bjQzs?^CqYr&}_ zqyxKL;sZ5{lNYnt1suto4ckywXN@9D$ZG~Eza3zy0vd%ot|P=N0=q;c(*85 zI16!+B*xEM+fGT0i8;HmCLC|{#hDqppNRrDJFttsh3!A0%9bzPeMGhD(Pnh?urTKS zCV<*~+iVTqhO#B9S=aPTtx??shf-nVgTB|Z9BVfX-|xffXZOZ2U~6p zkF#%mOYfdS#XjtZwL&CNsIlfQMfJVSm@dBlScFIfP-Efxu<-uVm_x2pQh(GXd?2*H zA;~tTDG`})%{ZiK9<)|9brI1SIankZ@;P~#E;Dc%LUOZhepr}=o?P>E1&(-Q^z7j5 z&5PN=xMs9ZdYd#tJyR`fbV8(3qirwgGn;d212TkhefD`T>P8kfl>QjbMqGAZY;w%} zsl`PElENBuYO@ULz!xH;i|4Nc79??f@SY^p;&qvvNCwxTdQ_4W*Kym2_eFPK`8sacRoG@cs=M0mbpN>azJQO<03LqC zQlj|j$PnCmpi%42{dCd8XbLF*v`*ayTgIuHc=Hk7|PMyH1Cb8;j+GZAKXZU7}sJ!^Dj-K~LK83-v=7xumY~ zhK?l}PVg<7u9WmrpC+*)5-R%eEz(DNT(fe1Gw8Pe1&F5w1ePQFslkXy)NgRM? zbO}B{asb3%YwDD)1g#sN#F=qDJ^*EO#%qcH{U#9UH& zwTK*6_%M-?MVLks-ILsqAXdYrvh0?AXDIGDRk+JjT9aU$uQAuTqs0+nu*QiSQG;=G zI+L(h$%ZtF1gvT}*{n#*&)HqBUYpG&*pIjK#b>04J0>^e3oF|2x*&2=3@QroUE-{|1JKo9lnEF$23tnpLBv| zD2P&+@&e<^6-VsIlt^FZ!7o+NN$BgQVsgjTV`r3!nj|K30x9=x!%Kk-tuGmrw!w4* zAWdj^p14oP>JRWzx}^U4JPBsviw^BKGCX;OI&YFlPbHDk)v?Y^kj>;j`sez$dy+Wm zm75~es&~Dd+7(?-w_9v=O5#g01}~wXDcuhR)X$+Wc*<=QtSJa*;8OU>7<7NGlYC76 z-5u5CY+f;WzkNQFRE=cSk)bw5bi98@3nU?n3IH?!Au}or^(lh zFO|U*Vb>)lF9nkE`UiAFk45%@`P;J=!cIPJ%s2UxFz9Ae!m$PwT->(q=#@uq zTEf`k@WM!O{Se<3L4U48>19?x9--;e!8E*J+SIG#PJ?I7L$dKH+}y=Mw=P7JWN3T2 z%#olHc$O3%-y^+RKdJB2X_sSUF=X-&Deac7kAPrAjm1=NbZx{PNR@~}`p_74z3^5uyhmy{L8NHPZ;=#Zz+SI;E z29ecf+H<)?HR|#DK5*KcICs5Ngl(ehn7STN89~41TxS=V$w=oC`bvjR6&fNsWuqwWN8TBI+_RGpM7Fg8uzc;oSZf%9t6#=L)bdnoH1r`P}6Egr`O z68|b-N^qD~7}`AmQyo|i3E0&>r*iukzs2~AVytiq-PJzUZ9v}aQL01tn>(oZ^TMmQ zE=cDe?swdOg%NRSN1h_oE(40F9jt)j$d3ZJSVOI$eCPp5ES0I&en!>+y6;itg59IR z?b}i*0W5A66)q9|GR#0z4RdEIqso~JG6LurH{aix-a*@>Gp5!QV4xq06=1nSsBHZU zp$c;O@cKV8yrs=B1EA%^N#uT6769as2FFDNx7Nd#Bb2Kq*c>Gzlq>0mH^J|yB%JVF z@+Hmr;55r{7mR-KS%Il9LLR2{U6R02eiXL=KD^YIl?SKg`l&CSYM(no!IBJySwhK=k7m$nW_3C z5;FB5VC9?=UDC9RCXr3bH+XXp|CTIMO!Cw$u597woE+Qs2w9iodnRG1>DmM@QY()=Tbw*HhW*B}6hJCs3tb;32n zGMpFs<#Hq^S291i=SAWOoFm+#jZvxSX98mP zVkh4|jw|Rpq%=b~h#(~OaY(8<4TAvUf6?|9P*HX7zxb;t2+}AWf)b-JbPpiXEg>Nc z9a7R=l0&ycgVNp20MZT8DK&(2N!S0N@B96I?=SAU_pbF{>$9Ho#NPW1b=dpt=lSd) z)?S{K*xx`9z{ytz>-E^OWjkYg;@L=)=?r=eWfMX{F|0;+&K1MCJqeT8s}@bQ!4kL; zK3WMKw)S-f{n1I*(91aO>H;av;F-EW)1u1b3wmCZh1vL)$+KwxPbwk~W6jwj@=0&yq%xMTOMO?bl^ zecw*BDTr$WoA7S_u>^$*=e*cLUY$lgNAAQxsoE>|V_PE1T(6>f9j>K@y_NlnP@Lwc zXMKsl3SDdKv=YcrxxL^yTUsBg-JXKaCSqKYMPH%9v>I$3A8v2(qc@xn;k@wvqQ0Mx z%tW7kFi%xRAC`41BFPs>0+r7#WuP*N_|IB$J zas0N7+en8m3h#bXi>S;;Tgm@|Zd3v$GTBNCmf>hO;{OCL`2L5nzrsjAtyj>U@*8Gk zT<(wdgDxqQPIxl6%_XP%BEv3`$|r1@+eWo>ehn;pv-Mj1v_r9%@&-4g)jKeSLLJZL z{hgrK7t6#SMmlY)sj%}*B!9fweCDAPe%jZ+AcR?tbVd`3;WSF?(A!8GM8mE)DUY3o zI+yiN$KUSs)iN5%gOo2SWLNv#34dfl!N>M;akg5$F2hgaGS*fVZ5P=(_97a){i(dv zyw0fO9z6J~N{fJL@&kg(v-8rZ$3SV2eV)03_q&B0hh~PNm&WdAr8JXmoi!F;V{>vK)Y^e?#vZDbAb*{j2_`6Z@QtI?C0H~ILvgw_RG2`BkkqfY%-OuE+A z5joSU0X65md#2T&FYclP)h|zgD}U<=RIMSc;^-_`XzHEMlfuh3b(a4X4rl}Su zGH%bzE1sRUh!!eAjb?$NkW&afT0)!uQFR|;hs~;?e-`{-)!P}HR~65ZCGqF4s-9vM zSYY#Y(d#f`1)zL%Vzu(88JfpiY(IX=Z*Bdw)saFyZTgHR6la-@xCX++?ehNPVddP4 zXm_B$P-2gD_O%>+yh8b5?qr2b+X za~)|39}7T~=GX1f?=__<2J(%427sGCjp$0FAWw%**Z`w|bnh#9Dt4aG9qj+nr9gNTDwP@_D zmo^XeFARlr@wTq4uglgQyKub9?I8yndtGN!dMr3yI8?WM5cLBl{T^Yi!F?uu^Ib|3 zO-`y1g?!aquz_moJJ4LMMJqMeQZ1XyQyf)$)EuGhZ`9QbxNcT~joj_UWcqzrWvc;G zRw5SF2M-*sTZCkpNX?KKJNcFLFiy-W>dxuf`-sDm9_lKF=d;qXj2PzwDL!mGCb#N` z5x`>uZ90=Yg9WxsoX!)#5KbLz5cs$H!z)&VNvvMvE2biYSBVjK+rpE&7(=Vb+)St7 zo55q$-i0p%+}tO;!^i8cw`UorxF@PP>8hMFwZ3>%&31O!>7*>#C%cr!xx;m*o%Sm! zxn{2p5Zr2CO8FkRBKb{>x%Iw8yICGrwe$u~&$b&wQFplTJW4gSu}9BC!mCAkWFOF2 z7!LSw7QFTwb)mwu^ks`5`^)P?tr#EkQTWZN$%sXAzpkjs{I@pSF>W;pbaR%^{*B7Q z*cV|o{Qdb4W%?E?Otx~9=`yIXoqE_~b4s;dtxmQuJ6V*;I=f>lU}l~)89Qj8Wf*|J zU9y+h-q$QAzx4|vM=(P;k6zMSyJ)VxlV3cSop(9LJM+j}F3-M|OKOi0@^5W^Vdp=` zo5&M#74d-pTL>;a&In z4B3+by3<42erX)j>&5R``E${0Tf_tvm|<-d4{08V~ zsYqE6dsgaU=(Yjbj(PMvKz{Xvs}6o#7O}%dQseY#5he_(#^{^fPCwT&TcMIj3n8_4 zIh=>Fn5(QaK#jLN-eQa^N&_6VMN^pD#C0F@C9`h8$2Q@DPT|;b^xG;}UI3At5s=45 z{v(xq7_2a*yi4oRAXx2m{N;FrK*>Z(h;akP8NiZuMY;`?c;io!w+1NI8J;j^_~~%@ zPs3N0nwTd>&&k!8zEQ$2(r{3gU>v$~bkq_eao8DmMRTm*8pP)^_ zdSq%C7$3&z-=U=`Gm=G4!a;30Ezyb1f~N7}ortHqu10Zv8^X#He7-u<$(1cTXklTM zQdnDH%dScC9TjCp_ca;jhm3oTPP2l|v6hc7KC2P_nkTq)BQfPlV=AsyY#TU8x8wlM zC@Y6*)&;+^`~HD(mKCmJ+4-hJkC80Q=#o9eCSej;VL+`mI!_qHQLh);c}P`0$8c@b z4QXhuAsDWS3Zu}hn?$*N%hGh_S$nYL2|WxQgc#f{y;s{v3?>D!SxWppEG7jV zt!<}1b8y(qPgMm)4d#ffhXoyVwl7#t3Tk((?p2#pJ@=SMg7qAxHD(E{yuW~Dd7W)x zTs^9;nAG=$B5QnOTn^h1SruKLXKz=HRNWEJ({WBat~xi+kz?&VoUHP4?tFBedC=#T zOA;DMjz#Te1J!>O;Lq0k23o7ygX_5NPtJ7Z)G^WSN7>M-@c4%-Dsvx&Z`g(st&lK| z8J&G>dr)L!5c6ZYaj?g}@bOAd4;j5?ouD8R>0104KIf8jpP=8n{+*{o2OIWS(OT5a z>6KY-QO7;mDoeF@M>stpzBp8y)1m@Nxh4e17U`*SV--QJT#7?<{}0aXs_*Bg*;;QM z*_tLRnmZ5Q-C%6mKX7oRcwH@1Fj?Oiy7uio_&{f;l!sW>BY)23#ZD(3k2hmYc&0$N zifTi6rkp1o!+FA&6%(IBPr6)JU6SE~rVP016`DkOn#a3wDAgtl*-QYpiqK{L_o{6p zq!F#tl||W0EvhIN0)D2_G4r%!-G7_fYHN8encPqdq+|i_`Z@I0Oc!udSLj@NpB#|! za)-S7*is_kY*}#R%U!JSo}ALQq6H&G*HH_?>b1*ibk-LAD${iK#jj;UqH(*6pUkJ@_Hy$ zyn`3Sj};p6bwf8CAzaovF5Wz^xUv`Bte{7a_QY2JA)hB#l%NCSoKc>LM0__rs-bqb z{sX|{Q5^!`;e%VgD@JPjuC{hVySj@Ig|~}gdMjYkx-FO-_2Y$m{AZyJ{%t5+<)5oy zPEM*lQT}!h?pEXyx&{&pfutggO z+vlQN@i4~UMM#4fhyNovMU0+TZjtpqo1>X^W@|}3acSxPd39K_#v=oDj&UNvO-EeX zXSI66pL8%ks{bkgck(j2_b?HiCNjR?2~oXFA8#VIENwT_!T(2|Vb!*YjC2{^P`ga% z@|kcj9n-=u@MS!pGL60(p61axkc+MNo88Lri+XrH5l-*ADs}-a*BL&}&c#xj49uXk zzkM`I%`qsiu^pkk{1vLN%{)C@)*h_ATnHTs?0hJ5`?lce77WD;M*{i7$0>l!G3Y76 z(5(~S+$pH4p?wCbzXL9Fj8kurDf~e@vHLIgaw~Llh89@#IoaND3@df%7ge|2hw4L% zshS!cNn8`DCuLgC;1;@C<=!?usGYQA#FJHoWIPFA%jpT4Q5T(Ig324Xx|d90Gws9z z{+3nHaZUTOrv3p_*%@5jU52rVmT;k7Roh1L7R`vS2tlhlkN?Ul=yOebucrPgQ`sS0 z-9@Gl!GPRNF5m!@#QGw9tuR9 zTIaYjWDro)`oxdR8X&{MY7U(rq(qXX;SP@>nq{CJOFJ(yz5>ZI zIcAyqn`K530Li}86Ec!lMgXpAV}OE-H;1JpqjJC=Q{JQ0+En2cjl`Ujgn(^!ELQ8~ z`iBXEe$<*9gqSvu18N_NV5UcY>1o>zq{hM7ZN+uc3%vJKf7`Ei|4nEdZk$%&7E}8% z;j-&vn@0cI`8Qft)WtQpZS=o=AzQ8@=RGiwl@@~>zAFQQwMNnH;ejX1lo&QRMilrl zPbp)YCxO#~?9FaouJJg%{a&v!Y#+3LA?kcB$co;s`8g<>UjFCjQ8UIDZGO>uZ`K)~ z8xr@kXsAD{5`0->^VN^{?PL$U?KVC%LqWWM9sRzm3*KNVrins81%2Ce%+hv`^@$;m z+j3-6*wePuP(6jtQhI|aW&Nob)@@MK>L2W>gAQY{Z~bV!#NcTeIa8xN_kL1HJ>=4h zyD~CaE$K06jlFpgC zZAXaJ5SjaY3pJw=%^Adthjsr@^lL^!W&?}W+Z+taHTzW%7l=9d4_uILZ?k3Ufy&im zn>^nNJqO!!BW!d8?i$wHy+vw>;-Cd$FZN{c23>|1+Pk4NsOz>KYaZqiu6r2!KLgRS zVhGA30sRg`WYY3*zU~Tf1{dkyIBdV@li_)x@P@9ih1ch- z?9ZTxuPY38w*8D73VzW!zp;)*OV1pdMtdFf`^E@X)5na*8p?;tH_xIWv?@&h4y#>uk#*S?1_EI2>!#W{XSR}t(2 zUv3GYNy~CRco0mE0E|~V%&EdoEY{N@wATpI_CN{s&RWNpLqem{3CG)(;J>pY!qj;?m-jDzh``kt}vgjn!e9 zUTve(O`rG2d?e9AWc#z+=R{P@*$ThRJ*>74v4%Vtjmnd@e0?L3+sE}nJ`}@k&Nkgx zG`vpQrDx}?hMtZ72VI57k8ztJQv^ec?)~&9n1fv@ll7SmT74}#sOtv(rF`&<15pFI zb>j}WPO3ZUP^0U4CtS#;<)kUa1EynfZt$Ewtv}4!OGpcB9R+0`ykaFgS?;H*@SXSB zH;{N<<8XiNMIp;kUyt5xYd=mipeeyDSyfCdUwLD;Xp{AU7Z{GZwtv=`ZkJ;sbB3uD z^aRIp>X_H*Wy|(CP7Q*60ArTE|HeJ>lJ#=abhnG#U0CjI;$@i@+4fLQ9Z&!VI+c^p z1T?#Sfr0BO+LU7{5;X-oA<+cayWfsvDmv8I9wxtJGW=xxakYrID!*$o*YeiPK$|2Lx%S0NbYf1z z;q`?f>T|v$RHeRH(=Hoj5@~x5vkug*fz^&(Dcj4l(3`D7aO1m|g+UnR))QK(R7bL) ziZwCciZwR=)m$z}$)d+4{apMluQ_D}(~ySUH1IrOG%5yd(DffE4I55HZxUYv5n zPVAx!HE|~AK*e5K`H||ohAm-wX!jk$CFQi#@paB;V?->&oR13a*9QWD8PN!?;fx(M z32Y%QJ+3ugBg!M~A^0~r)_mrv-5)(Kd!>(#<0g4@!l-^SL{&gxUaYNQrsCjVZG`yK;h_cbQQCiqUS zwSStgmJIX0j_{s_fzvzr`|R=fhwzSo^5!ihO}JJn(ykVg8V%ELffgSF)WJ=VhIMNf zU#0YQ%r$Zp51o z{B6sV6^^2ARkmEPmZg`<7RnP8glLR+#BSRwMQ2*peT2PhC_WQQn@ zcI0m8kJ+=D)f00iccC&J?OGf=L?x5VI)SdX>Z&I#tfqQqq)zYzn&qSTyq7QKXx%aZ>rhchC zt9m^#BNP)3MwKD*%?fE5>CoNyzjcSQsh>!th*6kw77d;cL=cYnOnORMWWDL!qv*7? zW~-VY7q^_?Tjf`x-`jgkqPu`>UkRyws49;dCxbdEiAp3cPGRg~z1Z24*s@0KaI@0# z%((Pm#FfzzQ)8RBe2Ueu%%EGpE3zY;I=k;R&!7Q;@hz7DZ`eT2IcxhBvA!oJt585Z zl}LXC^;*}GXI9(mM}r0+yM$7i)N<7TVg?b+*n~YN za;rE<9PN<4lvhA3iITB>54)&R?*r@&O*}3prNfmc#*}y>UW^+?ABXUV2$o&mK!%)h zZ?f@wk5V$diq9e+eTCG?3W9>@X%DViuv4Ej$2?xH7#wQmj=7XyrV&IjP%;~uS$8Tm zoGP^2WlpbJs%3p~mFbuEw66&d-_v%(4S>?r(9E1uRG#sAH7d?EO+?8X7XfXXzQ z9s1S@s*2=JN~G<{6DAh1!yz3Hiv7c7VpAhc+2Q-jmEW$$C+{(z_WT+&zci%yf|vcl z514UuZBsF74!t_ZLPUB!KJI1D6wEl7X*qbK2N5Gy!0S}@J9zTHsAX8Y<)Pjnhg9F= zWN(db|0NfHD&B57muMsK#;p@EFmXJ`eXr~{@#HI~*atbh|51fsYiD4->3dd*$(7ZT zedRW(E*4&StbOm)JM1$d1MORB*|`%Dng^-ZELNfShZyz?PY`Jh%&ITm-hUA{JkKHh zJcEO6CQ01Xu#!8BrklYj^d$SYyC9{V$d?IDC&H2tpGw!-ElT|7>Upd&)@NQSbB?)H z;1Ge9dO86nV4RfyJK4ZMsi`d0QtBr10x0B3Xg(rg5nnHr;_LIXo@2BWB_GnOt8M_u zyMgESy)(f$*J;`a^ZGHE@6sc!6%8eB7xCE#X}Sa_TRc@%TrAC0J+dQTQwX*t&C9a^ zo?eSq3(S6d0`?#6vfQkra=%s2D$vDYa;q>GXn|~RYde-Yg{QJ{snz|j=d=palnIe6 zqjDSpK?xuAvyMeAq2o1v(EqWwUA(nF44xX^+w6 zAu%^KU*47iho5Lz6lo4kW~D(drp10P9=C~-B_TZHe`BhoiRUuj1^&pN)<;)rVHwCk z`3=!FGA?Hw_~F+bxyr_%YVP3^x*5+32s82ANdfbWAlz28HZZY34jGY!-E;Hg;gl%K zgz;ftRpO!%=Qfh%)kBqvTkFgFktv`0@PZxXek9_-t5FtT3sXCR-pxK$(VH(cdpX!U5trRJ|J) ziheu1xbw+Cc~OVt#@!+UG#mU?w)yl5zm~o!461&9myjMrOwFRN|N3nzJ35fafV{WY zs=ba(*5iu2w^zd>eyBUmFzBR8{@kSurEep=;yI2jH=@=UI3Csw)JNhPTpu zVLh;Vxs=#-Ga-JhAzfR~NJ}Ks)1kx{TIRr*j;%`2Esn0hFX_A`K0bC6$By#G9p&-Upg&qaG z8~Uk+QY|uDOX=$v7Yjcisd<>1E@O73sWg!sMk5F}haUD}vP-A&t*zOxK~oXmD^CAcRe(_{?;vmP3lQb{|i1++Q8Z%S77v9$+`>1|a$G)_UIf_OB^03F<$w$!>(09F=ASC3+g zf5kw?xT=&<+`1$5m34 zTZi}=w_3>9rRyBnW9kL&KHWwV8nXq@^VlhVfAX9GQpIXTdBihuY*QFr(yLy%82 z1B0i}GCd&ZT&!Kp(q0E(z9JpQpiW!vrXO1qdpm~`zrFNY4_ErYElpP7Cl%OkK0Vvy z`zB6s{+U#>Ue-&7e4khEg!7(0c}Feo5txg?x+wzBdDE^MI2HV=nvVGM>Y+;ap-P}L z2A%?S>RjY%9su03r!@I*Af?plFWVbP)l{%b*?;&?!m4#OrL+{^ZDe4vQ89}t1pY+F z6QE9~7yacIUrXI53cyAToks(9jWgxU1P^*6n;mJCj*Ev&bN`L#>%d2k@a|F5JQIE3 z7x?KvoZT2+f)W^EGRTLv$CZ&oQsJFZ{sQ!R_nyRf!(h1MNhOj{!zSw0HGd z_L&m4Ox{u}+vn$gS^bu39-KX7R0p^l`{7^RAbvTeUwQfWQxFWIqz#Yd6WZJjzY~Il z9|6awoy0C4|G|^>Zext73-BHi4Dp)=^GGX^)1DXX9cqJ_l9pdjTi7zkn9CIx{dF4q z8*NIrv_`;0H}i&V#n^gNjs$nAF|C=;Y_DugSro(Phw>jd?q_W;%1pP!;Xg>b!&xd% z+F6+l-#b#RZIFC&ED^8?a718147;%j-SK)kbh-Frb*d8Y`+Ujm%7dCI%VPrj&iEkh`n?1`Oy+% zDO&2*E8mD{+3kLQU2Pc7xXv@(vP;mOksIB(-cwgXL3i%v?4J{-rue!;`v@I8~Nzs7gvM8fwLAIA3a#kg;e!!-h%6Vqh z2u&_~m*=K;QRXXyQ=iTZQj6^c(?e#|ssaDW+{+7+WHOy`?C_W6n1f+Mi*sk9JHiqH zL5UW#N2^S;6&@@+vuM6YWA!K$oUdk&bXCj%>inp${ohYo@FoT0zoOZMluORSCKo!9 z!K6bBW{~*Y1CI2Q7J4UZ8iz&iSeuz$Q&GjAqVP+{`_&O}q~2ILW7kn-6PR(MC@O8$ z*_lCM>6wDy_TegY!d`H%oPk*(JRv;l@zx<5nxsZ-9KfiX=HL=Pbbn%%B8aL^K@YC6 zK-M61mD=HOMzLwDF&d{;>hH6J7QoVv=+nU2i#O9yev_{TZtV;4hu1l*zZIdvnyl*} zi_>s$d2~dAK+Z6q-krn5($!8b6OW(XpVQXalp4#=l7QVXH@T_}KDEtTkG_)GtXlz2 z$huC79p9MUW-Udx>;Ft*S6g<)W&nm|R_qwnYf(lE%JhD-pWZ$U4c|slwy*DxVS|E? znvCknxlS|_z_6^eK6@bfTeA5xkO(Hlm*(HM=xACZ<0h~=V^VJcwp+DccV@6#-PiT# z)v5yy+B%#xobA)%wQvU;6>Gt-=!}}Konb_2G6^(sIhiskd3m~?QP3^)wcs_tgcs8 zs$JC8sLCi^uPm=svc>tc1D-ZfnoZ3#1KTlL{to+k$OLIG^?OWYD4e;Y*a{Cdf9N-I zMhS(U!fhh+u>37$mVaQuMGGPdwfi^YY!j#|^Q|7Za?W4QZO}T7PDb&O=M6ozjm!i1 zVC;Xba8bQWzTv zWLA|qidBm$mD3{R6*hlg9`XuIzq`uoVyVwXUUhGG`>2Q#HQvBLE<9ld?vdc}&}Kn& zjvMb(uHAzGP}{lj4&+4L3Gn{URj)?!eLB3^qoaJ;3 zE`j*kVcSJbNxs0bQ?c|AZCV5~KE-xQpe?=TUz(L^wWF;7A;;>Pep^^z-@Hj6wxcm| zN;l@?an|aAsp`{~uOSGVTdgt)KYEVg!*#Nr3Hk-_9-M|)Deu6*k-o&;Rw?cH|?*8>h&h%8gXONV7yiEI+k#4qyhgyJ^#n>-mA zdW!CPCg!tS%;?-Gpqq+$R*x1MeJ{iC>b_~I6l&v$Z$LK>m8^w-?XfO;sZ=M9owY7= zKagBHtIy>)mR;RpVfffgv;QvJS=ZsE?B%ofiu{Jy=@Fq6>imXWO^@Py`%B-l8-#>0 z6|XkV`^Ab zf9#jCEOg?GhOM7e3TGHyv7mL~jG8A$s1UuUXY*B{>4m!gRfTR6VR&M-Z)1>R@SUHv zwwBeig`O(KA4{7nI>w)b-16~YfiA7V*Uk79U)8BxW@Q~wbaf7r$^mDkVR1oj#>CJI zwqxNgCf%fitMoAPJaq;V{Uj`n-*T6}nb9R6GcJXzw&rTTl_7)MFp%5u=nH249=nz{ z;>4q1X&)#hu*Db9UeHEpVFRV$kSYfDVkQ{msK~)0``PMDcda9I>+GwSx|NL?3&({u zhu(>*Sb-L0tMIP;+OsTSuJ&hS`jJ?y-2udgBADgWsMEN<7FX6BolCK{<&Te=Vvw~# zY+n>P+a*c${|Ynz^=Y*yX~j#&ziE4$AVYQ0wj**in7S$D4{XBXrHSz7biZJ-zWwux zh8ndO7sV)0k*yv0f?_dQr2~j*MM9&g1G;fV3onYkE zuT#`1TPv|v!qFyR_kobE7(~G`G@0a$$_Sf>bUylCP>Lrmx_R}M*qyebY2KYRK2egX z!EjIOT(j% z0L@JH&zv&wBxl0e_ay#D7pQW06GppD()DnIb$X>joyM7t-$ERa7Qo?3h1o+m< zRJD<(u_%tqf7yzThllzSr&=TS_X|2Jie^MtJ~o(W4!nWD7tj3pjc*palYjNgx=-XC zye{CXTVo{=VBN?}upg1lztYe#6s%QmZ5{QaX4y!HGAN#TG89T~H=gZm3}EF$0aph* zy9=LeQh6%1gnCuasOC(p!(-n3d^wGp$c%h!1$(xpeEX@;4e_ta-o=(|Uyf}JQnOr6 zJZY|g2gej>mc8v4HKb*~U-sY*-REj?BE&-lO#xTxy;0ac-p@=lt3Z@bd1p5R7l!;? z7C^_zO5DzGvi}8!b5Lp|0APwnEtIM&BfEKtGv(*Pj0gVpm#m9jS~^Qn?C0zGocNnu zj`RbHsoeC?m%X{^+iFR#x!}`Q5@KO*B+LdJk(cEM9@A${7Vc79FP|f2$`5F#&!Ydf zlFAMSrp}Bl#$-CV4Ki>ReztL6?1x!(0v7ULG0uOt+}XJ{N&giCtR@n&h0s4;GKyK7 zNM?sQ_gX$eQ4nbOROFHl_UQIuij%}TDJ~B**z+k2oKsVX#?-*tZ^M{#JBd_~k6%W- znynS2A$@=x%Jtqxd=_li%sVKGT~DwyOj{}%J5x22KxtHcjdB2~5a_1f?z%o3% zG5v$|Fxhz_xp`i>`-ifC^x2WEjO}sDmim-(CreX;PS{+AIM5O7!-gkq!XdCQpB!u` zjA;(<*Xhcv?^2Ied7_v#8vGaVz5ZF%ohJo6R(_&y(eArqqmf+ z%Kn`5=^6BTzeo8!pIjgPe<=P!46rkGEX-x zIaJn-XmnoeLw)=SIJ+^#+Maa>`XJpdZFUvBLEL2`L^d+umqi|TwauA$1#TT1H(AGT z+txq4!)o*NHzF}z(6&BKde&DEz=29QIW1pxfu)N<9%$J-w?kE&aMy1+oc(X z$~rV>^U>N88UJA9eH$M5umT6lM?qH?VywP*RUaec>_uLWiS=s8Jj+ z`4aUA`IK!m)z?EN&eNruK14HMXAz^JU&K63S0T#FbRb+rHJHI; zp+uL)UvzogmhcodNng0J_3?*#c|fJ1!oY>z*00r|tM9@x_TTYqMx(iXX=lyhwTXmI zTsrWpSP}Oa^|?HE^$R;&LZov|n*qj=i`>RKFKzSYJ(p~25I|?FTr4+lemmN-JxjYf ziD&2qC3u(><->pO(+kQ?{{KmA-~dHXm!Ut<1fGs53*QMc{^6inRu$E^Mi1ZphnNtD zv#7T&hM~RUO^6fN*p~WG@}(CezwjTi2}*4m^C1m_z2c-S1{6?kl#hIoE+guYh8e^p z??5!Gli>6Fx4eKt=>8SsBgblxbXXUI<%&AYc6mwK?WKqNyox+^FG!TvpCJc#^+|g2 zo0IT>Z3?Vue$sL$4$%aEh6-FG!u0+(u^NGFj}?undl^MdJKo7xOwoFHv?ey?&*mn- ziB;C}S8)j#Lra2)JWccB97q{xiXDUs5C=f~n*Dt$I zT^TjZ8OXr!@aKFNYC2uJJn05PaPDkuS18oPoua*Ht1=v*%R*&;P#O-K{p|Wm{yKHy z09+7xDO4zeMn&|V*V7`>6>c>);^iQswYnzcKOh` zk;m;KpW`m>IWf4jUef4s2JnH`SlgUYpgP1CL1xv5x2#mD9G8yK%`ft+=h^AWg`6uW zZ4W}C>H*@lLq8UY5nlPi_sR<$P5qSld-^(S&ZH@vOa+Uj%zE>M_s4;((-T*ZwhOkt zJcDoGyQG|`9JPf~LCE=wt-z8#I`U{31ysTv3O~#WQ%*HZQM1w5tj>fk0d)16qP)Na zgQU)(aB`Jy1M2)pK`+Lfwa%KdbBS*CMVCm5sZGK)k|soJ6PdPx*P{}J0T6`Bq|$C! zH1vhqCq&8Xjf;X)uzI?gD=G#%YZ+JjD(o1Z%d~-GxfRB>KSs~98pDC4 z&<`FOGYr>thT3Cyqoj$!^M2|cPCX7isS1o53No)i&8$)!f?BfUGCGWs|8C7x*nJSum89gzMGMYqnyd9WT zw6-?FF+$D$dU>Fl_M6bRCm-}NI9MMh#^0Bd^*(8%mu8mn?BdC|uu8v4%DtuAyk#+e zFQEqH57ozxW+f}#%8lI`$CwZJiyU@)Ko1*Y_oDA8{Z@38YG`*b>Z}--zC|*ewj0eq z-fRxK8-y&Pu|8B-meVW#8s+nX=h^(R5jL{uW{da2?v1wb53TIRz9U-~?fINinH$=T z!lb@fJgL{?^UmAjz`F*eaLD7_6T1AyATuk-$)+{1kzw!+_*W24m3u_Di3sAm^Oj51 z%K*%?cjkgcA^n&Ofx}&QJ+ff-QznXsZp*nN)nAjF?q4K^cCXoV(Bsk9R6}o zE zfOW2qU=@cXyA)JE^#p1WeAA{F2P2zRGBKq{EwoF?a+m`4wkb9Rgd@hKgY zV(FcXPmpm6PF~s`tqwxWrTMndQ@)GQ+Yh5d?cWgnKd2e@t)JwHzoTD9!Ze=@R!*%r zbX=xNQaQ_!eaA*AG4(AmMKT0CVQG(|KJ8dEpWz8kKg2ftWk9I!%gH{%Fpevb@k^IzR)epuAkBR)aT zFj)JcaQK6>>bh7If+w6W?X~4pvqkh^(o&X9w+u2eu9Mnx`3}s%BHB-22nK8yMe@UR zo^}NYfE6*D?vUk3qK>=pRr?+Oz0sdAuFwI1zZ(JJv!K6$c#ZAiO@27S<6J&s6lX8} z<^6aQ!4(=SPj%?-x*}w;T@uKb=_wD{cvp;U zyZct|#*gcvmUatFa}K;u1%%T3VF-0>m$Ki@^m$i0Yyl?tNTNP!X87+<$#@q&Aix1y zOul|CkhQRRgcFyP=_D0*Q3%=?5#Jc%OFk+sOUCUXrBQg(ivtqM9slqIlNBR?_@OVF z1Ua0QyvO!1sTE-07Cp-B2N6H2!1O~$(QADj&w@*LRZEcF>gUa(_e_@f5dmszrZvbF$(J83cOWP>ip5X}8 z>mJOO2D}mnR1Ejv`)TRlav1jisLLBE0RGJZsLrl;_@~8x=lB!LaS8_T&v2>ppkUYF z^wjj+9EQ!dXnF?pFL&BM&UG9r{@Q-Fues~Te?4z($ULg6m1T({QyEi6G$}thej+B& zvBfW@sGvA@XO-*$4!}CNkOv&GM^9EEV!Xet!GBqbgLhqj$L_lFD*T%Rurz8@(j#*i zRzMgo!EaLk@6@6v<-*itcS6%6!gTcI%W(^Jea>8CUo);;W8m2E&AYS1@5KD&jAGx# z;YjhEXx-aZaas!=>r%4gvZW+3Gz#^ZG0`N_s=Odn&fza~q+_DKq|JZX*H&)uzy1~s zt({Y#d;eYZ@yxi-J^5Ijv`yYC!ErmjVx~-ymIMYKf`=yQi?UCWgM8Q(t?4iZMgKT! zTuK$zB5l{YAha)VWNwrklc2j>w#;#Eb+OGaZlhhnb&fqA&%fUuKTYkU>o>uoHA>Hv zjg37}Z|F-Vcq>a6+#|}Gz(7aPQCa8Fn#^+747`CT>8o|vu)A{`rpIGfSV1qaf;aY~ z?R%({jIs3wOD-^mR$ucyi3!qYQ~dWaT%>P+RF0vCe~%hND;Z-XL6BvTZZ8`f9yG$L z$VVsLCAtyMK=FU*bOuqtMr;^<3*wTJefzGFuOclxaO@O}&N};_DlCIpA~`+>Iw>0U zTZ%F;`G-g?K6@|)UmP~Y!Q~IU$^{Ct{CYdf;kxRdV>01559}qrdpadcPEvGzcaU)Q zbo$*iMFs{8(csXMf8!Swb~^ud zYgQ1H5Ea0+nf{6k)hO_T%pScnVG4Luj+l;S`b2Wu<-|YB|N8F%aX)6;(oNRqu|8(I z^fIT|zlgz1(UIPk6 zEb@0FgyWxQY=-#49n~@gwVDc)%3YV{zIYDl=92R5Vk#o62hTe3J07q5ow)74fw=P@ za`7Fxn&eYgrOu^KY15yf5dTarH{Er?8h1ISD=RI?XC~*a91fgUR2TCBH~lDlzFaVO z?WjEY&`bjjKLzc`K`>KcWR-RNV_}VBakc^{DFelxvn4$p=26QXTDA41vP#xde{Qh&uKRdyj$EWkryufbOpJ5n@enz zL?RLsiB%+&d=sn4S9oD-8iIIC7gTeXR=<_S3N#dkAxmFg4R9qEsrL^ zh6KhG`<@lWgn4Yx0C?YbK4ao|kMgR=#hg8DOJ0?af$gN7a?u9HVepn2(LRgbgq}Ik zpQ#0S@fh7M*m9@UUa;XQ`N%6Fy%U^P8Mt2@BRaE2dIJ1IHf^G*lygt?el+b8tqjK~ z{y?QDI};GZ*Dim7Fa$#QmX)GpOvBGW~oY4DfgU>%R^>Z30KgTAElD16@)r4W|; zX90sqGQJ3_pDi_EUxJYbSOV77Z`Tj7Qo6Y9DHp!GxQpNxPLk;&mQb+)R# zwS3q{gk*H59uEv(UoQ;L*wpMWT3Yz)GMFfhwHQejmP|OjS{Vq=5wquIO7AnpgUW~S zK!mVE!M>Rp!oSD@5F72sWHdt@+Way7^NX4h$uz^OPlCWXlJ>k}%lj6Ee)Xb#py)h^hGm@l3O5`M~(`|&DZ;$^9fJKFZe2!%PVzf*=uz}`Y-OKkU_LJ z?l{N#o4zgUbua4$hGVA&+tgM#`evlm^RLJ;x37~f+hMt&K>82q={c@TY_3ZvAbz|z zn`ha5bUv0>v?ZuD(SP*P#N*Hd0NMIO|KGJ{6 znVL%*9u`-6fX}7f+S#YmcuiN>=vNgtWfom}f8Y#sp&|w`DqwgBL zLY{Tdh_Mwv5#$%bF4gRV((+*aHX_h%M(z0ichv3QZC}2ht4y_Ox># z-5@g+n1Pem&rams%sFCC`|+;mmSj%70-Z?Tb!&{)&&Zr&0C7nNhux`#ayfuyJ_xeA~v>a;|UpUhqzRkqLM}Izo~x$MwWd4#1M{B$LsIY ztk!$Iu-kY-wZpAL%jeG(3SCl9c(6AC! z$O*}2i4xg@I}guhc-3;*0SOt|Les>7O^3lgLxF%YVgCD9l*qQ=t~~t$x3N=#YLsJh z(E`NrwV$t38*))koeXWW0_&02nS31ohi^_RH!Zn{s%4wf=f?xyVM9zn!onb8cl%dO zEvq2-|0C@!pyJw=wb3LbkRaUEjU>EXb(?ebkf)J{9cg&)HDuhi;~O(kj5!itq#2f ziB4wq43Bw(R>mU%Tp@VBPQLwAg%!D~n}EOFW2O1s-6rs+4>)3A!sq}@QU3*Z z#{-N=i5U5ExUPREn?W~i!}@_&o1c)+9uEXAR9HnmNfzWBBga<^qf&7BtEOa(x2?3b zv#0e%T<9hQ9YLnFZUoBCuhWS2&hkj&`|!~P+X0{8c!1&NQ^-zn;^*eJfX@$bsJ}WT z3{=i8^a`#ZrOD!MH7SZh&A9<9<^sHw5=l^7&c`avEL{$cLLEm7h{wovsFOcK_?c}( zt@@|ZH+5?s%g-P_c0VVpZyghwG*)S7Pl9FH_ki?8Tp++kuU*8~!qRZNDn$rPZO@FD z`H0NiL&yZ1W9Lf;1SkmXHt`3Fud{P6Vnifn%+)g$S2i;Q&xLw2i+#r2P7xdoIC4^pR>i4fYKWRc#r6D=m=V#Rf#Z zduZ=f@R#F$6t6juFOp}(o^8JUpy3ijb7`827wbYD)>c905&L?V*e3TANlpI)*qG3) zp>ybKTc;t~VaREl{8st%Suo5ejSU7^nd#!^NmHJZX3YaV#~Ad?{CZ|M+%;?;W3&4& z-$i|E{X`=dp4l%v6}a!g@j)E#ycEM_I>Zh%(afd{wW$>fNKDlVkKm=UZw{G1DWmf|iVOW|CBXzs_)%+=)CD zP_(o-st=4=XjpM{i(G|}@Uz~|4)}GKtreH0H>#WX?&_>ZMmuJ=ZR#iR>*Q3EBsC?E z+fiF9QCslEO>L0246AP=Ji|p!!OI(wO`II}Hx!n%AetMB8zu`%58Bzx;G*vg^=rj& zMRlS3rP0@@R5Uh3r+P!DK5ZBAc@hrGdekPnR}UZbf)wO8^c7t!D@WJ%bgb<^u+_yU zt4sW%Au&XYDhuwJ?syVkn10sDj+4p?eluMps?7iLA%^B5#(jVtNVETRtyFuZbicAUqWLpViMG3!{2 zzQ{HWXPz!Kps7nMn5Ztzomo=C^T^7z)$q7^+_`L6LU-@B#buut~aopNJ|kLmHP zHC=e0oBGbStW?}d+?r;}zPf-TY!c8hCr9cf?x>=w9xyh|@1&pvRN-`M{hE~RTJ0Mw z%wSSuzn9vkB;J=aI?}qnm)@1w4qn()$h!f4I!;1gNcMgv^)ciQPHEsqLI%5mqQLdZ z*~csGvdeYESZlpr$8I-$YZo!qOfXlRrROpV`pE^4U=)}JX#6H>n8w@o#KqoqvJ0Gs z=Uw*zpC-j)1&aFq`MvNeF&L#340;L%mLJ?17#|~067eY+1sL!CFp5V0MpyWl?g9RI zrTh$feg@sJ1AkQImx%jZf-d0Ug;S*>N1M87Fa7&F3~AauQ(Xt07rQ`?fIodX3(fmO zMQwYSgc($%s_vaqo)EtF`G;tCU53vQDuX-?i#=XD_r|Qt!%q{6)|tMZGy@^(lpiN;q~kDjUmG{-BLLK9Q`2y|=^lx@`pO*LCUF944CNQ+-0QqaJuT zmJ41xx~gQGKDK`X$Ly}91Y93OXZX!IYcrz7DXZYE{@LN6rBG9;>&}xhb3q*MaN@{y zlHLwMJ0VFn?wXnp@x9Q*xA|^N`^lOUb8}a$tW4_Js|MUaulyPbzBuDe2QihB5?2h8 zWSUL%H)sZ_=hWKSy0z63XmQ&s^y+Ha!F{$?2{dq{`c}31cn3AC8>n4#H`>?6R{hjr zH60(S-0ecl_lQ#(GRxv@FCu?wj7*EOa|}(l`~unA7nk{@;Oy=3P$l5(U9#S5VB{{Yp1EYj zQoMl{w@%w%;+{nsE1War@Sd@=2ptd`Xb!!8y~6D+R^>-I$kVa46Hy4-{ulU#_iaV~ z7j)ur_ioYnD~=Ovj7?$J*@lac2>L6_L|GOmfkcM<0A$f#Ho<>!#+W;!uin-tDzG}B zn!aKlvT${I0j_K<(??UY5GDu4>m^ZkkcqxQ5VJDOsxFodiFt>n7*rCu^6N=}PD5T; z@NQBuNG4Jz8XMPWa$!Q8S-S`#Nw`5by8wjGewnK8EG4Fy7YVr00xo;68gLwJA_UWl zC$wCEw)5}@;etPq|AQ8)-W|?v5Ca|o)^ckkX%_diAJ7JyI?AVZTB~;8cNgr0GKu;U zqAFWpXz+T8SZbh44V+E?m6m&))q0dZK_wA!#~?PaAv_iVO#^T-X2lOs@VaE< zGsS0hnY1T<{93HpYc?99cYWzeXM*S4yEl`GeK8Nx;SeJ6N5_GEr5D!>{IkC&QY0PO7O zKGb&VgPV%C;LU8^J+3;$#~BR!ECKJ+d$y+pL@*_5k#|hKL&h~em7aURtLgZBf$yM- zC_8u7Ha+Xhp0$Iho_SKNYu`vYqHAUPqqQi)3Vyx|!AD09GYzhOVaPxpki{8c+Vw7$ z6RyD%t+Fq}7fE9Q6wH}B&=(iA9qgU!7adiv|* z`WZtas;xSZ#z=04Dd%%yfcX^Ah_fYWjn-wgxGYsD>zT`{wFo;*geWk&x4Qo}=;apz zvq2slPN3i&sb^YHqjLO;s+Xjuo(Q~4#gA;?t-T#pDgcu6Zw1xN`KqLq3eW&OuXFbz z2J|7=G)yzSpq3wnhCai?TDFYnIH5wq8E-8dvlgbLNp8L^$2jYfhY58I|769yL&M4= z#k3R202z8srZ)+NhFsfP}V#BS!5Wo?!$> zpIJ2va|l*nK1)U4R&0~1XlfP5;nD1n)z!xrniIC(1 zbw;de#W#TDNvdy%{n%VBeM8C?k7twBr?yS6#NL1j`LUK3DSV)ihRbf&Vhd!JJE`?L z3=Fczb*+?+X^SR^13mBWHcNm$pU}7VBD307wh3M88&+{nbNaXrzu6yME5&C#`5~Xe zJC>tw#yEG+l+_GWwe)Sj!lKFV@ac5}`q2p({s(qy zFW&}7&k+ciZN#~h2#^8h;m2(TeSK2Q@Lv%G^x6=o=>-3sHK;j!O-`z&{M4m1(MDi_ z*T3HDf3e5?>A;piqdST_Eu9_Qx+>E`}?^dk+NnKK?Hc|I14#(`%!$ z*zjdRUeriNUU{LZJ*V`EsP$9onf9;MYASd_0=rma?(nM8;&h55#ZS(Zqzy5rj+AgI z)$v|-Kat-%v;iH^=yi*f4gH4$fgEZa-PsWHHp^sNnNPK3r0UV9)nr~j!>Yoko*JK7 zV^|EUv@YqJz1nEY47MKm$hQ4Gx$9%#aPwc=7pwIPyPs{l7g|`s0qid!7($nsSQaDN zEZfCNQ}q>AZ`p8{5|dcB+zHbV)okScrl`7d5cui*K~oN0R|1;Ex{h`jAU{lu;>cxg zYhdmGDC>zlSlb?o;o{KDgZ?7-#P4a@j>Fkox#Sw<HM96)A|3i@PQ=oV9+iS;!b&*$O6cU1dfzxI>%t`SBBnD-Hs=e*h`aH=DKqH<$ zYWyd(EC~lBqw|2xUn&W{C~_l!P4Fg>8`6VKtj?0i&gija zOb8XDQtT1A)a|ajcuN}OU;3>z60A+gpzUBcxW%GJ%cU*t8VelO+G*0h9GsS<55{UF zp?#TF35+yRo%$oy5}0wKtMvaW%ui(Gm?-&4SkT|gV`cKu0&BAUN5ux{M35Zst*YpC z1sFQ4X)lEj=mind0RBReCyTOx25U)Eza>< zoQSU-F~7IUqj^WvG|#GOD@lJNrUhh0Kb9dedeq;N4mfSG#gnDSiu@#gYjST%)~Zjw zn3YPtO|GB4VWpjbGjc(`?-#y&gc!TsE*dnbiw&w_UYm)y>)|9hcgPXgx2o=EZ*ysA zHv@LHBuI2r{_IY#I*`-7NF1pr*+V<1(^IBAQU#2eh{gco07wD!h5|R7dinlm+P=}` z`yY!3XJoIeqSp{a7ChHN7iZybgqeDdkAGrB)IaaRimvDD!E(`hi_A*;6@%mpoeJ{n z<=gWg8kZlnBf7kFZ%KKk7_VEhd%(<+?#0H?Vf#D*iNtxS`9!{!0f-=^Rx7`wXHwhv zJv`As`3PHqXk6vTgDn`?eMCMS9_&mP$7Ave;`NtBenTLn8GL?@!l8>5d?%7L7GI|T zIxy0PmEZNVrghJ1Z_IUC&R#+h%EzVA>}GhRc>EU(f?EEs`w_h`l;{+%9U(!KTg@$; zh|(pm#@-s>xKh}xt>TahDx2Grlk#X!cqqJ73&22ALi9?}eb!1Uc;)*#4RINnz?I)u zD&Xi15;y)o3rl^a_^*h3r5+a8Y(3;#N%5^OV*PJSqfW%ui2TH5s{z1WJ`wY@6orjz zudK0Qs5vCyu1m&4NVqfV7SeqaW{n?pMgBG6O7DE_hoHeq)Hv2I67k~hmBQE1GUSBB ztr^0cA>*`6mVF6(d?JOQOfh$|HTphd$<&v(fsqs+WwS(b--*T$fUY;7L_+wNFE#$4Rjg{k`}hYVikimWObu!KZwnvpPPr= zRDucG(0j~7)|flZuyiZ;eJqQ?Z(F|DUXZm@Q`lS~2~AS*q$6MSIM9cM#>rK* zc0=j}nLiE)2;RqyIVBvaSJc*P?i~5xlxsTn)blkQX)tRm+A=B@YBj75Q*EOyC1KL$41FumSpRJ={=@>5D!ODw!!imDyP)N2f9rT*Q+>~o5d_VwH-y%^*EJ> zuN7J#ojB1Ie0?#T*pNI}uDbp^V2*o&u5OQ>hU_5mxti>tvr`k*rI-d*blH$|TwL)Q zo@6!LsfIo=ZtSK4&17FBPxSgs#4WeDR+&ksbrY`p!K8WgT$l;%oc<3_lZi@LuW7xH zl{>P+pUH=z$ESa?V<{MB?3l@?Ah{Uoa%(9sS+wEEM>!i z!5GSrprmQHqY@5oHG{ncfM;d@ih-J|YnD`E9v_Eb#Q3OrolI5~k{3f2}6r4NOJczM{F)=YD zTT$Eyqz0>?zfLS(1+#@?H+0;QlOb6*OM}}E9b%Xvwv8zkdsTP0u`Hcz5p8$eUM4<> zE0ANkq62 z*|C|Ox{#kYXU3@2jsXpy$lQ*`@mQw8PM6xj600y;F1@uxz7pX#s%p) zAmQjpiLI}!C^^cX?!%Xa06)#^PmPAaW!BuAl))9fZc|)-lD6){C^K18ytNF%ZtgX7 zh0*5Duf*&&L?7Xs-cYQ7#8gEzcApp*yJAwMLHGS=`HxuV&)g00sT$BygWKUAWCO`F zW{fTgYz_U%Gz>rb`nQ?xt-eX}`3kktf3WRq-WzG4ncro)|6r%yycfwkj|3ETG>@4- zE9aibj0NLdsV3hXsVvL# zL>L7bPuli$2)vS68OPVa`2!Vedn@Yu>p`D3@PCNYXgF7jH2SR7DR!!Hj&lU9afmdU zlFxMPpc34HS`XhpL1L+s^5DkX3J7WO$*SC@iKiczdNe+@99C zJf7l8qqfIOL~EKl+jsKn>i{LMW*jSR?(*c@nncs{u0RoS{}+^p9Iq5Oa}uQ<4q#*l zE1k1{y?Pc1j(7rUi+Wah;Ou?8OdWEET^a`7G@IziX0-Srk)KTwiSvH?`TrHD+$I$v zrMkgjM8DGA>nMqjRP$t&iOOmO@r!)iA`6QlGNhDudKGs=Ya1DTh?L zo-#nxu<}{IoS5>VZ#%zTNM6TDf70v5JE!Xe z&z9N>%Zhw4Aap8s9}qgp3xqj~C3l|~i=~HI$^5YwQn$$)sYvbAt=Ps!c|OR-|6T`v)kNl6G2XytD4bU*g829#I84` zOyR{znN=4Xe@r0CX?X4oKV-3ReN+6Co;TfTx37cQ)9_g6+rVZ4Ef}k~kr;d1!=aHo z{{~jt2(YpQ(&ow^U)NJsu297c(#I^gRaXoKmf@tu%-t^SfEhNB$x0$|DHnC4Ma z{Mej7OOCe_UBIHhD~T}r!>oZ^)uMMIsq{R1E=TTQjJ(XEcQ45{?uDPLelgma2z!zXloWT9za8D{NhN%-7NhF(SOzL6TVS%o{Vs~%ot=$Q`HWko!f z&A;1gkHmIka=-TXQP%al5=* zgq6}dpOW2qlf~_Zx=$;G%EUlM z-+nowB4S9GQb2!(&?sh?D!q0sUp*e4Jdh^!rJ(rgq}#-O?du3^8gxjU6B+l6Y0sML z$j>7k@t$R0>`&eQDWw0vcJ4`!`vV&4H{g9ul1PFrVs9FxGfMC4*mo^;`)p|xNVYvG znl-l?tnm`GTS#q|G|4%jJSvDRLW;gvW8Wf+9D-XNYFY>`#l~( zER+uxxW?;Mu#^egC+o6b!x@L!7o(-Vt=@a&N^y|aWToI|uUswlXib0JqYHwk8kyo87r9hRT4W@RNo$HudA|Nq;WU zJdVXKxuz{p^Wcf(QQc}z!HLHFN(h`jD*UD3&NIn`Sqjfd`Ff8{F<7|F4{8v)jYlXX z+~8awfwDKWiCt`OIR}FFR=s=ZbF=C|L46(Y85aRKRLE0a<6lnmOM_+J3P|obn+h*K zHyh`JKLm0d#`xCL5gd)6aA!Or%&DZ6D@mV)oiw2qCOt2imfR2=|D8>}R6yURTGJ-9 zP+gS8o%HNtTCzfLRD=4>(rLi`X0P&YtMF14G{Y`82BOe>wz0V?I<20En`&XB4X(1o z26OhUVxo7w;w<#CQsWFa^~<19<0J&s5@<)&ou}2Xc?&q_vbwdv;&hF{n^x2{*Q6KI z#!yr!-z}W}{Hi6Z&`qm?EB`B_&GkPoz!6tzSsFXq@VAMhy&sB@`-{V%0#@;LxeKA@ zh1XM9&s_+$EMD$~dNv>xv%L5tJl+e1U*v(Z*J^)m2<)GsjZv2tkGCO3vWnAKd3&J> z7o8L?x-ngLe`vkLq_{@!3snM^_(o@BmtD`C@<}z#Uw0OE#{Z;4d(zRf#3m<*3)B)D zZbUNJ^q?wx*p*JT2`na8HhV*?T4WwqAEuA$?oq6<^A zB&4ZELNi!K?Tm(-Yog0mTe^J}rnz+WpTlC$aUH8WTG!#ql{$7)UuZQz!P5>OZc)oD z2C~dQ+{R*A1y5IPxoWcL2#EwOSQCEvt$R|){P-r3;%&`MG9OU;@uFD+DR!hlg#nl# zWVg^W=0s{^Iw7%{(qDigd#D#hRgdj%&IVsKrr)Psy-qhaOj`9brg)=^8I{7kKk&bZ zY{Fm1oE4r$-lR>tI$Z**w;TXaTWC!YLd=YGPUuH*EQ*Q}BV&OC=4fNx;SqoO{U-MI zi)D*KBY_a+J3p+4Rs@gbPKxiLDEwHh2)2oB4gVsQZa*IDum z^f<7wYdXQP)cf6T3w5OR+OWZ~B>Q3gY7KSDKrmePFSGPnWnp#yFKAP$ZrR1EZ~VUj z)p~dTc$Oo)c#M%*#XmEJTIE?fW{q zvkoB9D!RQ(y~xwOnZ}G_=Inv1-jC;@-jV$N?4jYiBK!8ei}JO^;bI2}+mSiK;C)Jb zbFYWf`f6N`J85JQgCeMft;$8FDuiSt? zXt8eRihixx-PTz~1|y8K{`yEe3;AaeXVk^=GmU^Uxt_wwl2#tm6>Z__8xdz5JVl&W zy$lUuU@W>5=xm9i)i#R3Gj{Gd#08|VyO#?nD?w-MxXH179dd52qMf~;YtW5pjLlRi z!GsU8sW!}~OXbqI_F7p94DsMRu4sjk5ej4DnDSDw&nm>k+QUA^sa6(`Vu2~W&9_g962=|BvZRW&~$Aqt>f4=#|r!=RKe!MY3 za~Bdxl9AbhXiO)Vs1{x%?@oq~#@t>)o$N2-gFm7bz=%$O@GtCb9^n#h*xlzEltr+9 zVMxeD2=qsayz~|mqhd_Ve1GV_St>th@$?p1qvCg%f3qHTn!_#rB$aFs%{cbs zkQNf7@=F9%J{R{T4drXAh^UOD=s!}J4E315S&oGmR6d`NmUO-KRNm0R-&zP*(Hjb$ z*d-m#It5{`+HRLjT##0~6y?%V`dJ^WQSl4Rd{1b~Z!NH_=s=`{*9XP&!^uW_WCX7Z z&65-`NW6Oo&O3}dVIlMI`A^_d{vow@QT*BknAE<0n040>-L!eO!gD4`>pZyK;p3cr z$Cf^*DtA@q+a!K! zoCb5ToDLRUK0rJGJwai?cW|DWSan@}VHLJ}v!t{5GdzxK>w;C+@eNUED@{C@@*Iyh8yZ+$bSCpx zI>e7{6pxqR?4dM8X9=jVKS8YlI-cUHeR+axY#~Nx@Nn$OTq^_yI7`_vI;^#ff3fjD z*5<^5TkdXabvfP-vlztagedvNC7w00AKfme%pXwr70<{zr_nyt4+8&53+s-|?#&I2 z4d{(N%N)uLKI8uZ2$$Z7DB^YOWGK76%L`vQ`8pcFZH;;SEj5S82mImcr*S)+Fv(cs z`7{iPPk0lj{`ndqg?M)ITIGvLBvw)-4Wtu_mv~G}j#@=?8-PrkrBK>!w7$=QZzS z2{X3|_mHr<^HN6GmMxBg&9_U6?03;Jaz1Djwv)3aCP&)7RU~srhKN|jspb@zfn%N` z2$IN+y}2)9(GdcM9d)9|<43*FXqhVCW~XmA2g}9#XG764D^)|mq$-q*+b*?<515!Q zTg)6Tc`3$^x}$;Do7#o^4 z6<+$|tJ%rxar16K{huLL?~4=bG{!e2Wm(_#QCRTQUq7o13T^BhVBw!PKq)XMj5G*4nHa8kq_88JMGT;?qOYphO@nx5z39f zNkW-p8jUWwGV~u|V4FgB&9umEGrE;Mu|O=rz%u{0^eL=h1tWCh#i;wjg(=Cp9b?bl z=Wt&qD^2MGC#RQ!B4HO!c9|-!5WD%a)#jzbHQbHJyuM{L`%jQ>lPS5!q~g;QFl7>yHa)f>4feBv!Qj~ z&2D+AgV*ecs$UVY!Jp{VKGgw5<;z_m?LXdNC_8Z%cEN-1=Y0QRR|nN$e0-5RxWk}i z>RqtpZ@) z!0;;+dCyhrx=i|aI>$DC(8s%v#6cfN?8Ih5XGh4|vi|#DGkzjC_XXp%8 z?q7n{UFSR3d67tFhZ*KX&*`d7hhTe6cT)T%ykRj@;(fu9doqCXu+jR=Ql*$UltT=3W*~ zl=At0G|P5l85726#P35>*jprUi3ifkVu;xEqQ^FAuuEQV)5*jq$rZSy#dVCs2m2e6 zrrNEL*P}EU1dx;)^Cy86S@POWXmJC05Dn3b7gQ7NN_u;xfB9Qi`WdpE)S&z*H{Wp=;zMfQ8+M<+)|C(Fr`J*0#`ztbK&nIR&<<-t?BYre=qJ=WYeDkW zLlp9Cv%M-Z-};mt(04()^V<0wA$E|G1G)*E&YKoyU(%5T_%w>K!Xx@E9O#C&fF|Wb z3ZDh-Ar5$F2%kqWK4_;P#06q?Xj#pHeE|Ayip8-6@I|2}l6}DM`Zm(f# zjmxnj8yX+$>sCHQkhdkGug`nzmq?~|;F6aNJ~l2*VoftU5)p3@q6;`2kktL1-II0TD^3g9e+6b=71Tq_IG$(d1(7OVRzx zdT&(>DeLvT{H@=3Z+ajaLd%&=7E@034B{U~Uunu(|NsqQtc%Li5 z@Nn$~=^{JA-Hw&zlE_TF(5IH3@WwCWm4q8B=at+o`h@Frg|%K_(W6;0C%w@dse*n& zz4rk)WS(@lbw^-+PT{mZe$XE`Cab1mR^wNGwdeXF4009TBl8DNj zs_y=D(rehl=6JF7$l`u{nF#F?&l2!~dz;d~j!RqKj~@@CC1J`TAfZ*FP?=FGD^pb$ zD_d%pEVb&i_?f?gn}tP1g`=TDRRa`2RooT?%8`5!%lOM0GEN05h=vMVO_{a2xI;@j zxTO`<$8Q}64h|L#^&Jh>xw7(3$-@p^6l5G1oAdBz*XNy*;s8tSoUW&piE(z#@qS(v zGTT3phnzT+q(1$UL**&%;)k91Ey(y6oOR7U4%A98)zd=ns~1AFvZEkTocZ;yx@m|+ z?6A+;C{B5?!U9>zs(5EX+Yr>(G-k-k7O^EOf&z|8uH~CRi1jFxY%noUE&gws8N0H4 zMwtd@7ng)dyKqy;dA6r5%)0W;ZG+Dc>~XR9$;Bv+OI~%@EspDqc1Fpm?&9TMX^6dw zP#skUwT)39_6$9wvOgVQO}UmP0*w0TM?TpumWGsX&Qet#u{ zHp;T)nCYWlGjvWY=)um?9)wlHwySA6cjl0^e`7uD+B!R?X@S1ZSflv>-D2?66`v?p z4tD0ogep*CEu3Y4Yi5Rdw4Yriz)E%|h>)G3CMA2-Q$vt?}T{XPqvRc6xH_ z#tfcuD;x{Ej&ZB%VXn|CFeey}%ts4{TH8LR+Z&xD0|@4eLl=L8hn;kPhva?>-{&x9 zwVB3}5F3G6mU1_N*~{72(#Ps{J3k$|s^Tg&v0rz&41-Q1wjtx6Otv@tD=oIJ{Zj#O zhkH=fUMC&$5SY7`YCGT0+JupcvDto7Qe7=dwUtSYw>}^gEKGG)r4M4=)c;4IdV}qh z&3h-Cwi?ujcYpE z-5HyE)?oVTt6!lRGDss%PS*Fw@>@e*r>_dQ@z1ZDWymwR@wQ@8#x~*NV3$dM>Rg>& z^SXW9vAHvmn`mE}Hg%eYL~O)_YlGbGGT| zNHK8{$pG!pf%VKhXGhwOy4AF0Jkn&brDJ|)x*lbD#R6a#Wd|qk3PxC>6@n&P$Th%H zTH_ys#@fn8Y|Dv-**In*GYaK0aTTvKMbtS-i+5Ua4z0&67Tk~MQV}Xdh1J(my@Ods zrYZ8?WkZxYM73+LIFL?P(&>BD4bW!glXGf+&Fg_F)5vMiAU7X_`q~_s$7p4xX&zp# z>y$71*~fUF0RLw^aO;)r;lyMxKfZD9y%xqUhrEl1G|?M-Xl~2`6L~LK;MPCq!8vsF zYfK${&hthwS$zRtaf@itNV3 zF&5Mrc+fJqGNLrv>RQL~^&Kx+PUV)#Y`|*_*vs9U{E1kDU&f0v?)qLICSJ3#N~3ul z1{K=l>ijr)$F=ub>3VY*5lqNEW9}S;%dEA|7Vht;eE&iE3)|@_5CIZqJwbL+4aPFWf^pSe}0jxhDb4ve# z$XFnf`MoaGL)>#wtcY>|K6@QoK5OEdLo1?Awq|;-1obz_K)q#p{{)QFmR1(cj+Lt_ z(E_4lo`N_)EXzdVkMg~Y05Uup%n2&+XIK51FZLap$b|PhXyNsuv(l3>g2ks)so zbf(eY;K~an%lQ5yj02bI)Ajca0E{xnN4%^fd`_|N5JZMO-yulKtJNPi|Q3DBj z-AIf)r#rX?tsq}fA_)R*#5X=7=z^{9-$H+-qh7C@@)~7kc^$|nvRCx$bM;kHMdQD&AZs)^WO1t17FZA+~Sbf zTC$xZ2wJ>%h8o5SSl~T_{?3Bfa6jI{56)X=pOHXnXqov+7XDp zytn#)6Qzl+l!>^a1`ZM&Cy;h`^vgj&JJ*xRkks!7IZj*TJE4Qg7VYH9^9clJi?kH5)~IwCyh%{o9T5Lops1;)j%R8PSTO2%N$55b%j z<-03ktiMl#G~>=w(i=Pqev%y})O&Kr3KSJYyW=BL)mWCV^NfgekO`RapCBzjAz0Z& zluL72Dz;AvubBjGhYq5Sx7L9I_K63U)*T>$H3ZiF16?_j~XiK z@>$mM*(*JcK*6d;NTD-$pAUp4V*<7|`kSf)WU;~pu)@K~p65Z!le0N364{CE~E&hzAqP~ygZmPUzdSQin{LJYS{kh;rh2JU%x}e#H~UeagJR12!6u_@h=ArDud-RfM0erl7?{ z0nz*G3Fl?d9YXm%Ld`qeR)piK-pY5=AJ(j|Ca}f!j|$l2XVWaGM`>Rf|C3PgGl@*BXte%Y{e*VSuzSLAzfdwP;$ES^QW<`K(Qdjo7$o>@M0)XalH1-I zR-;0JrWyIPF1?z6#J=#zDQ=cpGi2=0__px;Tj;(+A6}>HBJy{=_YLEFjpKv(ThZ$E zh|U;%j4L0h{N_g>65R)W68|vSYQOv4=GRilgjzZ;B|y3UL4}N}%uf_ecAL7}ANQd!)M4(ykbv*p@LE~l{OgiKjsiU5oj9QrOr^$*p zVGe8y>moc6gHO92iDW0k^9@LNJ)D%5f<})cZzmKzZp5)?2n^?s=NMqePr&Vcc_W9sh|>SQ zr4=pzMe-&^@~yay?P0{%Lm!i{gA~+}QfWf@#&d(76K^V7vkjH0{<8POaBmxaLvezk zHp+?j9ZmP)Z)nY3KUXqr)J#69dr~o-wwi4GC9tvG6}4i@Oy`WFqV0ZKs{3RFGz&ok zTz)p58gB9jebs?^c(|w-xX8MPou!N5aO$sMJjr|>iH2*Vxm;YW=~svLsbaR|?%R{z z?$le8-k+$q#{La(IFURE8duc|y-%B6pq%<%X~NCe9`UogJj?ToWu`V7^=2+;s+HJT zIh5#t2uvY9q~Jal?+_Qgs+l@AyYsAD$!w(B>hsQ~GV1*g;FIKZ7I__`eq8pP9M*&Y zn{cVPs6Ba4Y~)@Z5k{g|X$7UNxadLHzO#!-XRLvlIjz$sgDW|9`qh#NN|mpU>0=K^ zH2!KWL1vMIDP=E58a~g7l2y2Y-qz2-xkXX$k_t+F)5lHV$^A!H2)&-sFU`Xr$O_Rs zz8Q3;O1+(h(f8%)EAU*ZGsWo$x5hpcTR$w5nsa9|p8F}_jd&s;Oi4lI=E^}aGuwVS zdVoGW?7BrEMGrI7eM7s>K%2^5E%f=eh$g*us%mCI3TPE5q;A$LU_Ljeb#ouz*g9@f zUZ|_9-sMh}IwkW1k`4!6f26bWt846l+V*X{FU~1GLGG6Num$b&h3+qKhfj2(oS4%Z zK=}Ux)DxUvvaqV%@!SeEM>cPW|GKPyNZpO=OII>4(yVB3AHTRc^&eDh7}{+pctgRG z24#M4^5foXv46qYWv5A6F56nK)?MGKNK-w@*7_9T6nvKUt#tQKUZ9enJHlEkzL9rX zFNwOwu2SVWH^-qFj2)-*b``e^r?Bn=hHlrt7C?AGkdjdxQW zUWQP{&?A9w@`WO}b0CYy^k7P$0fY1Jd=mUL)8}~@xby>OFpVsRJ-Der=AV5+VL`AA zw-e`fhd(32@sCF0a8ft)Lj|}(EM8p2gf+enu*1^x{EMihT$%$OEzaOdLn9ZqS^JXv zcidlpB{#!aMHqI~VQ<&n@ERLMl z8{CPi%%p>rg3^KXp|+i*FwV99*^Z^B?{9UwAm{3!Ld!83T$$VA=Y%-Iu6VD7Zz4To zgWux;xp$9n*VB&nSgoY3XsyAkrdzgFN_V_?@X-P^(e=u(vT(#tMmPel0Md$C34wRbWlRJlyNO&G0(aLdRlsX|%?X#R$=3*IZ z+T+HU#Ap^Bi(7#l^@V4NEY@}m?P4AE+rdTlS& ztKwM)0!SFXx7Zrd;mn-IY|FVf7hW-YRTZyJXPxyuNiiiL(4)`m?$PXTY46U-Gr%uD!Sk|g*X-u$ zO(&}CA-q1yJ&GLnsbj?-@(@?V(yK5=-Cqv0%=EEG-_j(`lPog=gMG1zd+E@cfeF$c zwpw|W^7Pa1qY(Z>;L@iL-&D5a?8;qbQ^Xl8*>S#An4B%rSWyPh#j)!~da&t$1ky1+@uC z9Ne+?8e2}806hm00Cj4?U<EHe%Z=>8`P^_T7dM*9+1#4fJhS zIWe$BR*igmjl<2vTZ*F05&=w(e}>2Lbu6%I!>)+Z20m#vO=|Ds*W}j4_OZ6y-N+~q z+jhin2n9`VMf^LkI{rVTy$4uRTemhU2I(XqLXfU(0qH0p9RUHAF4Aj2r1#!CQJS)) zcSMR1AV}|Bl-@f80!W8YLNEWqz4v#%bMCq4o_p`}49A*l%(4OxSS2!T1 z@0m#SadBnrCoKqbe<@kC7@}C{`0&qg@YmIk*UH~D@Ml{AN?&o87fs#T6nY!L!S3nb zK}qe>|D!hO%jcy2A60s%8bT!6WYqCaVRW|8pxB~s8UB^3({X;5GQC=<9I0!Vkk7j| zc_ljo>JuMjJNiVLtG*lzk3yHaV>LKiTO`t?p^W8z7IAUc(PVNwMqeaB=#e&aTGnhE zM8)SPWMV_l>dRx^p}Uz|fiZo}&&`d0-%+oTsA6wuKvb~-AQy{_<~Cvv4&`W zI3V2w-!*h;6?=?@fxz<`LRHE}GuXMIuYp`N?2(SLoK>QV#r4IFe?vH~vA+d*~7N~&#tOkH?i~by6&{V>T z2|@&FI$A?r*w>-08E)=h*xKk!tC<#2%9-GtdS?7sg{9;1!*m0H>zL=d@nYA7`}?DZ z>A+}UUQ((z%S!s_t7B|mhXqIJBQ<8qw&xv8o_IeWKTnt1BVnc-zW*+QenDYv{CNlO zD?TnC59-j+qxkc?OZ`m#cqfmAPD!FAg3s@!dWX5LR#~Z<%9!~-;B4CosyYq6IDmhx zqUU;eULv{K>Lq0vAO#|!F&?-98mFzEYsTUgKXGUX+#uDrpZEH0x?JbnfbSv}8={Z% zlhAg<=qk8-MLUh8z6}xTIgpi1XFG2Jl23_u)IaB1^biUmT|hmGhLd^_il!?`2w=Vj zs*w6v&8vdoG(scIS$JRphx|YpQo8@fBr?o(P*Q(;N!#Z#N7kj!{|C|l66<=tGnv8k zIXCMP^2=pII0x`7xBDGZ^o8QAAVVrcyg_oQJ6}@ZqOGh*=045iQyk{rA|bPJBf3_l zez&Ef&5H+3Trs}OMC!MSBwSzyFv15++l<#E^xXXZ#rq?#!X298^AAr&@;6F9W`qjS zuI&J>K?_y^Q)dTG00%6>?JAeaOy+K z>gmPS=hg7tMXHBe(xA*2=e?U0Y?i1?$DvCXMMj;7voyR zLkxiPoC78#n3Ya!VV)3QMaZMIg#!GS>AvUvKUqId+zY3d-Xu$)KRr6q$l4gkr94d= zss4P3dmbzbN0@&QF}_1bbg{iF*1Ahd0HSc*)v`W^aOV>8 zDg{{HRHQIYzA=oO$kNP@b8QmKeVCdanFH?XenolVdzUMY!c4w~jM;k2m z1SaqOV_KWrupq+ZI^0WrznKgtjDYvqe?)-)&7}FLeR40BtwG^RwI7*EXCxrt?-n^$ zw#KiWXQY|G#)T@*&Jq7=Jz7f6I;z3L_D$!0itEqZd2S&fa+Y4JX)B;xSV>c)Q8kCq z(2E)?(6f&}{KCEU!k`xIS5%9AYuUMWacqPy=V6L-ua8L(*hIE+RqAT1HZ^M!FLnp# z4RNyQ8fV-(GY>SQ`W}H_ICKSDE@Fnv0uFr5*`xPIBCWs{URO1Wcszq@twfS*$jD)c zYeJb=fq?3JD3s$O3-1sJtN5BSm|-!U`U>(oz`K7JA@VWNB~Tnn?Hu?38qdbbsisYR z#T9u)_1z!Jp+vhHW_p7bIrL;Co6EQE>(zOix(CO_`$r|qL>tw&<1%Raxh8b+>-HAc zGkdGLkl(F{O)G-obF>!T3ti6dh;%pC8*K%0YE<0|gURaB4a5Vma{^?H7hYLC`%Dco zJ%pN}ce*so_8Y5$-(CvjnYoc;xNpwgpXa((b-vpb3n2HfXdO#Zd_-0BrXT+O@*#SK ztU~E6tq(~ONX^h~?{588wUdgk)z>(a!aKiIWcLfJ%QP7F;%h+i(1W0t?s#1~B?LLN zaj366>8I#D?@e!JgBCA@o628}(89TT*B0Ou!O?V|r%ME>Rkxef88#;vOAn++Ix3a$ zHkb&ua0?OTs(6m`QRJl+7X)CfgNSVJX&X8I;rqwTttNHyv1xIAhX*q?hw@c*JX;Kg zQ;+IhJkLV0==ugb%M8qx&Z=&W$}xH@#Jgd)pbm+{15@uW`dSwC6&c0X+2YK0`RY8G zXqsBaMlsYjk`l}?%73-MW%GMK+OUU;$&iT2WmY~9xKPsF${Q=>-Mb;kQPHT4deqKw z1q7|q0-e~F=Tx_gOdm2(K_QL~v&rs!UAEMF#vX3$S2<`}_Quj}KhxQZuyFhQ1eSdlNu(oSbwJ*1rBd1AwE%o z?4`i^V2-(@p9tpDN08)LlLGPv^WraFn~mh1{UDW@K3YE|)hsSt6wxfG?vda+r6;)k za`c_emDRIKe}VhcO*AoE?k82OsZh27M0;QSGQPTnMCU0S!P?#1QKKW_ zZ@|i|y&bvAlqeV-)PB_R&+lzrGJsOwjq&^Qdk1KD5d4WB%spiBf~M$sHl<~GlfA$| z@mA>7KtU6g2EUptg(Uy3429%s`~rZFVv|O&2yHYpv1p&X%-(7J@YKb7*Ulu$-(hUJ zPwEkK)@=oDOV^J*V`<;(Mx`F%zjYLJd{Ow=%#EUmfAHm}izD7v+HNd9qJUl3vi9dO zEJwY3=qU&3ztmPq-}@RM3-NOt3+*oY%WrLuv)N`vBl|$9JBQ&Ak)-h8ZhF-nBe8=h zSw_->!KZ&IC5eUWU&KL-XJ2<4&s_MY1b-tj@R2;mR2D7(aNDp zeNqNRR6FY&w8GRc-?a6*&hF`4#e1u9(jVr^TSpW=6nOZ#v4^@z9M`2u1`-(#NJ@7-g{QN ztSQR8sU3@zb*3Lv$M1C&F6G&N_xK$tb$>FAnv967t-;xp;iprL4NLZMCof4c;OwcA z1LPDA8o@P2rTh()cOr^#+>OJVo$XkI#3pYx_i5k|TwOAazd zcbEI+Lsv3S7or_}TAbRYUT`kC*ft15JnGZxzlP&a+>@V%K#XP10eAPk+m>C=qWc&% z<>1Wv;`xjvrwf&=ztj18HjE_!J|-3kz|hjH z1U)T!+kONyUj_1mc0nidpG4tf+6y=Q^q@R*&z%byY&kMK1A5y?7wA21&|=!ltTH`i zP#qSg!YOCGXdc(FgF%T%0HlVDf$!kf1RK0^hBW;Y^87Z_VFB?3ueMofnd`WOsx)x) z<1}c8t0`nLYEFu*^Ciei0_R-O!1y_!D)n@MGCelYJV*kuLpoyVvdmgltS|N&T(fZr z;LO+g6j6zKTHJC*KMan5qt@y3>ZvUqLvdo}jLgaUAT%uQ1;g8Y6zmwZoGmOJKgr+ld zjQ%DhualZBrjc#aUw7gxQSNq$oj$LTpG>bf*(cc>o~L^x1SjcJOOb?Z#zoB#IcI6j zl#8R{2adnlU@L(>yxJ+Y+6uJ;zitFXvCZKJ3H>7(c+WsqU~y%#;RHu(zTz0h{l|U! zZ_nYJL-!(Fepm`F@zXw1hDQ#ot=!oJ{@EBLG@`zbr6HX($It;4LdIO+<0(8JTTuLB zz_O6BFjzYp1X|cdbXb8bxuTmy-keoLS*b#2?? zw(%l0g=4Qo-xWVc<)R}N@p~{&fFjE`=e#BhSTs7BXTnM(ytndwDs8^t&{{Uj(ezVw zxi}SWcH|y7Z)|j+sK&>;U-N}Ym)99DoH>#Nu>sgp(+5j35fY4Joe3V0cSix&>bP*9 zoLg=y&f`Oq2;%~*L~QAV06_3^9r1}r9!I;^?8ToYGJG$~vgd4Jn6mcTW$0Sb>{y!1 zfom;iJ@XQS^&QuIIDm+g({NsrV&lfWN)NmNu(558^>4!c6~b z6>nnsAYSvgx^3wh)m~YTveYBYj^j-Z87$`Q3o#;`G-9~nZd{_pfIc(cCZA;?EKhEd zbkG3reN0Jdi7yeleH{7=aT!Wv8#gi7uw$F!tx0hX-98U@!c2`e@H7bn*we0RK*LG~ z7ATWJ?sc^ZS*RBadZGqZqlDFGTQ0o=be$6vbp?Tptz{1{NotIvx7c)Od8EnIXZ?Xz)XHhw45$O;zlSD8i@p~^UA$-@6*_Q{l+J$M1Jp??^uIB!jIP%eYoc5$P8+p=GKq~EMRk>B z+dACGfYjRg_B*wx)Xc9uxZFt+qnmGyv5Y77yIhWWd$#S;L$K^V-n)@knv3$aip|~_ zQ?YY;_GGzpjC2hO4o#lFgFqy7dUctKFPDzdZ+N$wiVNT+O_iO!{7ksgY%DQ%$E{VnFkpRv0KS88JH<$4_nsyN(#ei!ji2o z<8GIuF=${CKDZ*g7<%W0%EtrT7yV5l^(z2E8f)XJ%_@eVU>GBWY=ppFfw3rP%FEjN zJc_wt!kx8{BbQchkp=NIOuDj%3hO^+pSj_e=C?4fPHZ&Zcq+1r2zr| z6$~Ft^4LlWBjOd|$jueu@>s5FLz~uK* zT18Azn~I;QTTl_7P=02`&$)rTZ!7 z5t%+-Q1?@Zy9C^z7Bi-55?o-&KSs}I29-hGn#T#H`bEz3+=&Xp`fr1~Z5)zFxyxG2 z1U=|wU0}MmxC@(speZK~JYoR2B5uMT%p-B>;se@l3u)_I!O1)Cn&0ywhFc-cQrCS^f$N39N+<>xHI?W!8nrD51l2LaB!74;Fr#O;@~w$3!=wg zI21xpKJqOOCxuZ9St#-BYqIUxP@D3hl zW&rIG!&G%k;M#qC#o;kCX6NFKqf+sIBq{KTYT#2qI<5;dFVKn#(8MjjpGk>RL|`F% zKKf!2Qb;N~^}L?whLWYK_lZJt(v@#bSo9AAP} z8RPc~&1Ezg1YUdzu2^AUQhBqYu5r@K=5Ct#og4o6$D+-XIDKFTw}3KGD*gQC4Rd^< z|G{L~*0@1)XfTf4(MW9w|GFW4*kHv{R18BE9(%seNQh75+}$5ioVqPp()77JCyC#n zy3w_|V{Cy+uL@zG=3MI9*D)px)mzcGxxQgO8;jaJqxXy%h-;+@;(*QlXhg+82|v}j zE_E0tv+4aK!&1~$s&T;imJ@N$u=dpvTFR!m(BbP~>(WHfO|JaDpdn7hXfC#1;QF^Z zEo`gjcAI~ljE$9BP}}J(bmr+hL52cSbelNB2paoV%91MfEevO))n}sh<}lE6D@P|0 zqNhDm!^>C+2vX1#CSmipkbZB~jkul-i0d8Vec0b(eUIu_+qGzW2UbA;R=}LVuh2xV z|8Gi!=LyQS=A^j0_lP^U(Ohc+E|&4!eVp4}%fO@2y{4{m#z60&!OYNp@FN)PN@uOVaf1NRfv0pMeU4ZO^LTI0_g6zu zlV;5V?zI1wf6ku>WJ@xw+nJxbDP{WMNtldH+r7%t4VbBw&DCg@DTF7)eqpD45w5fY z6sIY$m{Z0VM>eK`&vdr2&-$Wld;S(6)3)LaT}R1JE2qvkW*162J{4wdYl_qMU2M{C z$u<;g39o_9E zenS;y3-Qwq-L^f2w$-bGza|cy2X$aR3QUrL=U?jV+6=0$)}xOjs%YeUtG1eIMK2e^ zFkrEQh+ci4Z+x3m{;sfLz)N^C{6x9DaFPbuRS;%F>+D1;Q%S0Y`i`-cTqv@i40EVx zNd7eKfVCw-3I19V46~;#Zj4%(4lA@bJ+9W{!?(F$#OR_Ae?@KFF6D3@8Jzv$% zRN2mytqPT@KW5;AzXZTp2oGACkK#ogOpEQ>=&KjNGYQxlG-A{b?AtXio+eMP!@eyr zz-43T_IR}mThMoCI67_$*td}oYIpRmaQ3@LChbgvu0MPUsf zrv`5RyG@l16sHv|hB)I2PMfE{v*tFi!fqEx9F*gawo2^gYY|l9VVkDwfsVORsPgOL zp_A|BkivQ=#WRhw-w?AD^B2pxA@D^dEIP!0cak#sKc~K=;t8 z7I(((4wNq^V>)~07%S<34xTKmr`ggN${N?l~sEWR){T0W1J0eEO*pJ!oUZx1Ler{CipAtk z*+zertS4hUX*o)EH(qLq!S5`yAg3}|rZ}c5zayi-_qsCcThjwxhV&q{rw%r6o%fQj@wx;(2p9_)Y`@p^~WEqCN1-1kpy}^neVjpmINc0S{`QE>L=F?f{ z!zPBAdph@Lkw`3J+$0UY8S!`yWt|d187@DEL@fJ`G@>ViKIs z5h*Rge06zA*{R;4Q-M`~F!gNoVOqRID-M=cwdp@8e@_+^Tzp!p_>T+BZNEZ!#}09XJM49-UdFuF8DL;%zJlX-l4OmK8^ zSc3}oz=>lwxC86aaQ z(Lj}a26v;Q^p5)|w6mB1RsoTu*SYGLVAv;Dic6#R~d-#`Kwo~I69VGK+p!Bt82uK+Lmq` z1moUk=Q!6GD)*?YW6;`%0ry_MKynEH>*5x+N3ptSp=A4&VnukB@onmZnWkSyJ6Pb0 zUzSgllid$^yR&S-K=ve(`xEASqg4D z2lAj5HABc4M`b|?L5nN_xAZaoxXJ)7hxzCC!J~AS3xtR;Ohngk&ii&Q*Ip?cu(<2$ zT8Ey8;zIt-*GCfClUJR8beY@Z)dR6d^^tjh&#kexLy%o_myD~oe3c|vZoF*NpnqmD zv6;Q<_$vaP_ejU;(-o3A)iL(c3ILN$9~AGL1|OTxnMHj!y3++jh+1Um&y9K?kYA{0 zFRg(%q_HT~s|$Sh2XC9a{9UKYI@Po4UM0S)64{bW9MjJqX2>6SQ=^(E?m$`2MqM;t zu=yGv;)+rIzbLLrqTeEdl*m6lt?TjjMUGEv)_#Q``t`folChNC{*+RaIt5h~aofe4 zcO0Lk&$}-m5IZ@lzSEjnb1B*(qxF95Olk@N>^Bd{GDAG#12E>yw=9?ju#2u6&&7bU z&r=Dto3kWq&EXW1%SE*|ncaB*Rc#h**Ni+&(A}sl8kI;aa{XFSJgxg!`q9iQU<Um z2TcN*69pkfI2}|CHjZ7IzBZE(y~DQn3#2T_{78iYvANW7AHuptM+ef*&|Q2V#n*n> zU6&wn9z`kmoru;nG(wN+67YLMQ1t1L?043b{T(2Wn|0|Gp$<#;ev^|{>KC|TteSsJ zk5wI^ARaeVjFsffH{1f? zorhdXYPT5(I*(2@Jw(<7HMO>?YF|3)pD5z*eve%(_C_*%e*zvkOC+UUm}7@5uL^l& zxo3Y!^jc|pni45$ckNIZpw+MdnU52IK}I4Ha~y-+Nfe1i+=AQR`;<# z%6-ARDJlK4NOL$r{^RiIm=-^(V%m*Cwkj_a88sQ|=< zZ%8T$F&m%(rbX4I?A4%bMe_)BgH&KsJe0o}Px0PuC0IEz9FHtDmprU6`ubBc(aH(d zp+tMstjVKPH6B_wFQ0<%r`Z-7ex^eT)$F?;+iEVLpMPg=aum8A?6m2jNF?YAR4w1Ta5g5Fj^R6Nk0Eu9%hSeJFtIbiX@3CiwD;-UtMnn{ zX9=_)FB0>?h*4Ack0!%&r6(x74|^FqL(y<0&vdr7wgk$~(W|%lGmW4;NrYF=#SJJk z1eM+t@oAqsoqc5*LhK&0F%81T(YZM|O?0gLb-*A`=D`TDKj7k#F7aKg!ibA@*cL0e zu3DoB3a?l~9v=A)Hie%*=%N~TBAgOV@csot{h1cbZW!;aaMbQ8Gu|!Xz0|6@sw~v# zc>*e{*X#A9n}8eVqzp4cy`+{U^CZEkUZES5#ROUHpBvpm=5k9AcynEjPFZI9XQQTL z1ZYYa3eX}TH7#Nvyum{l{t)C|2Z_#ix z_f08m@o@(*f8k{7^o8F(WnU6+L?|@rMV;~>K64M+-QHrkR<*pxE$nGIuZ*m4g}>Mp zg`F0~)vZ6R_?eR%vt2M|HL7G?vHt7u__XpszoORsSV}xMT>~*@71|f5=Q$CF-8oLf z=V;ZW&uc4ehzC4#x|8*h@AL!yt|ymRNad z_nbf?SccX7ONpcf6-C{;Z)lzt-BVTL7gz~`s#XbPxnlepSK7eUpwCNKUJa&evBBS`9q{}i3x@O?TSdE4E zBqt4pr1SrfBK6=2^HPyHex2@o!@D%L5U&XES1{B2C=>%fz)q+lKU=G$>2{t_e#E0a zu$)0`%lPHCq-Hf}qv75?t9eZQjWbxR`Q0GWFk|m9H|G`R=Q^+k>nudqymkM4 zw|V!E4a+6$w^gr6$A-;n!!f;t-Z8T>thI{|P~R&-<*a!uwt#pWAc-F4&e~WWmf#I7 zzP8f+=@unZhnHc%+-Dd)JZAmiyJVt57I;&GU`LlhAt4>R3CGRzMl;KyvCG#`Hp4Z=-Dve{Y|FiXmVI58`AX7#PW&Agwk4U&Nw4E zqIGn_9(1&D{oh9apAF41j~TC2HCywQC7ga`N2Q(! z{kXm5Rk`_2?J*<%)QI&B4!as_xwHbT!_<3FnpJbfqq#dRY%}E1$3GNgPK9ML7+g)9 z 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

R<-*A=b)!%`FS>Y}f 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 diff --git a/deps/fflas-ffpack/benchmarks/files/mat1916-1916x1916-195985.sms.gz b/deps/fflas-ffpack/benchmarks/files/mat1916-1916x1916-195985.sms.gz deleted file mode 100644 index 2fad5ab4668287d6f8ff4c1d28bcdbb4401ef7b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541762 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

f9+$krlP|pZfJ_+D5`&qY$?4{ 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�*lx@~?sl;*?DIGYl_6YMOUv6bGu;5UmlH?* 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%0D;jwhquqPx zPcsho!@?ljmz5P|&xVj=(*=1r!xvitx|xQCsuTMvi?psG{DLq7(XQv%?wS;T ztbKfXQuqGDTzzkNNnE$}l%uO?N;V2~0XY{zo!S-3q5 z9_(E1lYWp~`L7{co7m&${5*_0P=->o7!?kQ!UV^ngaC5GaRyfNm^coJ{sc;+pO4Co zf>g`f3sv?0i7qrBA5-Dm_~aAXSn2=#=Gh?0`=1w3qVaGZHr*@+R{3!bdEPk2Bda#1 z{uG<|rI`6VDI-%d{URK2j5^9A|&!#;A%=)AsQ5p&k!%OZ{6D2R!g;86KyB{Bjo zi4s$E#U`*Jy1hF`90GJ1+#$=-MZDJ6egYm_Y7CD0Dhv`Q8;qs$mUjBM7NakLU*wl7v3DiedQv3s{_=jz=4-H};Lc}!KvUg{uco3># zT@l7T`}yzk&!7*7W9bR#R^$A>2`C>FFk5Rloop;VORs+UQe3Y*%5QS++h)KSE0WVI zqzES{JX9O>#AQ-Yt6q^le$C>}bW4D_CRIkCi;o?DzhIypww&2>>zU`lv~N-U8&Csj zzSoHVG0S>g!wD)Q107Zom+g`Qp&VDd++loQm#mpr?zD84i(6XBj`YPktHF(vhU-GB zh4s_V&sH9Y7&*>E5}QMfYW8pXZU*Aktdz9oRL8{7_U zYwq-u3p&x3Iqo?=5W}l=cz9W^SYZG-7@fvyx_GuRG&4s!6!$JD>`{4L2^ea9Z+MY4 z#uB4e|3TjAd)D>~v4^YY>Mf zmM|+$)wSB4CE1T6_noOxcAP4$ky3Dc^h7_M^uu1-NYdgN+JT#>iJjH0lay2HQs`0( zP9QoLDei33tITQTy}2EFkvz{z-^`_FiziTwFwa0^8j!^`15Bu zqL(GM)dvoXo-VVIgrQ(`F0y+K^e6l=Bnuc}Cri)T{rrfihT|r_pNhr#nY^=HG$9wX zvNP&_Ni{WpG`=&)+xc}E_M9RA333Y4B$S$!q~MwhH|YW zJPCC;<0$O* zRar)LGI-iOlU;Zd-@e4MhCD9h3~ue`;!pN`%}R(6tTJGG$0@wO90jPJ8^0PZ7379 z5?|GB8`9%1&|@c-g)9Z&l7{m#6d(x{*R-RE%PEHJP*Os9^kTW8gK>SXQw+M>lxikD z<=u!MM+Xq<)ZnODz6_r!G4O-VD6GaznjS9^5&ApS{Xs6yUQ#vYr>iET+Eh5I+B0v? zR-k}o2G3gKC=^{?_9GbXRR6FMY0m*8SrZgy8%U><=D_F?B*=KaDS<9I{ba4*DlfT`$yO5z^M@GwG{o^ z)&&)-w?o*IW(D{8wBc40&(Iwg%Ad`e4L&D#3`N(Kz}f8J-kipobFG|4pR1iPmST0x zIK22VZZa1n|CHZo9)q}=OmT6u|{7DpCam2PY-pc;hk&pmug* zO)r(LvF(kKLJM@I9K1*2b2WL6MM0C+t&nF$fQWX$y80d{Y9(grATTRxAo^i?-FAv0 zC1sO){EIS$5e)~j9MuOMFMEX!0>99Zt(oP|Opdu`^y>uNdxsjfa69Hi`pjFV^HXTJ z0`Q3R*wojZ+n?yAwpfCHFpAWP8USK~p4at?`rf`zFH79a&ldU?*#8GI{y)L(tg`L+ zIe#N(im)jwDxq%^0Dpfp7o8%%q;XcjVz|7!lNkqP{fy9ejhwUXQN5JuZ|YDd$p@Bf zWqD7hiw{HQ#&b)B-jEEmSe+kCu{jz(X(eG;tQ;wtLxYxWzn%W(;Imd5X(4_7tv+vQ zP*3-}2Jpw2l)KZ={|<}JRqZ=x)&c-2bb=o?+U@s0ddPa=@%#f z!Z?<7XLa2#9UX~w(p0?YuIpc{N2e3c&f!4g)oi`v;P|4TTdtJ*s1(L7e(c8BN#vY~MQS?-z zaOtSN5V?GHu-ab8L@nDnZmzdHRi+IqD(C}B*>1oQANP(7XQZ^wY4}JXd~&Ax;(@`h0-%W4?#|yy59zcn6y^D}-M+E`&^^Ab7BfF{?xIon?AaFPUjNkPuDB%> zApf4YVnAhDzZOx9Rcjj&XUiF0j~RpfDsXKsFQ&MKS|dJM>J9LkUFCEx&6dUB%ta12 zD6}i+&|o()l)0HQ;GQw%%MJjK^CXRuiDqzsTaotQWEW1iv`1GGuG7WNBqQqii}LH{ zPmB|;NGLg{q;2q+3aOjp zQ}u7c$v<~@A*SJb1+9VTo*av%DFq+DKCJD^3Wn66)UB@-?3@p<{7kYI$TVeG3+(Kz z`Sh#;7+p^GSW7LE;c?(JR=N4dIo;q;l43z$2Tb9jK4bSh8G!O??nMO>JS;Jsm3&*m&p0AOrYOw!{bBWd72sHJ z9L7PxHqt?CqLZ#iL8uJkS~xma(w`yz6f4_0q9EG0I&!0qgbMA+w&{^Q({nMRk(8Nl z#(7?T7x9>q$c3UqN5E#Ow^(!X)w2$*+ip!J`DfE6&&&Cp>GF)$Y8K2Cpa$6W2-OtI zv2N9rWQ4aSNe7_W*xz2BL28Ibn~A$fnJy2t00XfKtie#-#c2PfB}0Ri!(ae&zTqVv z-DCNu=dY7Uxfbk~-Wd7I8#y=|5UrPoj$N(L_PUpMSXcm;*BD^0hNEYPx|0)4+cL_N zvy*^G{sh|iQiK+b!c=QMS~lu=T5R$xv7t6-V*4h8U-@=36saitO|JHEZ27Z>`11_D zh9xh2n1wWz$7LKBEp$- zHP&n_&2(~aLZjmpvxTPLj%rhmSBbt9R43vn*F?skn`ELg_3Y_Q>fMg* zJZJK8Q=^<0Eg|Asqwm&;_uE+Bh=FK8qfe{5(>MXq5>AUxC+wEi;j^~PH?9kgvR?9= zxD;6O7U>PHM1!3xKVZLOY3?00737ol{*&v`(sODr6}1dCWf>j2^wp7}vMTm$4H@38 z&(6Z_O}#dWro|q-Rd=c08T$i1k56A3dM{mKL~8Gw3U9kUVjL7T&&fj+50b)6*^`rff>jWArwA@Gr#(;HR(ins^?`81pn<{geybOYI^94T8xMnmux{ z>dp&mfg;dzUDS|46lhIk%|1^gASIuK~u4|&RELeQjvd0Qd zcV`lIDpf}*`5dLKQI-_9`4R?YB?A_w1dJ4+EOn;xb0|r}wVGQv!r09a^Z3tAqVM^;8<&2bLy4@7ox&l32WT-WQLl zoxB_Dl=ifI-6G9kIq{yM_8<@O0DM}CwIbf4Rxjeqbj(Xe*5?y(x8 zztv9-3sDNBsMBG|uwNmCenLGDvwUt#8x}pM8Af+@mbfwFNPWRLEez;OQF>a23>;kl5Cy&qKf+1A z`fJ9VXJZg67xQlh?=;V2K1=<)9H{@$&}O&lv7?F#M*EQXr?|(I98vZeB@m#oe|rmw z+F|m?ZRRkcZ9g-LQB_K(*JPAq&Bl02X9CgnN1zjG>4%Gj+zA=|5ok+sbuq(zb>g~qk%37j*JIgIy|tCWVBTdHQhB!vnD zYLr@f5O~&p2!~ERNiR<5jbP5N)1Ux8D%;?`lDK0W3g}fa@~)K-Gh|AKr1c^zV4tJn z%~N;^9I~BcuR{xnG@QCqy>E+oB=G3+sCQFb>Fl1?3K8;m;Or$gr|`Hw?dbz*xJ2X< zjmb&OOizd{Jt?zKzS7P1irbop)|?9$FuA@#ywuVKtkXz)rKLBpO)!!_Yv3`yPK5;jdArUW#daFS?SrDt~~X19z6 zTf}CCM!=^4)%q0x-fATGwJ;_W2X-Ps{WC&FY;R@n-FWBxdVMSQTyv+;Y6$?AFG0P- zHimk^Ze>U^QG*IqEFDFlGUS_ucD>Q#J+ZIf1$|DW zOU@2iX322vVNSgZH6;J$?-Ozw>~k92{96ntyC99E|38WU;77X&jt>g#7H!Ofp>)m6 zgdu;F0f%m{v|d!dmmh^$d;o?PfUJ~~TS4+88v+M~8R?eT5je%zVu$bOs1@4afv%Ig z`KAtGngNf9R1N5!DM+?ck4tDt-`@Bp*#b@Go;)*#nZyU+5|z+`pG(BP_h%c!(aIw$ zea&N>Ytp6G=L&v~*1KWYas4VeK7feG&X7(?p)D{_AaX732exaLzyoZcCpys6Up;`c z(1r8kFPX)hS0!!g#=&N2l3wQSUF7byRbnZu$JvNko<=TCBW=m0A?{=#2bpmL|NK@Q z;6keoqI=oPg^5aUQ-b^@2t5LMVMivWgwby+WaU4i$}_Ls^9*Fv)lO;;+XD^EtyR~G zxM(4!M%MYxl%?zFZcU0G*L%_?)eX-#Bq|d5je?iv2dv&07V#(O3KVvh>3UQIlZ-Bx z>3;uAlJ*02B#sLnaQ065LZCW#JZApd6*pT<<}$)5{ct?6$qEZ$8wD<e9~B@BF5&K+1SgRhFQhO5z-E{tnba2%73i7UmeX>V;b zWKxpZI1M)oScIv^|DYN!q&+SAnTkjmu&}*Wg7+Eol0&2 z$FFo6?CZCw#yD z@VUZZO10e^^lO!mp3GnP&MiG^q5ObRoWh*BYOS#nw-^d75Jh7rEk0g5VV~n!nD^%E zyNkcHx~CW1i+P;znYiNPTvkSAlRS2;TjRGSaqg$p&8*Hb?st@^Q~2W@aj!sw$zn50 z+kH$x&hI@1?QBat9{hM%7!h9ks)5?xwt1?y@lDfcGjh`K!gC*p^9ZO->2Y*A^)WPX zd-a^au5z{Y<0T=l{>OFX&uO2>%LI&RQc59Z#zjomKy-XDyJFMx&Z|Wt41~_pM#XDX zvmas6NgOMZ9OlgiJ+d2_j0%7g7+T6bX#UEsNhQ|tGx6jnLGN>gi_}Kj3(wP4ZXt?= zPeM1SEBNNzF;XvG!0RG*bm>9}qs9>j4}hmeMt*f<%n)~eT?pN~x;6G6~IW5MPe zE`eThN&(tzsQ_~VLv7!9lK%HGHQsk=~6a)yxLJkfI-6#pL?s=^G}Ar=eY!3AiLM^z!}RVIlCgw1sfY9;87z`ak)JdwrJYLdacyfeaSUQ zE7K8~wj0eH-MUW!OS zGfSaob$uo#i_t(gIPk1HJ9GXSZ|U))qPjP1<~|x^-y8N2O+eJKhXj4>U9`NWVm9%; z2)e)29=r_tOP1g-mS|DvaE`)Nj9eP`mO7(nPo{Fh$#0U0>1P{XN8snrV%(YaUY8jg zc*!_qiGO5vP+;F*`t!YoLe&0`ywV0wPA{3A3q%bi45D4Wc}5)X!P$8AOnP@{B5{>p zce+*z^%@yne4PV=4-epUo!sZx%!bVB6Bpw@c@0g~0-LovGem0w*0;btmiO%#{2VUdr#Oq2S6 z5^o`1vzLZlO*%Y+UJvd#L)iSRlZva#o`$h&K$^|e`E>fjgYO?(RnT)R(KiB@Sd!TB zl;!xl2fPq)7x$j|zpToI?f4WX-&!D&(ucR@o+q=H9j355;O9EUG<7fv_$UY3cpTk5 zQD?$V`ikQ#kzs2_3tjkp(PwIHe-RiwK`-|9tX@wP;LSZ~bdc ziA?BNv#(9^0WLu$#*m@Ha);ckKp;hnqDdu9C)!8A-GoD^UvKIBH4=d*t#$$7x8gr!}_ zwq=A#0V}y(lSw0Naur}q7(uVK<2&c`i?fX~CF*$jGGfI;Jj@t1Q*mu5XoPEUmZSIx zheyu4)}>(yzWERfNk4vh%O)}H63EIBv9+%juW+@z#t`;|~c&ep)81*35#uafB z*TTxF@Up|K*fKk#{k8|CSWa!X(tPR3p%fNjE_EH23cU3qAsBXAFj9VJ6Vj9}oc*Tq z(B}ujC~~Ox$dSgFiqMJ`Z$;cuA4ZCo9_934zgda0O)duM$}h_At?w^vrr<=!k@Tm% z%I>1~(Ftbba4%Q0(r~$qK)4K+G^D_a37>z{~n6J(CpSb}|tMM4IVdX*M_kHAK5x z)m;5xVAcTk4xWLBsM9lgr>` zmj>owl?RIqKZ{2NjhFotL+9-OU$ zXpvD1NP@k5-TMfgF(ySVJ3FPU6N8F!6aI2hevD7VQuL50`UNQX|_hU^L`jw+vC~UNyXTxK2F>y zQ)2O`Sk_&`uf7c@GT%146&j}K&!Zb_v3Bo`z{nEIWzK3G-*`3cx!?{@oCwItp<6%N zid$r>bk;&n&?a)38=0$18Fx907^Qh-8Z?+d=a`L|!h(WX+)|qg{!D#93uR}6@lN#4 z52$H;WRy%tNO!!C6gOF(BMcMinKD2y-c7t?%>5cwB6vMRZpI*2fxubacaGSAUushE zA6Qf@kvc}7vL;gupgqNdku!;`wBn4;kp+d@h0?AYY=Bguwbu&RAH6SoIIC!*OYI~W^$u6>{N>&&0 zn})Zvf41dfhTsHMs&)k-rM4&VF**0K@pAPg{(`MXofy}Q-qTYB7JUuY7;R_WUViL! z7*yjbrCXN{N>u?We+_0DZ714Z#&S|E{x3obtCraS$grF4s~b}sOz5oI0+OHnL;m{- z{a*FyRLQGbEnv+f(jD_cwl(3Mcif_(Bk}Xfzs`2mB`yj+ANlX4p={b(W@Dh=ZhC|+ zacS@?XVosyqp82iI(ga^i3TUTEcT%$z*R=wldB`$zwB#3_J(Yb3*nefM_=H+x1l zLs(1lWF~KkoH;t9S<^%O7mZv0mwZM#e35#0r}(K-?)wr92+9jkgF-Swo=?p*70 zazog{d1wfU08ji`OYaM-yahESS$10I}l}t#h6o{WA8K6$r#zL?h6R;Drx%eb50?SU`SAYTK zwo4)G-ERpN$x5E`%StwHQGVI(^!D}L=-H6)`%i1yaTdDMr=tFju7{T`g+Z)1RJ}L& zA+#U4Bsu*tJMf!H=}09W7(to?PF63(L#!a3Qe2ck+6vWx6}mRQM|Ke3NohMOAW?6F zUkdSZRlrVFQ~6$tC5L4;elx{#6(&Io%F8S>4e+7Vc%o55u~R%xs}naBJH|rvBtqhW zeZWfqK^N_PLCGfw%vF3JO1eK}KVg@^u%jVUr$WGzZ%Pbts~lG{ajVFw!_nwK_W*rg zW{RVW{cHcIFSFfTL>NDm_EzHq;m%Ah_6lAU=JrgTb;5%4?D$2lF7|b=yS!0eR9tnm z5#w6p?rJ>CM^UN497*!V6iU4tCG8}Z*tbDhpN^uKlK4%6#u!k#Cpg7&KAwfc!R8o! z(hsToHXin=#szOlA%%a_#5dxhqS zh%rTRwMf17_I zy5$8s)}aU@5IR({fuu&q7KnyJMf-NA;^qx{`%XnQh1GSS~%J1@~L&G zt2-!GXN_||usi`tyCvrpR@n-gC}f=VQ;c`|X4C~b)^n;DTtnGfY1{<6E4@N&6XQqO zp0BeIKZs&Qg4ZUDC1BsRgt@Y8}P&5+N|{=V4+4yv3Y2RthC z|IGBeFg+WbB7Xk~iq@UbrPGcBHzU`2uDW^B|4CbjFz=#nCKWN!1>MFL9x~NzFii=i zI!2SU1Rm` zEHcVkG2Szvd&=0JFCkfx(KNa{aKyX7f$oS6vZ7VhQD$49{?=tz=Xt7|g-F@Bt4YCO zul5e5obdgNdU+~6UDrsW@|A-vZjTzAG*D{}@^9D&g2iSQF|wWO+H>S?P&1wG3`<{q~er3;vv}e4V%M0Jv*5dZk^UT zQ16fc9VZ-Ga-lwkR`WqmzSAqmVny;B@8XeNOLSZZE>O1QmxWM;ozt#(cDd4U&m%(4 zwM+rzA8D=ZSC#8DrhV@`jRJ21ThaKXpK8U(Tv>UkhiX{^ z5h81}%CN3zrSsN-Ew2l~IlRUnRdIH#l+j&9>&SSEssQ=3 zvn6Y%Ao$_v8=m(PsWtCKoW??w6LJd4pY}Qj@66pD8M>wScr2bte7{_BTkLSTYu%NW zbfMA@`CD}r={1&Prf{@jDTFfur8dE}p=b+<`Akfj*KZ?i!|P zqX{^S1hOU}^!&ehZX^0?xd%~X1IC;y2{Y7eH=LXsTwHSS(|+Pu>bP@ zhKG+sLzAHXVlszqKTu!;JJ~3_Lh#Hi>0gJ#VDAo&Te8LrQyhV->j7dQ0mCA6;IeeX zW6Hs@m#?$K^6$e6KU%1dc!v!-c_W!w$l6r>f(oKN71E21wGm^h^h@=-Nakp+bXTqu zTZmkayB-xBuIj94V1#nf~9Yw z2pWysILHo@raHu8?foO;R<#mA=Z|ug`3!j1Y>aDdG0Ut;55aYGs93_HE(4YkO&aw= z0!q?mA3NlL47nJMdGl{DK=Ok0Q;;16Wo7dpg|v}IeWky=HqzEOtL^vzz|!JB$^e~? z6pbLn2eael1Jr)bA{oP^(eFa!I6LS`jR>97TAvef`%84#c98#pp>XPIf z^zjo9i6T0bUuxSwJ0OanfWy$<@XzBC`7Q*^PO3Qdep-brZP4*6jaDjs=JpyNx?q<9 zD^Ykg4MnAXUi~gdDO_GMD;8*!!`ILn5`t{#fa-&lxIov`lB|ojzr3B3ox%=)?B3=W z!FX;A^;r=X>(shqWDv4E+NFWm<*YRUyPY#A+QHzCKZsaMX@dPnGyw zxlijkEpfzW3mQ1KAp}mTLF*8LQ#|x42dU9&x^0n>UX(69K|Qi<(NJOD+SOgiV6-e5 z7@yIJc2-oE=@o19Phc6;;#n^hR8ZaxMZ3>Gdt@A~F)i$5I>MG0j-PB8Q8vpsPs-#{ z)iI~_^nHu2=22Jq=@uNxxZ6UTyvndedyb3x)xJ(+c))%?nD*Htve+L7J8KpG0M&J= zAAu<>;IjsCB86M1Ve}b`r?b#%XSqvo4~$|JRF-UyK^5x;*g8fXz4ksM>olt20H*7_ zS#bpX{CRZ|u3VhZWQ>R!O*EGZmocIq3lEjW!wpQcX`e%7Jq|cIXm&KpQLv(Wmm#az zCq~xoU!d{|XmFsFuM)cUrn?*Z1_)@eGSz*7Wn_8WT&6Y!E0aJveid z?*9zEG8DU`WVVgC(VwsgWhip|`XlX0(l}5b^L=a0xF*Cqn(x)GO8r~?{_ij(iWn{G zeh!hK64O;i6fr!?@JZWfwZ|?*)EPu0Jb-PV3S5O8Iu%|BX?UdQ%b)tl4#26#d?4g> zamMBo(BFcXw1w}_#YNAGEulJ8F#WC?+EVL)du@(wzlLs9|&&!E1PBikGNA@3woP0jB$cm3@Sh;H-tT{zH8%6$?>lV> zEvnGc5?=qMNrf|^7x6^AwtL$K$*vRTQ%XHe+&@Yi3eSh}Pn zqv3HujUDIyOO1)1cJbKSK|TdOVZ^uB^OEyIrfW~MabEOk@^1h;QcA2bQUdgp&)ld6 zN+W+J*>H7+CeGWcA+38+vq_n;tp!{uDSj%`trEkX#<#Svai&>c1n0vCA&-bMTH3yH z77jqDTk32I{HVQ>ES4ZCYd=Bg*HruZtbv>-QUO7Cv)8hvuf{e5_YjJxl~#77rjTyV2949-7l? zUosGIPqi5Y9@5j|`oKg15*N6`ZKumvh-`C8$OlD_K}%~C-o|xrb8G1`enT4nLl!3H z3xLguZZ+pz`!(E7oUtrlHMk||9_;N!aL;F$2n|4v+5=14PHQAnz>}%JWqygzSJmhW zo8EVT!FS)D2=$$>&wRGi8d22T=38q}->ap6vD!cj%|2N;N8O%?OcFHhwO#CL;5n#d zQO;}Jy%C0AqK?H$9|1vQ)Mqvh-EY3&`Q@Xl`P*g zzqwK-mA?GA<(iCciavgX;g=lS@)&fFsF=$O zVjVeR9o5bH)^hHk6`2KS@Jjah$yQ%1b@d?C5G+oZxe~IM!vzPf{;nbt^m>qRCaoj> z*ahM1x;Pjy-OpE<`T-}{kzTaa%2?9%;rhc1k@0c+l}sFBa*ye9U(vq_$b1y}nl|d0 zq?(^>9{#_R!e-6~g0KFjmmlN)E38USwRH9yN&l-%^#I35FvO!sC0arjNjg8-O#DD% zy2w}bY5|guB4z*2BvdYwt;lSAYB)?iNrX0&@YN&z<$0(hiH0)!*0VmEb<v*)}avJ8tZxRJ`uHL<+T6zZUIz~;cwYB?~0c<}p>ShI&W$`!Y+EWPg zgeal1*N`Mv&65g7JYR65^+wvJhOgyDC5_@Z9g+oeMN=iDG`saa?clJFr`?* zIi7EU6|dBy8%9yV7%+YS?u8nWDVT<`t9B5N+6@0h&(NrmCwV4XoLnx)j5^2cOU5rfw6o)EUrun31{*cQh3Wu86uD@%d zEzs_sknX2m7ssM4Aa$H=HeWXnE`{vmqw(4Vtt$@Iu_W^UrdOAS5m~8&Ex*FBbIg|N z=8=YGtHhzn>5=NZ_CeB0LtQN7f>KX&ev_kJ*L)9^_4a7pFi^YHX4UHI`(q0grO2{V zRd8HAK%2D9X(xQoaoEA+i^tunV<%emAzz7Imz{dA;^NJDdjZZ4TvH_Y;Q)WN@kC3M zE;iViJ-^bzfLQE@W5QaD&5?Z+9M(evt13y>{#jMmH9!M%*SqMBLV|iNz`PI>3X}qr zmUzpfaIHKqrI%<653#784qq4aOyZJ-16)&bqwOnjL)Qyv^g|%!yq33)P>pwW_NGDW zWCwA5Z^Z=h9AxCExJ2|hI|si(tp3PRDK?X!Ao_c4>O%9W_u3USYI`#B8mz&v^3rIa za~0dJ?UdB$s<80m4$@9uYMgeIV|vkSvA zh|(_fW&_K(R8LEz@s_!bG_+eok;d}^LXj{Gq;6dZJ6}Z=D(|$8%}(nfIpwY-Q+flG zo5pzFl$$15@~J#lot>!xoS`@Y%59TeH)A~CU8^|XGWlc$+JOvtuCp2SNNh5LhqM3V zDejruLp;mX&mEcXi=*#~4bcE+cxGm0>hQi%3+DC@t^M$Ctlq#f^H8?Q7bynpz~GtmIRtuLdt7P zzkjJj@7x>;VdmkY4mY7ky=-Ml(YI)vq9`3|H{7DqP=|VD`W-XPug+_h0@)|VjA0U) z?{?2<&=T3s6}$Bl3$4%+tq2UpJor%ef)`S=ypjBxPIbLkqj@U^ThX7pnjWnhn7hl) zNSI_|(!M`qOso$yu}PmwGCR{tq!R8WagJx-<-ES;h(HhRqcRaT?aopfsTujcheCt+G_l?PwZ9{w(7oA^u6C(1(;n26gok&O{=j#tccb7;9-Bk#1rZzZv z2W6Gi*G|ssu4?7rE!uL5?H+)fU31WW9y!_4P)BVD_TkkY1QTecd};nRqS_#&zaO{D ztW%m{*&SBOAlwuC$8d@iv60c5!;Z=crkZaD?1um~b$=JM!FsZ$1WKwqc5-tn8K|Ay zNGTfmhRomR-hpaN8ieWeUxCUR{@94gC@Mp+a{&7kZH4iFHaz0JfU^NmW88inFBdP| z2Eyaoa`$RaA$Bt$X$8cVO+ReVbw z$LjHv)k+I0YbD*Yg^}%Yp=G^Lo+EEVRPeiN-e!k?FlP^AIa)Z?oLS0dmkOHoFh=WB zc|1l=SN?IFr%^edK-QgFA_a~sFP%7x*2(-i&=5-|rpH|LIXJB_gn@3bfxtdz{>h7& zCXV|iie!LefDb_0Z@`E{kA^JVv&SgyXfj9SjOB0W0ueR)z}OX>w-cIfYII*%J&gnQ z6uX_68}Ni0R^z(5wJewuypaq_b*ORe-!iL2Na7F?`=L?RnsRe+GkX5gc?a$txLE@DS_Uh-{XmpqY{IUTE_ zan{^DrM(sj&0{3y(!0+h&m(gfk48ylZ86A^G*F43CC_8cIpR?Xn2u-RxbqX4sRz%k zV@-82Ug?^6LJFPCf%MtkZO;>`7>Oo~mlG8r(Sa6sinEQKbe9WD+B1pX1x^Z99>%bx zixEG8Wlt$wzy_Ohzu|Ay=_8A@dopZKiB)m&W3AnWgCo_v#x;9uIUzgPG!gWVJGr;~ zqGY9=NDin>uPYMicqlpi%P`9PB`69fL=VMsak~9-m~H+Nlv|9tj+C_CRbb2T-3dyT zmokHWhA38^D$!Z{3}{oXj|dndgUWbbP;KE$cuC<6C*dSl(Em($2P%9DBv@G%vM1mN zS6dS&1yoLEs+V;6KhDFEGWIRQqw>X{{=#KI4-jc zfG+_`H!TBSMcHR6Kk@enrY15G;{XT-(W45Wi-Jf-1htQ|*?x&CHUj>bloF1WsRU8a)sVD52)EV^E;Sf()#cTTBh3dhUe-i=5SyC12@M-` z71A`+!m7Gg%-Jx|_Xr!iYoc*c?^?)}?zNG=i#12R>0#}(HwQhrAG*TOaTs;4-uNX4 z*&rDGcQPHQLLXGxc(RI@p4nJU0RFOkBmH$UINEh$jD}E^_h2>7y+u}ie=}u}1 z-7~YdqJ9zXCq=5hus#I;s(e5olRiCK#s`9#Sa7mJubdFbO9`hV0vRC@W}t z<-lAqcYvOpOUrZJRQY;YH5~*q}@VpPBxZv#Q0-R8ujlz)TUjZe<3wa!w0Egng#o< zFLf6OGqr-e@Ey7GY>hrgjjFLc6@=2~gsjF?&Jp9rq&poUI9edmxcyxo&o|yFkcF^h zzn#B_sb}{5xnfYZ92tZK&I+~7!YPbt{={9ShOS|6Yn9Z{RA9#80(q1<=4LUg$>J`k z|6&DQcF9fVy>e#5m&g2XA8mFW7-lWEepK=xRkmx*&NK90>BdgDYS@mjC*%xU zz=ZUw9uMnRy{WVP<{y0SHNH#)@uRuII3a6bpy23w{{g#dQ;d!UB@3gmmj{Ry}QH^I~X14358<}dzRX}zsYtj>LC?~@At8P z3(X^Zto4|qG-%dW>sId*ZLMv3D(&g4Ve!%Kn}pT^5s>%E>|-B1KXg&znq$wVtA2$8 zi7(A4Ta1|eM#b#EjG7@)!=guFF7r;a1BkbIWxnJr=iv0R!AD5*vO}_9iZm?;{O3IF zQj%EZcpMjFLyHF{aELDdor+@D&~|E$Ioi z!w_>JznL{ZaL8#MNJ0N?Y<0Ywe>o#R@IdUNn=R*K7}!px)gE@>{JTgg5U6T5+D%vtYD>&&~;if@s2!>j)eNtRoW+Z3m-8k_4K_ z)4SFF1>-qUZ2Qx(;KRR=JI3ay@8Br15A%sJQFEOoi$V7X{ z6bEIi*Nj2hvtz6;xJDnXRga$4AfuSFQW=T>;9KLyPy8khQk_((V9nuBCmz7TTWlag z-*;vWv?ZZghPEO|;opl*Fg%xnljV!W})iptlevJf~H(IuMgna{hk=>zG z0ycPCrGys&#qmASX&;7|ym%V3HvMi!;)*@fn@(%ME%(JNz3#M53IBEM!{?NCj1If9 zap{a2qsF9-Libmm6e1icW8fk^u!Yb5*comnt@<+8pjgw-cuR*zQH-H$}Um6z!EGnesm1tgyVB7-FUfqS0?lT)7l zSSgP%k;t5S=do{Kl<>F!wecO<8{c_oMLpdK08I7lm5oEniNmBTJN>{r`gy2mFvEad zw}US|8J(QJY!q#jalro-YDF23TPHOMwsWDz^=Uq}KW9;Ag!W`UN#Om;_^>-u{JFV` zBKhlR^f44{|D0&3qR90%Tj7#r#JT5tilL-pLY{i|Hu2NnE+Z(Knb5zz9NAI z0yVxt`Gsxm!8L8>!jt9ffN~Z?t03kwLa2bVzyZO@4^pq?KIW#7`@JZo7R+?Jm)>(@ z5VO!BiN)z1vW{nT_mPGVFQc!uRS%A+N5^x=r9LAU$#Ytu;R_G^i?;-(U`b7s)Y-Nk ziCKqalM(Vo(S1gAvWgFK{~Z5zm#}h1?j?dIV*8B5b^#4_5#C*8elK|l%oy+YNq$bi z7|0I3Iv9Kerks0vV8GRS+GrecZmJ93q(z z%+u3Ownn#{oVGs=(dprEXd0Ueh>JrlS_1Z3`OuNryF|MiC9_v6aM7>!oV4sFKryqi z&n>R@;3f5>38j_%j4;Tsgg}C+oLiTt#NH>i9MOEI1ej1Q+|V(QbdK#uUQq)i zHA<#u%YK1e3M{!z7+E8k2_nedA%EAk4~IdHYS;Cn#ORfyz;%VJLKJr@r4E6+5IW(w zu6~C90PAu!nAe^dRt#?M9e56+^`J0=E{`uhU>m8Ky5BEFnKSDAF;gxeY(e30U%m8&tZHjw# z#o3sr#Lil#=hMj2t3zas9>u`7l)XjG;TENuf%R-r~Vcp$?PELmoQN zHzP~FKbhXxV_X$|lYFj_`xxVtZBVCoed0{%LQe91|73Uv_Y1N{(q4X9Wi@nVjSB*0oF9t z%1cu7bG$ooyI47gT{cy>w&lGrNXy~2$f&l;CFmX1GfLolQG}0&F?TyRJ8l}uvGaxkq@vI{0t4_BDZ_9T8idAbI_ zL$*pB^}6R5u!Q55fkG>~E_u3`#L0$1g=(fUk@#^ASZs-o8=()mp0RVdvP)awrysFa`o zMcZ3I)wMKf!$}CP!JXjY;_i^3frFC-cXyYACb)YzI0Sch4K4>sa0~A4F8?NZ@64T< zZ)VN+t@W?M0D-Mc;3S(P0?|&F)l`Tlj~h{Rn&#weXa4lodr( z_%o#a&v*l>;5%n1w~>r_+^Nt~g5%yBBI=P2E-+JxM4ci$(gy#B-+BqkRuCTI7! zffMuKR88Lf?^XVNNukJK}=3Y7DLRZ$Dl~0b;^rGk`Hg*0`p0^^r5*Lit4@0wOHH5p zVj71Nj>$E%;{Gw!*u093!2T4nf0#~189-huJyjU=Z*h$X~flr z3q}(jTR$;O+uP&)gh5^kv3aw&JZw+s4*#tgpIE24MqN7z!KXD-TdI*EYY+kc4 zof4>A?W{8iC_Jh=0k1qRi~Y+c1Y}m-$E&3gbIj?~IQ7;Xx6DSG>fj{R}XY4)J=;pg<|Mj{jhLft{^CTCw0mKW@Aj87- zx}lmoXMlT$v27n}z41vd+|nrAh~8o^a_5`A%|NRo1?5W*-{AQ9wW$9JR2p@z1k)Ma zOzKM(s{aT}hUK66&j~r7jhM(Dxb#U#UIIj}$`}0Edv@<{&%X3&?&bnEDWQVU?3KJ`hL^b-4zq`pMK7=H; zdE*=Q9;12DSPTe-c8&_Cq7xhM8_`uY9qA`lu|Cd0?9>KQlyc8Z5(gmH42@C%hthTu z(|Uc}X(k<$vcJ#cg@kYta>yUDB-wkcKCMC0Blz9wdy;#5;=VgUiI&e6wJ5nzd2+M6@J~+*jLI_SrodrL-C~6iRT~G z8YzCXg{DX^R>D3#6O5r4*-h-86~2dD)_3o(?PdeXe1$zKz1-9A4#9G0Y=Ov|RuJ%< z(Smbgoz}*GQ6FknKN(B*=&+uun9~z}njvxpY?lvrP^46EH{&O2*&eq&g@4sc{B@rbJ4IW zJ6P9somf$GMTy$4398s9$^5WJw!;q2@P#j#rB;PBM6E88Z zwu7e>^4i=W7UR^F+5aUtsF3Aw7{1-duQ>5(1#DCLR?i9HtjA?|(7NL-_2ul2h40r_ zRdvBbjVQBL6gRqc&BVE7N5Q#RA@0&`OLFJ$*TAL28jRp*3{$no**CL@!Iys{Fa#0N1ZZ{+nF zJ`I%l>Ksh#Cmvl9r{TZf_Z-@(M3d;%{CsJmz5cS+koN(Rh}Tue)qLZl+|o(yU{T8V z)5PY}9m=CyrEVkH$7HTxGH)b*Z>bHW1_utk3rFEOouf_*mb>E^8S=r>Ee%W$PLnwm zrPW9xwh2W6NZ^r}tR#E?VaHz9PoMegX3508WZ8ptP{LQz(VO;fppOmILsP6Y#sq|c zCWuj7Mt8CVi&b`mLp0zd5J0KEBQ8CdXac>7O2*QH>jX2sT(eVDEdcoyouxhFt^wJc z5u5elvvzb}B}<(6x*74)hVee(2q8Sqt&_DDbiK*^Va3M5$=eLX!BYOMhjI(FVhLEcQQwDP=p(2cXF<>Ah|-5lEN;TSK~ zQFIFwJ)vvPX&}X$s+89cHOsz#PfY@`%@V1K5t`$nQ=E6oTdMw9kl|dI46Xy+?0b^^ zyBJZv_lB1-1=TUBn7|@)%)q`pfP<$P#7BfN+K0hPWPub4EQGQ_ylkc-vz3uyB)Vvo z?+XL&uD(}lIt79k?=(-KHQ`n=i77MF3w&yJD(l9zY#FF<)$O0T@PA0axEvY_-r{T(XT?3TbHCWd$U!iqDyH5m^~E)!O5zY-IdYtudzN)6#n&kiDnWlUP?9`F6V0b8l&_oZifIrMbcai!xO{aF_^dGd#F$uGF(R z1iEN7B_wfE%#9wqF6<6+@2fdO2R$B5;at74G%4$bYwEFqr#)Q@1cOW>?~lF>K#Q+j zCB?`NLa)QeuzCuD?acL4lCB(O!jzjNOgkehx%SnACz7n5f1<8+f`7GKyrpSx^|G`k zQrj zr}tbFkD=j|3zjAU#;NFTC&Y+2Ut@^!{_uK2K_e6H2Y~2-bORMnnz&G*cXSdeXrhC z|6$%>;3$w<<^5Q#)K+&tQ(>o1^1Y)qjxx@yh|Ncly7rMdvjxSN5 z7W+PYADM>_O47w4u&<< zgBMJR$Tc`eER2a&jODX9Y-qkTXj6__9g|uj6IzpwPZB`K*b^qLRc307Eazb7aMM3S zKc*Lrz=k@vXWmn;A>Y;Dy5NS-i&MJT{c`$Qsa0)>$2jN2FjuJA+X4smk8X;H)&Q$L zwi9*sX>r(3p(l&rw!%0c5x5`+!dn{BTc95v6vt2^Zz4Rc$Rob@M6?z;yp(gP+6)J$ z)+c&*ddsI)M7&iPJ>{l_%pT+WuchDGc4j_r!=EqTQqc-?P`!%LU^?JbtDeOx zxezb%WS!Lwo@k}|TOJeH1_owF_TPz~6t_DLo2u`C7|yBVZyMv>;H&N?spP?DQ#Iq! zc?{=Hj84p?aU&(fpFoyJ)TFcLoq-UvUfsmtJW$ylrm}l5xTQ<9sjFGLvd$nFr=?4+ zDeYA_a{R-$PxO=M@DHRBJx#EODBOFP^sfCEVbqfcm=-ReL#l>$_s9nFVpcV?M65#8!mfv}BTjhez9?)z+K9HONVzhlOk@AZZ-t1+lyATE|t z3q~$mHm%vp67k&A)=XN{d&Y`~cvWvuaU1pIBId45aCcqTiiZ9%W5rdxst1Un)v2U; zCF%ivz)>9xDsHC!w17!(6a2NVYd}MPow4F1UKOm^^NUx-Op{FkF_}jq5wA6nkYm6{ zLhZ*d{OT^Bc-24GgP!juWn7IJ&n-UQctzuEeb+UA?Nr%%ByeDmVr$?^%1xsLebW@k z-@+$zfu9ofj@Ix8B7vg_oM7a;5rZF?$Zn*E%W~%m6104_u&hOiJv~H3HtWX-eB|7G z%4$`ZnD2`ANndgz{WP(ah0}_CH)Z&PlYnE%r?fxAf^91arIF^kdk&Dk|84+OcY*QU z7{RG8sXU*DjT^C8nU|VSZkT-CbpaeIDrpA=;zZQ8>ov5Qg#HW+Ce<`Wo0YgME>H~W z=?o`uG=Te+(EeKL3Mv&QOl?NpwF97eII~G-RU>1Ceg=|pjTP`*4*=h^{NP>Lq=&VW8fnzfn<7E z!U)#OvlEIGL4x5l6chP?D%#GO*yX)`+lwx8Pa^sNL4wY-Fg^L6^1QBcT7zk23g{m! zRw%8}kvt%R9zqy|CFLvf>|Xrfk3j-*0jgIdYji ze&n;onkJwRcv54%56`4ChR4|b{eC7Q5hw(2F^&7G*%#n96gvVx*y=B>2a8CuO96Wd z8FDxRgWChjmP*>#%D-{ibD1FnaRf3~cUG0)O*(hhPN2k?uH=J684K;Au9+z_u8Va0 zsrOj%_Kk64IVtTI!*o-Gx5VvhbpJiTzWx15a{l)@FQfAQM{LgR!lhB~%th#^=_1HV zsH~$>(^d&<849Ho(S2L{ujt2GVFq3IY;H+JuP_;XdabgcV6RC(GDY`|KspWcH@M?c z7@VR^!WB;9eq$~890IX@pXMi{>g(|G*x=8kV9|cXjkN@|(R2iAdBi7-5J}5v;|qgs zuzuedY%q$ex>J?AmUs7#3M`$k{!c6@aAt$tMb``!zOf51+PKa>t0Kcli^oih=N3TS zZU<|T#WgXkXU}t+QRfU^-tm+w$@s)ww~9`DFR36-yyZ!tI6iKyQqI=JPNB0keoz$I zw8`s}oid(x%p3Yfq}X~a5l6Q3QN|eOl%d-fRa^*kyn=|$>&n>et1_!2;CrCEREfvy zwZpAYVnS-|vAhBgq9SdD|zrc1xY3$ZJG3~shfq# zb)vLe)d559DR_9Y-kDt|@0a|UfyXORL}K;_&AP{@27PyK$g7cRyLhj?z~!`Q?biwN zdju(w{AEs3E)DU%Z79RN33^Tp=c~azGQ&e5jBNtf9BJ<7C*h3VD?a<4{I_Ur(64tvf2c=Z?HXyN`5B`Z{UVxT^Hm9FI zJp1VdflmupyjH8?M&!&-o3Uvlf*$!S;j|8qe0c|*Vfh68WwV1`Y*?UCE1z(G&2edP zF)=nD$$RCKlmRpvxTe$P9e@NlrGw;@_kgys zgzfCxVcmA!^VU7@C0U3xw5*iT^H*Bz=KS)lZPmzb(&kzNPt><;sjMCA^)=p)>V40K z<_9z!%s)n!Db77i^fa>x^bWmy3@UDj-1&Ugk0Rl?ftnppHx{v)%NDm~Iv#==kqiy} z6}xtEOmIJ?rsY=jK@|&Ua;dmMKzIXK)eeQinG6{@4=7r>YPa8B$k($zI!p=}Yot|e zR07Wv)d5ZAQQ3smycEtuN#e);+xCh}Vva~z{E;IbQxxKk{w6{AA(DvEwapB$Wz0cG zsAvQ1SWc+Kl%o*Z)=wI@>R?iS)NQrIG?+fdpz;~I#W7}mwgALyJw zwcSE!HnFWWW&c`>!|wuf$GdaVvBQ@Q1wU`GiYA1)C4;F#*AfeNiQlGhPNUp7j&Ypq z6(?>G=-sph3s9qX`!s3p0@T4CVCRwL6JQBGi=z}6XQ90FdgLcNKp`R!2wfk(1Klk1 zYLe2fbvo1wZ~;W_n*!>wo;5VRoiPs{XpmlI)twEdW)`^kvrV9bb<6@l315|)t-Mqk z^$>miqN*f#X0jG++_6`OagGg_<(sSCluJ08BSdcSELR;%xg@w?vg?Dz6iSi3(gw|7 zIZdug=R+&B1hFcdrNu2#qh+uJ&7r7seut&*hQGpHnLwK)KqYW_LeJF+UpqBGC2x7c z%+-nTzo<34Q(ugHoo03Kr**4X=xy96D_{L?r*f(0p-!6lo*U?k>m{nD(tN_JDh#EY z=#JyF92HMLVlQe;P|}hqV9Nb~r~JpUqc82mn)9E`-dDO4w~Ee6-VdL<(9v+FrS4}1 z2VZvPg)WbEA8qSjIkI{*;tOd38Qc=Gcv-ojieugR+xp{f|tx3;ZKyx&~t6teIYXH1uZ6E!=H4_+> z@5S-T*(sJohTuDXX`In8QVVbG`F8`T{_9!erA z1NmZ`0=yGFSoPQwCd;211YNUs-Qnwdp|A=EB#?;?Mt0sy2Y$gw=~dcb0}?BZN>Er8 z0`T9gs+b5Zu%2;h3JAqII#1RwzVMu9sg{hjpTz*q8fQ&wQCKws5*S4XjN19Lo{ z-YuF9txbt|OShT`^iNQZS5a8Oa4!hR*dK4*j#kN^meh1c0h;u_W&vyR8{p@Zf%nR3 z9mPaV9fwFfT1R22 zp1syjHz+_6@Sr*holm1qqwPBNb4@!`xR<4l+vJye)I27CB?7ij^iaZ-mtMK{B@v+W zqQ&bnNlo_#(x_9r#6948vd7bEMh?F`;uNg)c;$9qyz-K~vY0>~~; zuW2}>P==ZK;+Kx_(VJmg);-x1#Y|XyR^G2f*qAq5uxEXbPF*)-ExqlAZ)v@ob#$OM zArm&&^viWo8I1Np>~`wZML*wLN|~Psz#B*8jIe5Ln#u{0EBPbt&R3K7o)W7yzN`Kn zt|2UG6k&M?t91WC)hC)aB7jle5rE(2g{g`{?mR^jwvUoMp@M3TJ|41ML5EMst8)=b z=tL|+ek4)+w<_apiv)pR{5w+uOKD%(>&w!L5Ms04mKO&wMD&ab(iw3H_4|Qh2m-fy z3;3{Uic4zyU||=X;`bRZ-!o;kn8is*m>E`chmZD|+7OCIDIVbO%lJ%nOzA>S2qsl_NznxkOSEWIOH=<9Y|xwSVIVjcb4PxTSRl&g zy~(Z{Hmn!x7>~GIuQnURlh$c(9jZjHgdh(WK$F@_Fr8x+^l1=gO2}M6=pb>+Tb3ju6j!NeXrtVl)Hktdf)%V6=ZI=3d z6`g8NhV>xZSDY%zJ!Bw~n0q>;@?f~)p*4sFXFJqxTLQoivcFGW>f$R1+_?;w2O z^%4tV3Y^c_TU$Z|Ihc0uL(7oRVntNXvRHStfLGCcAS$=ipAO|N6iCUIlN=jPEBbH? z_(C3KzF;OGP2*DiUmGAK0P!4Z$K5Gk!X^dNY1ymPpdB9fUmCP%D^vqU&Eh7AzK{wW zp#+x`+*mNJO*=gD$fKYMCJ@Nb1GC`YGTh7CY55vv!Nx9Zt-Vq)<*=AX;zS=levHIK zl61}W^H*2&Fb0&|6Fs99YmZnb%f{Au!Uj;<)4rQ}#1J3L39DOKYoRkZ=}12U5)Ujy+2?(}oCLk>7^qu*Xil}-&K?_Fib&wor(LUL z+SaGDO0!%|0y4|zPUrxhnVr|_vP_?1LnqesIU7{}_iBkf1~Wbgxo1=;?uaS4)W!KK z*M5Q#Um`T%CttwNTX%ZuYEyhhH#yv2)S(BM#AGf9N1PPOa}+|~LVQ=y(2U=FY}~R{ zbF63J)5IlVDvDrh;ECq@5n||@@exmp9;Ep)2L8t|tlV-?+ zeCR^1Hy#jRz?H{TSp>hkr6D*XHp>UuBv}&ASZAo5kZ%YV`UTwFHPYne((~oISZind z#N!w5R{>$YjleL?%Dx(~bXxxnvl+kPGA`nf-%R`#1y|!*wEH^=rs!yp;aVeGD%`#7mIs9F$LUdOFm3MIPz5Z2si7MC5#m>|RccpU51Dg9C51FTA+j}rZxLXof=3`HFM z@jwQ7|DY0#3LF(nS(d+`>jhEk1sKQJ6lo#?4dhVeC+O3QeeieH6&3p!Fe6N|!4L`*(t3z5}MG(K1)K6oVr)3y@rmaP0(odL@~ zL53VEMo#fs?4@7OXN*@E6fZ=?-UcBcyn6oc#weTzj|gl+NDuNFk0jDe4w9Q3!%0e~ zzqY!+@aFBw^tWOTKVjO=^jM9a*yWLH3!MBU+PmvtEgyfy>QfUSriS^+Nr=#{%Z=_y z!HLsS%P4hFF=k}L#+{Rg_>%1VmrF76Qg=%$6+c;3pBhF|N}uOpA_`qnN%r^5dKoKM zln$RuzBSRFY**B=Oaxi~jo?kW9tYZP%@FZ;iVY=(O6;HU6tjP>E)_-i(Wi8ojMR<- zHud#iQm<*@DaG_ca^iUix7pIkx^)1R;z5a_W~d4Xqo}Qr$8sKTNS=r0+|Bx>RX+O) zfI>-GzeVXcP8#GDf~}-sy>zvIO2{1N5XUQZ`WyWvi2zERE4?v~;TBpUA6+I9y>vy8 z*AsPcUg8HU25~s!rLYBF_hm3D`CtI$)As4wcmIXq=pk&1bFGD5EmwppE!((k9_bU6 z#q}0Vb*}C&l{0JFG*d~M8qW{tej_mF0W<)-=t|ui^$jhJC$qgScNg|{8ecFd$P2=L z*_8JOdrP31c1Wc!Gc|(H6OIJ!gpLg$j)ffc)54@2@Xzu)$*;Wz` zG-oM@07aeh+Qn_sg0@N{dWENvU2Pe|@Wt2ehN@ri&1N`)^wp`NAqzP2uGM9hBNt!y z8$O<~^KiEok`RA1BuF7jZ*Mpbp7o7D!Qz~$-Gpk?n%wHz)}q607C6E4nSZL?Y|kHO z1E}*w6Tj{IQkHtMh@!9H8b#Nlm$ilW;&7%Zj=Qobu9}JM`^q0IiS2xcpF})6LD&F>3FjCY`BW5R|#G70< zLW`<=!wfL$3h$noZdTDhIQuLMJPkNC&eD|49}bdg~@(NXjgz>q4^ z1=fkmT)z)xntl*GWJZVG;co##gryFl+)PzFCm0*-uDvxn2T$P!dJ)0A@hsG0iSmKr zo`Q5Px@;uQ4Q0?4&4YEN5$bEmxI;g%ZGOv5S2R{PW1x$*kwDMBVQX-0)T48%$Q`&0Q6SfLV8p<+<*GNQt8D3JiDVGG9nFniBZy-^C12}c zB(!XhPrHCKfedv+()aqy>Q}-D74wn^QA^ZZxCoWmn*y0|XBkv_55e*B8gJk@rU7Yp zsk4Xu>qGeqbuKt_g*=ipq}s-AHwy}H{6ogo*UCglbMakGL=3^7$kbXACYaaRgiSv# zBAl5wUp9<^_HxT8op_Ye>DOK>x2QC1Z}nRVeb~|8LDt}Dd2kZ?B0p;JrrLsSaE1K3 zx65FfMl=Uxx20HKzLm{}?&W8l zN4Ij^14N)`8;D`&S#$J{lbdkbedss~V*cEU%lm;24``RcLf(tvZI*kRd~=6#FtwMS z+z+;?`z|wm?QDw>U#2$hQK;xBsuiz6em(!djCsLO{`cxbJm=$*lP-z$M%Z8V+>JlnV{~VEsODQonbdoOlp8YK5>h#qKg@ zIV9e(b$?=vC3B{Weevp54utcUe{9NAsX)4wlUu*!as+iGNwHMz4c(+s8|9lqTv;Zf zvAng-;sTpzTFwnNUNR$0gFcZVdp|r!2Ug?FQ@2|yt8|0z4PkX5)qD&-y566o=K=19+h&S#V0qkr!vJn2 zHz=bJLkBGejMIv-v^&fakh>+0yva_d$2>aU(Zp*!VS*y^QKHTxzgr{id?>iq7F5XpV zI`aZ^;DjVr$6iUurv?E(-}%(RchbI=LGQS_UK8m@p|bV` z;2VmfRFcEZTrHc10reRS@ishZd+o4{-e#ExMRRmLBb?fL4vppRe{4naoSC7ODEYn~ zLJq|d_2B=5RYKOUOceF)Zwd4>{%p~RqQsHI4Pay$1}U<2y&=$#Lt&K;z^4{Pi6#%| z1IpkAk+XGS5a9MmxjaNqdBAfu_wr<+#B4TGwR)&dTD zm7$_X85T5t{f*^H+Ss$@TAzh8THU$7xQv_35W2*b=$I@sOC8%9Bc;=y4a>GopLpKC z;kz!M_WSZGxfdU7#a=r-y>i*V5sF&(-sCTfcn0ochT0l7q|}0ZzPrC-y}n9W7>$;( zZL1`n70KLuq`CiXYa7VcF&b3|Y=Z_R%{_;7@Oxd)*MbU32;f--mR*;ZRl-d)YJ&TI zIgivP`MWZ-A0xXA-nB>bZYL&Q6)UfP`DA53WWeU8KPtt(ot^mMx~jF$!?wcDKMzq< zca)v7SF?sLjevKfQ1*CG=6JC0=O?QW6XO%d1TG^%(TH;M*u1)Gx?NoR4r{cX)HGkNjkg|Ayj;vH&>%;LT0cOQ1bI zVf>P;9Pw0}LUZeR!pVk^xSl#4{cVdp>%F3x*eZXyqBz0FI7RW9GOjN`1%45%&s~F1<5XcSB=tkJ* z`h+?)3XV(0BjDUhKEthmjoo8B84?cDX$bq)?#KQ>j3}|$JE_?r>E&ADlblO5rHj3k ziG9ZZBz5_*_Ki-`%rIR|GW+)eeR0u=VC6{~U9W&2wK2Rg1E0WgJ=;QJY7uAqa`fX` zlS~E~>@UH(++g=A`jq}bnD$+2R}ve^oXqPY5v-&1y10JDS`cSZBy-~dn{q)!o zY)4e}N=;;i?RPVCqRsT2S^XZFwudC8D<8LWL-mY>QT?gsA6E*#OBC=Qlz)XWPFGbu zM=gF=)z6^jif@L$QREMo+~**z8FL+%({NNd_DHQQZ)yfEJ*Q5D zBU5GqI(dwHOf~`^@{Sc!dqkbkR&X^GO9F#Y=F_UWc62HQO@bHAo{-blby(fisH6Xr zd4{d3D?~@Xfq90es!Ls`Qr0-wUVX(^T{uP3ZaP~=$VL5fH;|nk4LHIZoBGvQVTfwh zpO$pqIk^qRy8h-Hzm-94okwj02dbT7u;XMruxw?xrVG5Hsi;@JEXM)d-R-aZJfA1Q<(!FSXOLfGfOPWx9)hW$#gG~<;B&b;XW)>pzv z#o4|JwDqpeuNNO~u9^!{MBVWCP-plFD_uAY4^4yEkQI%|2N=W> z{ohn!7~y6Pio~e}jfNDZ7*~L9Zu~esKh`Po`oGDmM=Cf$DM04}2fRtE56K?QTT4%o z|3I3YBfo*7cY&_`VP(p2mNU`C+b3;GWXq(X5YysiFsD!UpnPLt44W|BX>4gB&?tRH zW#pywgBI4)KKwOcWD{E-J2YP16Bi&?A{q?&om6-0ROAYkgp#3fUU6fpDNmQkl zQ?VDMf>YzBe~bQezw9o#knQY*KZ373MxT!^H} z-|*Q)u_l|DzQHNdL=m9MW}D_evOQKUjOV$sHjo^8{WPp0G?Mm%6@v}~dXag5j{n-| zi;)sQflbq>iT(w@oT{n*o{90OFJF*cI9_5ob>#)<)dJlvBAt%_m~Fv`;|rjQ@EHk` zi|gjq_b5$bDfzh!xQT?kmbXjHDW=UvILE$J3sD%MAD0Av%|2pT3L|84{rtq1?x_hb z_57~(vp;;}Drurretdd3xv<1LD)3l@cNK88+S+^;DQTl4(ff*oMAGrBtTp17omj6I zgN+QyS!3hy6YM}Ph)X|6`VX?b)@R)ECN4kJq6`Z%9pk3dAgoRO}^5B z$nsF3^EXCZH8QM&i1Gyb`N~!*$E~EAIsm%*x*&U=9BVfFUDYzE>}b;wMp_5Wl)nA4 zKv<{jfK)^v-`EO}xG#>|Fy1TNPZ?7{fy4B)&;X6jI70}w*(g&x3WGKIh+?93j7?I* zfpj8>$tLz2p2^+HY7mW{=g19PZ!pxM_)ty9nD^Xjw{vu1g4ZSf{T?6fY9)y8wgmW; zYA4XEG6yy$dA&(+a95#03s9Cjy|87Ts>NWC0SF5Hc~e=fc;nFDoc}b7aA0*stBGf# zC(-Ca`LMtTCX-VxS6RIaQO~&>d!U#%{S~ojntL{KRZ1K&lV=mCm+yOtW$^LWXEKQ1(wuvtCT_)OSp?YB55_Xo=qz z4q-y82no@wW!3TpQ-`BB5n8OGB$b9&Ld03GW`fv+35OyjPP2aAnexOGaaS-AmW0ya zimwu=LS%1Nu$(vaw9Le-EyO=SIzmkK#W^Y{X3-a^T7V@3Y1!6Icd`}ev-fAZA6?j{ z`bZqCut^Co_5?Fh46~n_&LHatr@g+x=0? zE|j=O<9^EFY}2oKu(3hL9kRK8(%dYs2e|`{s&PZ;C}Tbswj56v0ecNO#9&;7ec2E0 zSQ87bdlSpRK}PTAJk4ZcVTDcEaWIzClhr8J5dtvJJ~dlsRORzeX?B`{;hm*2uPO`$ zL{qsHH}?x2a^=HV^N(o$Y7R!S$?QnZKdSv$gIIm!Tn}t*e*qrApeO|c;YNxE1zBgM$qt!fAMVhIxpRXsjfX7nh zYoH7%b`guVa^$EWwjja-1-&y2a0_3jBTLQmI791IKRn8{Vlew@hjiE8{=rcvHQnh) z5oqAlx$$PVBSt&IZ}|N}rzjZdboQhiDECT*G)u0|iJ3z)Jqo?dxLDx8qeIJ;`gw9=? zGd#*Cpti{e+ARmpw)w`T=8|_AN}x1@CMxjan#PY!GGd4LnI#df&CLlyu4R0a$4C62 z-6IW!hLmQm8FZ(Ys~dbi$F_O(`Bl|SRcKDxD|$p7dqpMO<{qV&>l@Hi@MN6hBo^Pd zP`Ry4ti~-rrvC?3V%zU|DoX~|1vz@%n-sH({@svE!DykQB(4k+IPEbwov|K8>_ful zT-3ip+NY}Ru*KI&`aVxpzY}M@O5(b*=E{eM6B?-anW(Ps@(~>SNi64Y8Q~ zfYZ_4;`7qN|M;nb-SoRp%h>{Vqiyaw%mJ$ zDwVqvv>FBJA!iO3z3X~{Hg;h18#J&Y@ku7nnz&t1x+{Rb(3L2>ZgS?3C-+tG6aLxh zUv94zasYoi0q$cg^gjT9AwGG*yOv{jWS9eG+Kzi$Q|PHyIz$f6W!Y5-T+%X5R48A) ziHTm&8oh4TG_LBSZjNa(m1P%-u)c>lUt;)?J#nyHR99ooM z5R4L4Wa&i^by_BH5YY?;NC_Wc7wL}vm7tF!Q}HtQ$}Ue8R=L=RF8(_IjX+Mn-x;E-SZc7zO#`9L}Dv3Y=aTVX>v?i$-jNIX$qaYGsV3L92P{ENKe z(jT>Zj32;141jukCI{f}9{(r9AD{doHh{mU6KGM!KF1ap6jzj291o$%ztWWFFqME(^k$? zpA4IH1K<$*->sB?Yh|YV9{Sq{47E@Dr@=n0(w1MGTwbwH8T$m=U*P{v)u1!<72$dV zh}s*{F`#N#;Y@j#xxx_Kgr&j|P&R!0sdo62Xuhn;ia%e^(P{{`|K=AiJ#D+B%e`aJ z$sLNuS6*EZ%*AQ0jD>2R`A(K2KNybF>-m+#K!nbnS zL}}W_&-KA+b2ih#>SqCjm<(YnBIEvmC%TkB;@fV-(cQtHt`M|TP+&yl9!AJhMU*>R)j9{{fPQaju2%UQN6|AsKJn9H<32&;(!rI7*UW}>U_R45ntB4zRb z%ME%uh0q@U-gp;N(zFrl52NS*XMnGEj3(Q8x^0(sj4mE0`IatOQ#*a{Kf}I-{Ef$D zcT0%cBlUUjiwx+0MCiD4^emIooVa<@dn-JteTo7ts+!Pj=jd^!m|1b9ruXLmlkxm7 zsg~CTcvR;iQM~|!c9&dy?=H7t&Nm4qZw0+mI8Tu2x}0(xP91_bjJSWf*dhegnv|BVpBYjUj@EDahCa{=rrDGB)}99QC!3rrOkDPX;nexXn6d# z9@=k@X>eg0HxPLg<5UCs=xBkrR`I%NO-*U|_QTvpiB=!YAm7rxu@<9}Q6mZ?td^-YIl;7~*HPR#$)x-H)k5q0F4hM2+^qk$hci7- zwu)EB9+@A60g+h^Q@c`(o$;p(h+{0~D295O8q@)bH_fF^G7C0V2b@&RhElHmPp(Yx>UA04;cUm}YH#b(B?@&|WIaA;qGqPe_=a!C9Q+v4`Nf&?k+7P|N>0Kpq zTeAE%yh_9uX|pBJ`t9^8fRslg|8y{5n4O3#>9u;8e_6&XQUG(0+LcJ*E0U2BH4@2* zx)5kb+w%(?W+4O3UT#8O#!RT$D=oRuEqiq_$QVUq3a*{27cssToRp;R7B>obEO?h& zEX}OhnI^HNy^fSuJQGTXsU;V^WgpVDJOdO}T7&R?*8$6=M!7ds0;w;Dd+7&KUhvr$ z7*;oO1*UhRuy@Vu^o8e6#@$9{?X@Ph?YN2OFnrvu&7)78V+o#Lx;vw~J26N|1aMYu zP4?j=`JG()lC^_IIJ-6pPvBe=*5&0)Z**2~bogBn9PTELWg)UaWD+q%xd#cCTok~9 z$SRY_N-NX3U4bv?9un6^^%!%*Jj~4?5&+=Jf}1v-6PHR9fJdVp9u6P!NQUr;a%GpZY9vcOhe}T%sN$be-Qiv!s&% z_ZNVDnoZjmqwHPKBDdi?HmVe!Ct1yN;6t^epdC=}oZ&lTL(h}8Y==;>E3(&!(ZtlX zim_scaLnU3?L_XZ6{Lmtr{zj4B7jCt8i+x}+|`3zaV%ol%s|Afw@Pi<>=zDcbGwyQ zbw{*du9%?G+ovvW@vDJw9LLaTk9L8QT&1v>M|=#K#l&^@*PUcN%7%>&j`0)Hs*hv1 zv`2eZgIVCSFgCPD=K)R7PJOC}?Gh8-#fcPc49p|58O)N}`~56?y|+roZDpy{7puVN z<;fl-+*|rJ^8NNjHY$W;UJ0cxd$}i8-z{XBhPL|*yHgg}m$B!Qk!PJ>b4=)rjckgz zZY#s^n94at%E1$R~=%I+>U?pC!|E%Sl(nD(z)s^Z!e=%)*{~ z)6FGa5w2vJ6<4zj0NeeIkrf|+Zn%LauJ9ABgLQyC?F0xnkP?JwHt{&tl_=jg?BiD= zI`p+`OI4^S?S1_{jJjJwszOo8G7g*QNmWah16q^0%9e4>7Gq15|L*x?{@at^DP4(T zT`Ze7{f5qBjE+k>Bs@kxD;sG2L;dX-n05Ty2i}j_8L1Ka|44fasJNEpUpNT~B-lW3 zhv2S32MYvuC%C)22c6&qcY-DacXxMpg1fuR+vJ>c<$v$@-g)m^tLC?BSJm!ev1WRz ztE;P)2hI8(L`rz&_QFwbi97!9*ja+i!76O_MbjnsyyKYrV_~a|FuPGjw<{$ubXYC6 zR)O;#^SD+vYvZ-G^*Ekchu$hPD{G@i!Rl&I*OIJ~TMmsvg%Y?Ef)*~{p>+ATQrH`Ij;repG= zdk7{_F@zbDXZgY=qJFBOkI8wVN(QL6JbBk$eg+!SY~Vf03JZYQge-7>`qdJ=hp8~U z78eC|Qy_@znFoT9Cn*7_aY9oQD*&4Zikr#qd}G6c!wv+AHY(K2yz8PM_JXv$xQ^%w zeV{m()dDdYnbPOt*fM<}2;|Kv*3?Pc(`qyS?JZCTxrx0|d`~Mt!utoWdB0Z10~3L1 z;7yE(I{82E=q`M;vW83Hk4XXra+!|cF@ zj#ytUFC_?OF7MmT`+oU}JT&+V2-y|n%MOh}prr}05$co>q2;C!+PQ(|+l^B;(o{cf zcL%Il>akJ_B~T&q!In*8U5<|G9Y+g@k6EWUr|?Gj+uN=Vb;z9>;eFqwIzuqmqC?rR+&Kq0s@ zD3GZ2okasUT%t1=;_3lbuRWANQOam62LfYiCT&`R2ye3V26?5pj7!P_4*yLxQko+*oCmolSmY|Nwe>VsT*5j7;~DM0Ti4i8A{WO)A6Yw* z&`4cnWsNry<-BeA=)UjOo!`_~R!E8W!5+M>z?Lxx3vqRkxV$GB;)r_QP05_O$aYWnR|59jpf-f zV7@5D+QrTHwkw7nY{AB3B?gck#w^*cctNYr5WJ~9Q>Ta(gcl4{6EM1h<3#B2%x~*u zz<`BQ59kQgX!15~0k4Uw`jQ)jy2(va(~5~659g1RTrhC%cX`O6TO#|$A!uHNjbekv z%#J7uLPZA%)j>ln|FJ5`%PPMi^0L!N0{*`PMyY@VM?h!6bW8|9@Ep7?wSLmnIY zd~xX8qL<$Iduv&Ey65me&-i0_q=1u+1@)&B)usi!dlAzC6MHr8(&~+3y)$-EN-!Q{)HdDv%fnZXJxG61H7r@M zMm1`GwU~dsZ`d*M^vXU?3jq)SBsn;``%&F?I-lj4DZ1I>#@KGaBe(}bJ{JJPJW>0@ z(#qxXf*&JA$(6^o>MP&i#klO`>k@Z8n5mV^b#45(+uHH5>{PmS`kp4vxw?QOR92v3 zj$GPna85yGH_$c>Ze2|e&-C9>hkZme>)p}E5x2c-7txg>1g><; z&)TRN*7m)=kP)ccH6|=sgVfWAe zCEYti;|C&Y76B#W0OPAanfzh+ks|??J0t{NeSgDl*ntSN#J_9~iDuotT;OLkY!+!A zZ#b4g_1#=Ef76_v>O5$FISJ$lz#AA_sq-xqwC*7?RnWe({5oOah3WgH?w<0#)3BVd zEY-`kDGF-hcFejp^9@jvf3HH95o_BkVO<&ZapT5skzE)~QYW^C$JU)Lf18GUmfXBG zvI%v3F-=(Z4R)I^8;?cX6gFEe;mPC_Hs~GNjd>bY+2_eGn#TD)C4M*d`z;h_R!Cnl z9%e(UOF-iodXwyiq5le)gF5h=4DK}6dj59PSY@Cnk5mn$^;Yo{$T2cG@_VzzwX(Zu z#eMM&lSPs$QrxwNH{>qXEZV8@)r1lo{TqVo9A1cJ{X8TdG&()ZK#R0~PHj3oLynDl zbi01fO9Fp1CP+Kj5 z5x2dl#J8x&xPa9Tq-gYv!60e497p!M_zk^v9n(c)SSzI|%!}SDrY0uli zYrets+y$@2&GHyAyVAnYZ(ot(c{!@k>ujj5w`z{gh;zD$8qsg>k)||cmBraRek=1$ z!Q0!@HiF^enx64eVd9!Tw7F?uQfTVhz7(TXdoVa=a0Rc{+ukM)UsTAf!dJ+}C^cy;j--`wA*kFI(lOb%$T$EF-4 z8~GMHdSy_|MkgDSnvyObRgbhIB?b^Ms>`XXQ5F`UW|DMJaDayk8w%pgTQxyRLj5|G z4M6xTWvX_(mdSS?Z&XjjQZ3ZOxZXX|kK~pXsD1lD7oCx&>?P z&7|(Ul4WSjFzV_r65PHMi#~vZH;}liNnU_K`AA3XYJf?T4!wBM>lw;UeRyX*WB$Xm zBN(s!7nz!jk(s5vW+hOng_7%$@RJS!l`2f5xjxJ%;Z=)ooUHN7xhKp;?i*wih8xUV|H@)5BCqP3uQNK@GbY|- zK3g&%0TExxTJsgP>Y>o7fJ*lr5?m>xDnt;^lzjKjI-qCmAgbpVc~qS=>&Y9^?;KJi{iao#RT#v9vB#gR=3$;nOM0+zYIGyUn=`6;%OB`7iSZ|(ptQsw8>mrIj zsp?0z7tuCKZUDi}f%nI=t$9<%V*pVHYF;bO5GC~?a;Te@$Kd%$YYahWX0~h@GjL*u zh6#}_9EmlQq)VLfw^5&W%Hf6vWy;#HT+y>CNwe%k2;q(X5Wsd2$wV}eQEmqaaG;V~}t11#~<+QL| zmA(pOzc%J?%SnmWkd5XB+MB*hNfi112dfOLcumac7p6cN&~E&WaW)21k&HwLC2&Mg z7x!Q-5??Y)7-f4z(3RyY{=U-#(P?7@d=iHxCDv>VG)l;SbszZPH!Bt1p|kC!f|Y_F+(vnx>oU1rQr%zK+`IJ-RNL)Khc1ZW zGW-$W{wquhBWoO~^gs;o08raCqAQ!n`EchQh?5&VZiY9{0cbe%7}vE@y7twkZcX!; zk#|iP<9g(yr~Oxg`(99~I*z%X$Q%)GZFjiriC(iDW(3I>BcSKsTOwZQb(qx`Y|ueI zcbL%x0&87J*NlRm@L#b6^gEFf7zGXg3tKV+?22|D0RgiC`b%Ai3}8;M3K@uvOEbrO zhZE2pKvb&pR;(}odhSB9MLAONUa+ zO3m2J*{YM{>4WDQ~QT9+Fl*CS^S4Y&HFH z_n+*L*yFNUfR_Rk!s7d^DTIiVjrk^<+0%D~5|x>usksSczpq#vvQ~rC*yQ;S{xP$@EJy zrw*|BLzUn|CO-_YOs^z!zV)E8*oY@c2uE!jGvP_*WcJvX@5Y(}hjl#C!IC+Nfl;%6 zKEz2T-=)73FM$`8tH*Dz*q_J0Tr7r+Y5By@kF#m50 z{eUNR{}JiJchb~sQq9b^OQ_Jek)|^~`eQ!&udjE-{9cwl%mtB`d38?tNydA;UqI~W zqcLKk{Eo1!4Xn287-T=tew7g?8NXSU@#~Xo6z7&7mG6}pSZ!tE%G#Hog(GNNCZZV& zj6zN8V#l?$=&m5Tj&hOMIh2FUu39HJ1YEiX&J@q6vVkbcRjVdq>VTZ?Msbp!#7Hfm zsDV*QmX*L$iBO=Nw%3&Mv%%VF71>9t6g@Z*_0M~7nyRqQ!c8Mr zS7n(AU7#Y_C|rCa*)Ez%$gHK_F-y#Amy#j1UhYaa90a!#hC_8-NP8BWocKyc5tt|5 zX^+9<&Uqod7gyp|6@9&oM1=d!Zxwd=dFrS@q!$Hne8l!s6rDxz{0InjmdJiP8Fc)g)pBy8iDGz)5x)6TTh5JF;&v~V=(cQ%*^`&@rPfp6S zHUIJF>uMxsx~AN}W1A!vYn(dHdxv90&h&nyLRc<+j7QXJHev6B$WK(!m^+zn zgV?b|@S6)1QpKPwv9Ai0kyIb$)?*Yh*@0#!iVxOnm&=2-6O5lA}K9mGyJN>@o;HBb5sh6#FVd`IhqIyKIrH`nS2gUE+qCfiDp^yuXtcp}rU*Nm>() zeUlscPEjsPEJ#80D;1?2>Bpa0A~C4{O_-%HqqKy@fRhoKsxaecJ|tC91b*-6NZK!~ zY2s~`G`}jE7&`VvO5GogRhytbtCPY(FS?d-XAbk+f(&G$0B5gwbOhKW?7qn z#OK%6p6nMjg{{_3eVv&vEuIl!6#TZ;CR(Du58}`E;M0O8wzn{nJ)AvT$&&T;uF)bI zT;SlX^*9_37S=ze<_mn3P-oRCI`*N+YkP84t|ILR($>iR=$u63Zs>DQnU?EJ9bB5m zmtnY!n~ow~d|j6t%v zU0_{;k7z;TqTv{uu$NZ~MPEj+^YQ8gNN9YAK{m%DP#D8G6?~+V`&|~XIonxvG;}H! z^mr6$n`&aGdID~`*BNxWI-&=iHHq_9j~7h#(wE&4o3-G!(?zul^hR^iU@4=yIwo8L zecYM4IwO1Pvr@%(YO+$#Pdrr*V(M8bjMC5P=yiH{6Rj~e8hXXRG(&mng>j@_6nzy$ zmmaarh7%#{p4@lyMROE2coUk{eNxXS@-5I_l=TFePh^Lc%Vi+^ER%I${W&N!G4q2H z=i&iRV&0BOfYy>g(6nO!SD#8v&W8D^t3(-MbSp>yvcHV5YWW6jFze%7q4d;pT3z4OTB{4B1M@ifmQ5{y%V4YOF3T6w>VfeTs zH&e21jt;*aI>abbY#UoF_Nwk~V_7EID%#<=y-a)vUm(|d$HOfk()zX66ouwq^W#nE zQG(r1g02ZQUPttNnkeYLEEAi7mQ`WgW;M(je2QP`0a|)hkUU$1Y!=$l8fU+itd3Fb z5*8I21axuVj?r?F&E+>CPPFcQLY}Otzg&wvAa~sJpF1{lQWx^`=FM5O+p(bG6It6a zxE{+iIT=zr*kTpO%4N2eC|4r<$F!GORM-*FrF?(01rpBA)VKyJN|IwA(tY`p5a4I{ z0%$Q1xXqh;lQOxZ*X@eSPtw+XS!Abbino>#ahrRM++lQh@++~sjW9>~XEu~7ATd=D zjol|E#qQWNY0!P&TmBa7`iZ9jK2;N1dT2Y`i((*o)||yHfuo^6nU48;U;p;|dz){P z{C+~MOpNw@&3mH_bia1r-!nRBH19?7{X%ANU~C?@cvjYDHEedX`XNuoz=OJ}Cf{s_ z;_>$Q>c$q%e!vfGPC?U7(Ef!vLJEEf35YRFmAS}HcP#qDfj~M*&0?n%+2n|d)@^Qm z4a3WtTh{dU)fhMO11ZjgVY#_$E91dc&PmoyZqB6Ac zwgN(4e6lLPsM)^o-ox(r;W_ny`q$H=w+}fJbgb>7%$2?oT(4{XJ_x@(q4msvYo4`C*djkNbq6?zDROQu9nA;ZwpyFlwUV!#KpRc5F+kaUQmL$;lF|6VLNrIOl7EAla zyQF_uVzljNgzk;E&A_uU5X1d{Lh9c(o@4gPi z6?yCs_HM^Xt{KKv2XJ&|1~AE0ERH zA1~8}+~Jmnfi}%2J91d8zDwliP(|Vq&OHBr0@d53BIHyL7_8`5dYirB&JtZnFedCkcb%OXgmsV9?t#ok8Q`s*$$;ZvZO18?;NOFHLaW>_B1(%tr)8zO;e(o<- z`MNU1L`@gcDk14XvZGa!!Gd zWI{7y{yVC!#Fi4r5+=^^nFCt7vZH5}dtJ7sc=Ke%P}KMJ7#GWkwnQU8f)EBuakVh$ zJJ=L$INA|You}H%P=*EztYO+}dM9zOL0MS(?axEN^b`IC&y+Nxi4SzwP&C{gg06S) zXCPch&sdiNjqsLl3IkbVow|6yd4+g~+?(Hw5)t`(+;j*gt2Q-?F+d)D*GA}$4Q6t> z3c_^n3URdYl~Oo&Iy%xEHh0@ZP*UcrX7v}gPL2d|>&>WB`0!HZG{hzz6G(C!p1Z;i zTPtOwCbS(63V6%W8gj3u|io5OQ)X0;611n<;SXmd{z?MJ0uBWbC zp@|t{idn8f5K=kR=$?B)zy8Y#1jCT}@t&>`<2;_N8MnSEDHq?-k6226#%C<%6=3)l>HB@xEH zn>SFZS@ljPm7eF!=gJ?9Q7?)YmmwStVG}zS|P?8TJdIT*F8Xu^&+u2 zIsP{dS=Yt&{UYdA4;>_rHI<}kOZ@bB&49vrzqs3_^fM2;wPF&rFx8%>KQu*PDVQ#*IQEm(=4#|?E6R$BXfT5jh}HjfATKD{)u zr^^1&2#;7Uy%HBib|aYZ19f(z%6@6|jkYkpTrLPP3kwBv`{k&rh!Js00n-^mqnJag z%-Xd=^+b5`K$^5=LGjf|x2fma*HPFs=#V%U3Z7ZBo;CN;A4j_4JXW9AUY_i|}O)Ox! z1hT4FyU!Ei8XqXsHXsu#zC+13JzC_R!Tw99- z_sZ45>_I1Z(TCsMVb-}Q7WuCcd!1w&egDs*$0>LelJzdFLWN*~Yl2=yYuT`UiY~`B zya||nF?!nD>b*zq6ek5OcB&7Ym8+#*t?93O{E03=E@c7>dq}rk29Jjw^5MVufqYC= z9imhaM~r~fdW1a3ngZfq?9N>=R3;pizYMI2nLoHE{kcT*1P-UQ)OX zFb3-@AyE35uw}vB=Oj~BX#y9OYoK>juyC0_)DUzVuTV(1;kiHpb#G`Br`XfmrQ z|4ce{FfpK(z&NVzJgtV!TfjS))2jsrXJ`!Gw4trJCcl_5fucdnuyXnHt(I&;H*E^8 z0HWpJa7ew#Qu`lAVXzBmjjU>9GPzYuC(cs-5t+>Kb<>g8VO=LY0r zwika2kM~017kQx^wcDQ?0rO{QW7MV9<84ThoYD+V-d?EUMJJV;UQCz6pR`_LT3n-V zNt1vhzR?-k<~PeU``Yigy2JYwF4%q_@C8csjG;}Rcdi*=UW zr>i2*EvQ~il_N^JD^v{kpxqvq0FdGYPV72dZ+LZT>;}}jusUWe?G-Y{-Iv{MwN6Uj z6(0f{{y6kABYrP*Kz5DnKT(QT@a@c~CA|6@FK{ocbDncTOt&@kWau?{O0488;YW<8 zpmL2obxI7I_bLXE+o9VVa$EFp{a2MOdYm{owOruX>iuuGg*wuD z?Kt4rlKpW8TSHwk5sa1t%B+1?+1Ne*32n;NExS1NjsGv8R__@Q&vrx*k99I~!^@%> zd}QZumSNTIGTd7{Wa2DCuOOW@cJ!fWnBEK{Ea=D~2&(Q~NKgb%OBA^QRf89~vKHFa z;i%ol5sp5=7B9cS6y$@XHEiulA*`ZJ*5%=cY$V0P?fW{0vyOr{PSNdM8bzNyo9WD{ zX3rkD>-~8j>YXX?&mI~wlsLEV-Bhk64i`HRah+Ks3<*=>n|r-nUlV8!nOp)N?@{V2 zhPR(Yj9(qSP-3PjTC$M6S~-K|0ej=A(2Eo;bx@>(?{;(r5(BQ}38Elc+##2>OescD zJoz7b%0vkY4c)mTT9vjjPps}?LX5al_njRn9=A>EoqxiQja?mmz+Ic+D*oi;icK$M zR?6pIP9xAKCcWAw0uxHe9SYi28y&l{7I22aZ-xdR=M$^Dh)Az?;B1?F+|KW$JfN&* zPaW&ZWcw1?j$alx_O+mgarU;6;IpS@R-N~OrzVZP6pw+sAJLa`kcUxx}1&lD> z`s*W|Y?L2G;HZn`XPRHiZh^HkV{^OM*SyS z0EWOAUb7`oJu+0Bcgj0<1M{CFe9uRO1qe!MYBcNY>#mYLOpWWpers2*OV z;7LJ*!P;Izn;anGOEjweg$45+!oRV%dBjWjVRxTu&=x@kg&`pqAs-&Fxm|3S>kGR>(MDqG!IL}i*3{SC1(qXo!<}{d#<#dqf@&VET;u91W zWPtL_#j5M-3#)KFn#OoEOf8Re$K1xC+-wL_4%zP@Uk5k6J)EfrD$pJzpD&1+ zx>iP43Ak|mD?Co<=z-MMiHy+bD^0!L=Q$s5HZ-ui=}zUZbci3@DIG7r*+XlJ&K6MR ze1cj-Oai4<$MOWZ*g~w%;E~vq`Bn%Fu$FRQaawDcu(S&})&b+dEqAxIx*hL_Sq))z zLX`dE63?1Ak8YP!ejQNx7thMMrqMst4*}n#g>`3E&*p~42Fym^WiFKl--*8g!lgGN zN(3D{nJONrdEqN3U&p@i*kT`lOU)(m1uWx(=-*eq%}L*G4wjD($bq6~Rj!7DNmVSFuwQBuA2798wwgU$@>Yr;^TYtHH?taMNc3CITm%jTZkc8H>|%WiAiPhw%Cev^*iCgAlw zmHUP4&<&CjTp@5*H7hMejgQ-Hgnav~1cdYtkfhe!`$E9GRCpOcr0$@g&%?I?^?!y~ zeM=Yi8LV&0Dsq17$J3S_8?i=$sYYIC@sKFIctOW-JCS%ZCiTs+YN-sH6v0)_z)pv^ zK(|EfDN&ZfC}VZOXNRBrvLb=H|Nhk|!1vLPE%$CgS{1%h`aD| z%GB_MI4z#7&V-#!#0z#nQ?bgFcn2XUn8z0}_fKKfTVqfUfSv9EpSoF$cSyCyd0BPb z4WHHhSScABBN=bJTVMbgYwyBW!{x~TO3mem3#Kp3hW2?kr}d>SL9;WuK}E#IheVh5 z=?*9wKb{JifQbepxyie*3tl3B*L%iYU3903iAA2^4#SdZ)L_ZqFcSxJAjU)WA=T4E z$A5$J0fy?ki~Xa2Og!ZraP_9c3@YBWJE?zwqqa<)@&e|7kymI$R3LdR#&a|m%}0ON z?g+R!&`_LmZAN&b zhh?njxB1L;9+REAX%3y)(xJ}`@kYJAnKlZVO%mPnn86)eG>H{dB55V7b2{KYcKA+z zJ~!92bS#lvqRsb-+~(1#mA;B5leoNAzFgPLKaAbxSr$%|_RTn&aaptkJe=Pg{<7XgG7#`i@1vZF8n?ul z;ZSNFi|;>k6_57#t`SVueP|~SO&YF#^Dl5Z&Q5P~8d+)gqZKF6`AuTnH6hF`jL+&z^74-7alQf;XyaFeQ8oTr1D+R8Rmj_h46b76Cv&t zgt$R$4y~)Xa1RhO?2)qdIOhp+Rdv=~eyn`dL_D#Li1V$-U0WxlhjHQP-qjvgMvi)% zc)kaNVRNO0=lM`P>a^A+8y;rc=Q}{4boUMs#s=5?i(ao$YK_~m5(fr9`|DPIBt#!; zBtKt5+?U9rNU|@HKO%jt0^bSz$rJg!Mi%@+_~9k;yDv!me);JDynZK$^grakMM|%W zKYT{}@cjo63V-%H6do<*!Vjf6{0!w~JfSuj9xl}tx`?np(I18{76zMH)ISrwfJfH; z@=V}m{kP}z#-E8kKr+mXsMcwr4rX7>HWl@k8W)0o%07=5YfntwNm+LasRK_O>H(t&sxmzTK?{bB+USQRuRWT2g4UJUAJfYoV1QwYm-EG|w*q>6s zw#N?!6DAbZ45;duuyoaAQ(Ab`_eU=smt>~QdIb>hFe*uCENJTPPp7;`tn7{#TaT>n zCzeStE(xpwAGo(E{p*B`_5H;02u2dNJOVOCB^r%6wTcQ&b+L-IPRUZMZi~OgE4VpW zbaXg68gz9)@vw8X1%Yy=9KtcNTtmUDKu4sb!BtmbuP*M;)(LKDMfdez$Ag1|#Xv`; zqd8Ym*(rJ0VTgiE;NyZ1e{_A?DJlM9t&`jJG%_jPt_8u5t3p=C2g;BWr;^mCH#t<9 z<|%&IiQj@uSmLc~^>LwBf@q!wBCK8r(awp2M1k|`Uv<-wh&bS$wNah&;e-XUQ&jQI zA#Ov^U(=bRs9438tOyD?E4!C(0wLC;P>P|%K=t^)XmF^x*uFP4UsZ_Zcsrx#TCs>Ob-OsfOvBKd#N?c|n;*;%;(y~%A&)BYxN zIvmxndF^6@ese75*=Wz;n<;PPROp@n#xk9Lb4+HO&i(*p!#3)&<(QeHUUN(^4)joG zX%E7xQQOrFgC}c9+JCTK4sD$sGxTig^EhMq0NrBo))k*9RStFjj0shw##u-~I2`n3 z?WW6TqF2*vo189w&uSie&x)-8+D52`0%=bKhd%3clXTFRUpHa?9Jj)?upCD608h9FHJx?xVK0ICYw5Q0 z{p?K`=@`51Cne3*qI6rC^hE0eLczjxXI1(T&Q1N_0<{}lmmI!3xwO@|8(fDRzH!kP zn`G5-6<6!7_gC3G!YP#2=GW3`pu19=f&O1f2^=I?0x#GfQRV(x>=Soi-%wt4M8?`Sd73ScY zjm#{R&%#%_&Jxi8lNax_;vL#fSS@%SF{C0?hze`0rTPT3jm}Wzq2@r8J4AJAuegv; zSJIh!Gz>B36q0jm2Y=~S;y(+Wau7VuIrXB`#Z+?oB-c5Ubywj z_Ha@PnD5`fd#{CY%OR-IkR~P*FRhI^Emr>vHn{aqd2mi0{hHGUpYnXrOc#GnL#Z_o zR@G^$1STvb8Ls{IcLZFLebAgLd)rjaVyx}?KYr0kYwR>(@CrcRKVtN%8dJkb8!e5d3GJ)O5@#pF(_t4(1Ar!_*0t6E`2 zZSg|oIaO3cN1VWLeGLj&4%3nu-?9wOK?H z^tIV1Q-=~Bwa6(#7lg>Ehn-k|NDQPA+Zsm5GxmfbqRRUO%QUMZYey%hXX{J&A-2Xf zOLP;Fhd|=?kf(})+udZV2#SH_qF+ZQY4OBCbMKrWmyN8TfUw)6JNqb&i51ppsNKa- zB}^&o;lm7wa+XaQlbc&tmPBk!z;{5u+c^UXps zWo`B2=VSA(GKxGf(~7Qq%{t9+8;Ud0pi(t3ZJgn`z-3{5A?QxR=EK7}W*AlNZWCIl zY$P@E#J7BX*bFuO8SwG^s6pF6J;~LX0wcV`fmLEUp(2NIajXRmW?qa;?#w97wz}2{ zA_M13wp00K3OmpmGwyQt=7&U_A@pbMhe3so_`2UuP`USBD_?Jp zAc2T^W-VNU@L9FjIl=>+Rqh#OEICe3fe4T=`w5D(@)C}0>U*Ru%-8ntFFB!K;6ZtZ zdGmGgebXZxW<=WJY&}^*SeQnNocDEPoZS@S8sau)l=~%=J4fMwlWmzfZV_EOaj=Y; zZ7HzBn)TlyHIpbE=WVU55uZjioG0Qm=4d_90M4Hvd&X9N~j0*5cgaZC!!pH zPu|DY&ziXBF^XuDZQm0rL;VG^P;cK8J^{;&wT)G?bLFaPw1DXNXF)t5mSrmOr;<=s z00kZc<^&!1x2yfg7t4SqG3CoZTzI|cs{CY(ATs{B$cQfpI?MPkaOZ=PV~ze_ACg2>2cR0K%{_4;F4wexs#bng5UP_*5WnwVz*85Mr&YbU?F zesNFewaukm_t-o5?xA79jt;5(2Q=d-QeLPNW=3o5yN%jUr zl&|a z-rdnJ4?*0yo=S$KW*p?YY*Fr{dbwzuOUPc1hn%81NdLa(qv-&F4thHDv_!Sk3O=5k zjo9yhkr8b~c$J=UucE(X zM+xno{IMcc17rtwSXP5lR(V>4cvj;~@%WyYi+~XWF$?7;Hc>If z%i+sVi}&4HX=-rS%feK3aYwpTD3wJ`L3VyWl)u0eWsQyh{|K9+o|V&?B#P;`dop6RgI8BSI|B` zB8IFf$kzBTs{SH}6E1)g4od!f9%MVe_45)gPq#8@3H9vfYh_3E?M|*Hss)5&T4LcJ zr8^v7OMFA{^!Et$V6eElr};Y(nH(cZ^c0o|4IlGXh3J3BV@dW2O<+X1L}vL%5hEQV z%6+r&NcQ84?E95D4fS!w?bUY;2@aaoj)xkN`k)uij^Dd%&%Qi+N``o|*SsTM^Xzh^ zus=qQJ%A@HJzRkQu88$Peg3Q^fW=JI?{VVI5=gC5UNZVd%i_)jb9+wu@O>8VS7`^5 z+<0EEPYqLF354;VGA{^#iN-7bsMSsR88Ju=;fK2!;$otJ=>7Gi>oVdULis&H4Jv*s z!f{n^CF%_0n(fsjuGs!j0f)j|nicIB{VON<8eG!@Ok0lVU(0HCfHvrGs7mP&b|N!V zKE`T52aO#V5w1mth&@0Z(X0g+K?U(a`MW1C;KVK_wq;lYk4*Zv)mj7NG`@#SECXZH zAbB-b^g_*=;uBvL_tHw=^HkHIKnzxjC2(T{+n8)r$PoM5brRVBn^5o*nQW|Rw82}0 zgm$g4d*X2aPzoH!t@(ve4Va`^r4H;FO2^+o-fjGMXUECCQI-!zCxtRo9}_h42&Ph z0>b2~{qJ|1UrVD9YwNz02>JY5uI56QDq_Us{*#AmhgCB2v*=p}(HCT*%_MK)NuEcM zXh*)3_=iyYjUqsI6Z~Z$W^n1*`(X6nw%U%gJj_|M3`}uuF8Gshz0t4ZLC;T#w0U0k zLq7K)F<`wQ6KK|d9S{F}$fVg0n*rrT>e%N^7H#bI(`2QaFei?MbrIf(p{H4oOtO>t z`35As9!^?YQM1RHuM>(1KjQdv2n_i9b1aav6mUCam$)4l0;3NmTm?kk&cKjI$lxsC)NAYR@03?1a|hjqBifd(!p^w^xaQGb)SqP&OtB$m!E^ThKKUOKyBa`JX}-^ zTx8wD&eBD2IPF&ufn+|fM8mc5{7-!CnOBF7sbcn&p4(GCp0rz2K2o$>zf1-*<=)Q1==<{Y6?ks7 z+2VABTN7WZt?$-J%|B-|pZhBkjDAKyn3jh6`BNT>mDS$z=mGlhu8jZUX`ou5kcN4$fW`d0_RW2KW9x)zd7+-322c+-bz1g2BpnX4 z{>WhCU)R_Hwe8nL`xCQNN$?ykw!Y8^=PtI!(ApG9|?IhST8>iZnz@t!W zbn}MvkIOn^>TXreI@NPrF8!EOmD2sd3@Auw|{R^&cJ54h3 zIkx(>o(48WS{h0Awx9KBpZtnqh%oR*&FUqmJSq&wi%1_xIf8M|@JIhNd`@_ZdkZicgoFzTwq-LAX& zaNz9u6udwY!eJ=)PS&Y&e#&2oEHeeM`8jDfI6c5u*E%5B;ZIg&B^|63ln$g1x9uc_ zf!F%yI+mXHZ*{vM=NgEG*5k7HvbV+0iSdNp30@1|M1GD9CL{oI?;hcs4Uo;7Fg0@C4ii+@p=?qTQ!IBNKqJj5obc;LESoksqz6 zE;H^oT{9pZXf?$rcTORZ@Vr8zl@p|BbwZ*#XSuH|#4^`(CQPtNF|0Zkw}^4>-$@%* zWA1Z=Mnamb%uS-pS;RhJkrsqRDhY}98Jxg;%rMWUjT{4x3498pgy$h{H%SQ@aRoM5671;eg&}H9De(tPT z^_OGoH<~z_z87)!HD~K~{5SYTUwjbwjCToo-W#TPht8;#?%-*)GG3RyfUp?DtOGcA zHaU$`WGh42>{ko(0!M&jJu!VK5&smGB)fBY3zCvvX)D{Y$uNp-XB9E`{S#bp=!NF2 z?Jv(*d4Lrj7U#{^OpEA0bpx^7V5G1!z%M@`@V0K(>gMfDC#mcqzCQYS6glBr$4)ft zC9Z^{Utxm2zZ__tNkF7XRoM#CQ9wEZ0xDgk z*MLaxy?3Hglr6m@(nAQ+dl#hl4uQ~nD500TaPR${@0|bKbI-l^d4}(rYs|6&4_VGR z#yiGvZ$DM(YuJ7Ua+poLyZz@cu7pkgHdmw0cX0}?zrHJNYUw|jc=)w?))$*tr&H$| zU+DHjc3HrzNF$DKR&Nv*N4yJN6v``+ej@S*05y7H5IeCA0>jr5GarjoqTjcBIlW#( zXL!eYyLOntyboE@3~1K8)m}sFvZ~%@RJomw-exQMUMx*3^6zjpvP1{bt=o91xqP1` zn=7^RDk`}d)jHggzwzf+u+Z9<-w*+wSpD*Uf}s0@9wGmz-WS4=$B6RiubL3%zGAXS zQ8+^I`0&q9;Jno@*Wl+8@T(;srKhmVgQjV22)PaLVE6Rypd@!0{(%jK(pky>M@Vf~ zg$qX-k2u^Zh|Clm5MA&o!M{>*JkHHfVo)uXC3OiE^#0Hyr)aBBbKXlhziyp;{R96wP2#ue@m&KsafTCTV8fiI z$2*IW28hpNow{hJg@~8gklTre-G2f}^ z(_Q0er?oEsdJ+Irl9OeI?p&#fr@5}N5O~$Pl!-c6$MyhBEdfT)#KAHIy zG}k-PX{3Y|bHq6%pBX(>e$@8#ajJgXSt|E+3qLivw6*1q0{f^CF4OW=}~Ae@PGt ztx^9C&=_6iY$FyA@yxz1V1rc8ZqDT;c91GWoasEa(#O+ecYp(|i+Wv#Rlde%g! zmlP-idYd_OkX%x%gWfskg1cZa={)L5B#hLZP$X4RoF9`HpiJs*Ii~`G(FzVXX5fMO z?Q;X9N$LL^mGBVfK~e4PMJ?~kEE(rszYe56B--VCXCm$1x9p5d$g=Z>P!?cWZuLE+ z=ncVHK?auxdx2z=cfKdVM4DNU%)J`Nr#Q?#g@UGIhV;#feXfgzn-^hbRNt(x!m#=? zZy9DV9D8Z)mxk9wr+Vhd1^wRRV+1{$GRMz&J6_o(mYS3E0ue2y%TQ7ZTv6W3c$)VL zB%EMIFx(qV*NE3G_|ojb#m6Jhf*o4K`RC`txf{h_(n193)^-5Xpg9Y_iIY8tQCk9t z2E{+{$SiRNzh;(S`XoW##`nRMQy$l&)3FzqpXu1U+JSQ-%0VqL(vj`h%$FjK*wf^Pa93{yAvw=#fu&@be;>aI?7CvhvgA%g5d;flSIo*zf&b zLq2}2zlOsU^jp`AyPOW&Uc0;VE>KY$&^PPu*hx^>;?xG0)G~;!&#B_O30Dp^rBE|p zlv@9#_$=%`+>{Asbiw2X$pI=qmz;x^)1Qt(hT&#gNjEU`Vf!H0O zjsaOD-!n8z`|gJq;f*!~B$J(Cb;1Tht_y^o1xnq=m19XdqweepnxRd={U59S5s(-{y>pMo7?$*&3 zqdWqQvN!^t+GRflnc<_y%{bdkQkr*32|yGMyP8(#5Uy-O9z}nPn+g<0i8qFD;~zEh z;asakvmYm?M!74f3BJ8-`%C3-f#y{Vf$h1Do8Fmi?r4EVpFrijI;OO^4D!Q_uid>g z4;smELJ4?Y{D%kl-&7h;S||3RS?lDlRQiy~^oIQWey-u8C2M?IIffd!Yn&)VW|ml< z)krZp%ZNHR>ksV*NiM&#=ePs`&sl15z$UVpvs_0@rJ+%Sc%dsOXOQEOj#1jJGqV6ws-I!_ z1%p@6r9x)N3}C?5m^u1*B-{*a;dN9Zh{w{X)`}!J2Mz59ImeZVMhETI#WZ)eF zZWSLBMpG=NT~A(48+iBc!iB%YI|qnS(>Mh@q>g3f;84|~x#A4JqWbAa&8|qd8ftQb z4mtR2IFr+-ChzLJMa`Z4;^UK|C8CYW+c9aheVpSu_%(YA>*+leoyeb-#3p4yuvt2D zulY`=4@5ef>-9GLSyd`-1wmvrsrq96*jauurVG!E?)`gp(%pm_A$K}8O7`n3g5F>9 z=a{;ZW4Lb4KA7XYh8mykvU!kOXr#6UDL%X+a?=<8LFpiad`5xPmgeUKaim7bwpW*4 zv+7A%Ugb5(T_ABG?-qaCZtLHEVV=+Cygrq8WhjNC(9to;qWJCN4puY-NuzUW%L) zM7}@PDv-$LzLufGA3lFf-)c}JADt4@vwt{UbtqR+!@b35F!`j`+2bq(i>|G+wMfHk zX|L*3DIcRpgT3l@^J|be+)%Z?!n~4*JY)oKdy^CE<(uPaj672vc=32y5;n{XpgEUOHbzl?+Z?6wwT*=83>Mr3bk6a^!>cmF0_aKmG?(4YW~P zZYLEir9>n6Ha;rg7F(foBPSZyUAdbOx=zx+Je5NSYfD<5?gUe~v-$BVK4s5^<@=T~ zo5sWMzENbv1S zQ%J1F&I9}?Rw?)+!Hv3xM_MPZGk2OlKX>-pwKb0Lvmc%6m3+dSaa*3t!sSc%Xv)u; z5y>a`?;QjjUKKnwb)_ie8+iTo;)ti2t_zC~&u7!IsQz^f%~C5Je9lh#FW4&T{a6J= zA%2T_M7N9n{u}LZHd`!dWgaSaWicMY6XYM>O|7_ND0&bf!$f*8@cb`O6raETMI1zV z^mesy&wlzE=VvHNUau=g#|r!Ak4I#l{(lc8Dftp#EbS}QCZthB)iX|kEBE^38n)in z*gl^v`)D~v+F_=&bwuG!frp$s1DU23&1C3^wPxa>3EVz_kHo~TxvXT=R2H>#TI;(qH&s^GGl zt?PA~sIK+c*jp~_N^&dO*W=P7Dm-6~>DAQ~w$op$^_tNtX^1duXvJb>oES#c@OxZ@ zin+HxJpDjQ)0arADlIHyqklGO@by%E!-8$h(NjVcID0B*0WpOGhA{OJNk4t1ov=b2 zHzPIX3c}5p6?!Ve&6kEQ+QgZR8kbI$=RBzqgyGIg5(7+;U8TOc)GO(y^O5%6O^&US zuQ(Q+ZR&&|?zJhkd7tpd@5@a=AV$*XfVunrZHvwqk-bbBvM^>nvD|X3KHi(pbyKf` zNgWQjC_WAc@clM7>^yOX(T7OX-f4e36Z$9)HYyqp(9lvW1w71qS~`N5uLAf$yPy-f zuOhHft@#_iy42jWFP#b)ZP?R1{CiqR=Na5@&|z9jEYm%tQElcXLP=*lXl|F#g8}hy zfTV_ug6-f|1?j(Wf;9XR^!PE|W)ATHueMlfnrSKl12JOewDgJEKr}Sw732GTnxlUr2qWoLO_G3Y#zagLIb~>0mx`fc`;UKEW6Oa)yy{8T z>N3>>-!3>rp~b#~gyD%ath+xW08yT3FwWkbt1yaj>v+KM<0Xt^@P3$chlRi*AKeor zSoo0Y%AHN%pS6BmJ?iIZ3er(y6zyLoXv7IVp2YLE0mUx(F9{k6fwdw*p!r>Rn8U-5!zjp7ACNWGnTIcVnK#V0Wh{Ouh!wOGD;7z;8My7#|^SYwNau^PYOwuMJTYk4io zLYFWzh9@z20KwB6Y)Cj^$aures7R9$eP*;xKJ$pMG_gU#ULCymB`K*Xwn*^yamX_K zGK9z`W_+M-$0o~5gW{Ze`}~t5W^$yCyFm!xo_1CO2rcTLr%VL7)l|o2pkB@Eis)C2 z5LTXTIrsF_w~tfQlkMQcBZK>A@3e7g|;za_X z&;bji^mcRZpmsXJ|BY&8WW5HVfpRH3t=BB@8>m+=tSK+q*5*0}q}tY}&#_6lYHsD> zYf+e@Ho{gO1Y?O~>bmqpWvaREbXG`s)q-)gRki@w= zaClt1XQzqSQt>FmhF7zR7(ZUZWXajhhlb!aAz&}$hp}|cwQ_8 zld9yd%<_-gdv@rx*)7bQ6KnN%9ttd?*%XXJgrC=f+nt+Dgy(rvXjBy4uhnWb8;r8& z5AoPOueGLI8Ta$Mu+9K`0}q82Lk4PJ2MP(H^$I+FVDd-Fv2&}r0%1|KvBOt9{r#fI zTMaZWnjj>wYU>SaVAZttQnVd!L?)xv4T0+?gex)}?(?8O1@5tj!4e6-6ENjJ!XK9r#S**DRyzf1Z2TUDQbn%Rf4`r!iJB*6-1S0v*B zebH7VqfEO4SFt@~ueL`7Fg3AqR>UxfOLZ*io*!A50E&&&)$@E?& z2`(_?AEn0&{qn#rjpMjty+Wrsu6TJNz4t*~*7gacTqRAW0`3el&QP6OTm_AQ)06`T z7S<13;WuFq=a9JcvHmT$1+}!VVC3z0&F*^>!z|%=DqyUe`#C*&N4cB5wsrdcGMLxx zLzQ$l!_93ndziln?)3dRFpfm!V<(T(*%rWrI}vFHBg(}+2cqdmQvU$@+z2YA8@XkZ zpU>Xh1$hw1Kna0+hMT?^SwYWtf3>$U-on9?_lLn5t_0Y&4<(q{LOTwiT_&B&Ahm^w z{M~uYJ(1cXvxKRLT#v;MBmD!IAWnmQ^Ou&X_Di<=j~Erha8c_Kll1zVs5fYDOn*hR zph)Y){a&zx>xca&wG)o(YuihTV4#b-hHV!Z82MZ$?4WoKasq2|1Kyf ze(HEYLkm~{EHaK01qA)NoCD|4?2(&8mb;ockvsmrcn43@(}4D{L9&_!aP7Lj;&7W9 zv2pUmP$~O8k>LMI)&JE$71x=W2WUn3Yv7hXNTxFd2u}OCTDJM;2?)WBqwVRaQz!j3tDQqT<6{g?sX+ahJ9*VQk>^D-{~HK%KSQ}xoglh;j<~Yx z%{0ehqG>PP#<<)x_1){;s%pxo^>q*GObzS?jshNO2?;A~GtpDJy|WwPU-jzRFEh2+ zXx{%?O#j$gF=9(t@vQkbZxA3la2Ic+&JrtPp6<>1EY}4#XjIMPPWf&5W&H_9HYL)z zp82YoP^KQ9gi2et+%GTQfSOoZUyWp#K)8eL=66aLV2V3Lwa@a+XO-~9ko76xGwp5c zi{1#E?!N_yv@JVB*HH4&$*S>=+J=yhO@><8nBcVh6rJ#0vy4lVymHA>(TT6!Mi!>=K>u9 ztb`{+&y-3FCTNkJ`JvWyPL6ca<)oUZpBNj7`9iyiQ2VmF#IIBKSQ`?Q!1AI%s2v@m zK4N|d=*<0C0i5L3RJS*sJ=J;B0y&$ zJZNe>iWRXpLD;r1RL+B^?eT3ZLC>ZG=$u^Wwi`*^=6>qUgo@Y$oxGYAzx%h%z7HRT zPC9wVMT>>IWt?|?nXtdRZ8GdUr@lrHVmWJ*qSKlSen=ioUYbT8ZR4J?!`<=Xt|Xmo ze<*n=6xW94-($@^isHUgFldX%Jxh45eTo6Ps>z{gFRbD!aT)` zH$L{wR$*L5@a5_;C2ox2pD>###HbGJ`!!DP1`p4}-YqbY%f`U<>1ro7zwb;I0bzT~ zEzUd^+-F>EKg?bqwGo22GfJjM*q{%F3K=1*Z^E_!8ccs!!(T0Xg*kN4At^!vE_u@I<)C$*O5vUS7^x*6EWS*i`%Y|1&|%Sa z=y!6Hhx{t#WFkNheyqWXze0UjL|Q?gjG8vp7Wk;%)pXL6u4(>C5om;5Qf!`lva`QT z2LghND%m1`H+#okPkp6U*7LBtV*hAM#3T{@CG*4ERFsTX(H8}WdJ1jENG2o>KnUut zcz4yZv7u1-zJ<}i-F@Da-JcqRV5^n-;>WsY$De(Pc~J?1O-hY*)jL6f6R|#bxgmca zy_%oa&c)ARrcr!9lXb{Z{=1|=ky>%WHhiMe(K2Y?=S`t z>b3>M@~x{!dJ7M_9q7o>9dn7DA?s%blA2V7xO}y|qZiN+W(HoR$S~mOEhkPrIPLCQ zkRrI=btH9+*pqOChNwRZ@V#?9Yo~XPd7jKmzD=Mh=6gL!{Iu&C*Ci5XL-!_!y8`S} z&|bJo-HW-Je(nduj~c?p#D9N32hI7p>MP-qhww;+6)lE|a_Y%OsRo0&(jUS)ieOQW znO|MgzzJX9oX!+5Zq;^gp-IK3SFO?(uArq?5#s7pGRk4!;$#N8zO9<79yAOu7?jJT z%DAY|KEKe_a8m6vD+zE-pwiEliL)3m)j80EIzbbuE)d9*2jRz?-CRT8P?Q3wsm{{X zC!C(1$4m!-Le1x3-NcWXdj^^HV2bpsC58l4+_^tP8voyv04u(6UfN9>QrB=iFHU=( z@c_V85^-Ck8+I8daw!h4^P9vj?im(EZXG|sKjJg&fZ~Rp9jrJUX&4R?y#Y@=cENslpKFYzhG~_r_$HmH&zWsbeLnG zV4kM~%Xi7uDQXjjWTrFdujs<}0aJ%~_W-NUgUc7*?KR%4qL|s|vws!}N5jXAQ((Ih zS??}5M^%sWF>i{(VwBRK4&N&?`7+7-a*O7>E6E!#PV@3S`;ZS(j+C=rf~Dq7A}#-Yf+T>I%PpD4W;%T+P&T`@FBQ%mx;i-xqLswi;Uq%Ru;dKs-v0Y$t6!cvcia_TBw=t21q(@U zB*)=joOsLi{volNR%F*fEj&lefC&K~OUb1G*{ALa%w-7|7h>|9UsJZLwP}}O)gDg1 z7;EJ zHe8k9yIp3zz4GDX<5jFmHTUMuHi0|OpuWdFDa|ZQ((B_Da5$!P8)86!LSPP}Qfsqg zJnhwN<%78lKBYN2)U&R{_j=Gs&zDqqy1HgPy=%rQv8yJWB}vVGW#!|-Tk!qLWi-K@ z+ESuv`<5E`5*wUm1S$>mv?d7whp^$dtlO9zcF)^4YV#y**HTma*!RA6TmEp+sLzvd z)X1gf5pU7gTg$g9`7qYU!7>wB!O5!Y*3xNZ=Pd7Yi(Tyv=0A~KFaYoGhw zdUylK#R0C1Yv>-u>VmnVO&-OH&??jW56T)oZ3wLj z*;9AR+~U%9{Pm~d&klk-hfC_$_YZb6&Z$f)X4o@4wu<9CI6CKvw&m9=By+Mu z^ra<0CYw4y?3@N2o6VX={4~7N33!N_q#4c)dmfTssAVp$f!L+6D3z-Ve7A@18$A77 zCQI7YGHTw$zpfD8l87JG%N=6O?SEILk|SnMS;|UNIG4Zq79Zk*QTacBbAsr%2qVRF zPfu&Qy?l^kQySHI5O|+nXGfhP^S7&pAIIrzR2Pnj#}~Tfl_92do=QELegkZQ=ig7mnL+Tt}E6F(x4iiwDqlQ%p_joL`FbRIVFr;q0c7vi*0)mb}qYWP@B zKy(jVVlR*~AhRQ73i#$?+XD#87Ck*kD@|wNV+3#OWmip{_<01Sz)vDNlaMf7s!PD` z2|+QWLNY&CQTDZg+;7&TmW9|a-v6DPv|KOW1!LLRF*RCogo3!=P&Qi1q0hrV0*CVf zNn-$xLu^I~FJ3i`2aojenDUXKZRSH6VTAy zs;GYLpm(Bxzxy+K72$%gP#OR8b23I8MRKH$TDCF)0O_ z+U5;3jd*ahQp0!)+u1>w7~E{A_?#!dkaNCo(C2uY&P%H-{)j}JK7TcnsDuaIW|a zh4*%MJJ$g?>xT=Wl^Sh#a+CyNmLq7}Nu0fP z8gnF^6pHg&2BH2;31Tyd^^!ko^^hLx68BncR#{aNtoJwpmDK9?c+ii-jIxr3n5aD^ zmn3o|z{#E=8de-nVBYRy{fH zNKU+hb%&_u?rSC_H@t?HckXOrZJge^W`E+wcfwx}%c*zYwiI=ONo@q_$)MTrHC;tL zb{Y}=fE!)j0sF~725s_gLD(Q5Jn3K$qBBxEMaI{p?qKGVRM6z@25|m9k*zZn{P>!A zNxTsz-=G_D$_@X(Mn-^Bgy^rDVM^w8RzqZd(|7S{PHa{=Dp0R(8~O{;1`M zqE*@Y^5OAm`GH8aIy0ttIGr0Q2pBqg9A;@WjX zHhEPebo z)#-*;adZJ*Az-gyX7H9r06)M^hyovLvxLcZj$m%slRdDkest5=<+g-IC1|7W{(Z|i zOzn*`XtdegK+;enuTZ0qu$Xt}WoGBv&^oIOc;}o|-&~hjSI36MBKF6s=Y&JuW~ITX zZd}i(X$jWK*&8`r7^i&JI2xT#ybUCY9^%T_SQ--N2|-+I>Hl<%kgmZ?(`W8Ah#VTV zdiYZ!UOof7sZOvaC}z*!Nq zFY)rjqkY2{L%a_*?*z+Ru>umR{H&_Ym9ozbfu!voU0`6xSSc0d?MI!d&{$Y^MmSBCj7}^s~haL zRaUYo`B?kOkDwIG#gVXA=OP7Av z@ARyM?W?d|{gD9J^c6$|Szob0S2I8HNA#|+Uo5mLG*s^x@>J;_y~m~AF|{ApIc#^f z(Myf)T3wKgzixZ)3WR+V{AA9U)}EKNG9Hg36NlKmaqzC=Jd3Czu*P(kuB;gAkeD~c%uF+$U%-k(aHsFZ~3UK01nc37Wd>q+O!>m&tvg^ z@O@coa~~x~-IXAVw0ni-Bg?rMq3VZ804sbC_~&W=TJ+yldq$-R5B_-~z865)28TOK zZDm}40N}+eZz?{}@Tk7xpU?Aqsz)&nw~=U)(@nfLd|$o=+#&sL4uqLLrhPd8grNQx zmBX@qu`3V#TR#QQZem*Q!AyM~k;#S}zratr233AM?ECPbE5h>E@Lb10M()(c`?cg| z>}s6)o?5q2$b&j)l~;@75e$aDCvp5n@j|hG0hd&%e+IWuv470_V1$@CQqf2=Ihi-! z&m(^maD{-}??=`@b1Rex7sVZXk+9Mv2=OZwkhG#;tRUo`3O2Jbo)hB5B&RnK(gN@? zV5PNj->4K8P|fHk={CxHJSgRVPUm;Y9!=|2j06GDqD-~-w7eC(o< zO~itO8tHMD@A2RV2oZEk8i8**k;VT@#SktU9^(9CUgYmC1$@D5(0@N1Iri^*{DSsR zjr3eT*Q;(C;~O*s8THx$ zwy(4|GvAgKL*nR2KGf*qmHJ1%xh6BL`hOyO%|Vv$94Dn2GTDbqIhkK+Nh)jpTc-JG z2=#gHNO~akO*M$QrG5*VtM;W}b^3!Bre^C?+4Y6h3g+`Nf5~(R^(}T0kMBJp`t}5g z_ZWxRtKZNt>%QWw{ZNB>kl`ZP))PYQKyC0xvZBgoMKLPNp@KcKf+yM=cceD%d{e>~ zx=t_v*SH(3arZ?E*fE_jUu@VjuyTX&c7CX(n55A^vTFY&48Is>VS)w-jB_?}>#WPE8KqftrgKPrhgN{S1}`)c$Agjr}6KY0Um)9NN5=n1@nV`9NL9NgI7 z!Y7u#7GQb<#|OdzA~5$cy8Hb35vZD}|H6M8-&rF43}@!L1CUi;pzl9*|Fr;s)MMu9pY&Vq{4Cn_V~l5;P}>3<$ArSEV+6+Nz7!PwX~#!=QNv zaCa_Msa%>q#kCIg?;%6p1%9I6KMqdPeWPn-j6e$;2pXe}?BvjTLLA#2m_-SjR2VHy zfOB#R488xML0!zCRZt(dJomRyz2oGW_JqIx=mhqK{!8AK@chs=$_^1a4pHrGW;MI+ zi7w&6Z&;JrBZo}0j;yQ0&W=7og=!3nGHgRGn%(bLW zT(1mBo8aFXG3yK%=K(T=vAn;9%5z)_qPq$u{#%(c^s0trXVPcfRgq;YQK?#lbbnxY zx^V6L-%_8O5~?Udn&e6=u*GLRX)#_pgtW+k4k@){|9gjSin<7?@@Q8{aj}z0ri7i= zW4hR1q5MC1LFL8lCJhrj?6s7$evOK^rbU_o2j0V}_}^j|3!gP5-mS2|chOjK{4?>@ zRQ#){xx|QsQb0(-lXi~^sWp5*B?-JAycR*Lh6KJgHzWS;X_sSrx#JtMiJ^R|wpAM# z^a)6IRu8K_n;M~Ac@amQ0&N4pHulj+QG``nJR?`jH z|1G$+l8tn@wJ1J4^heQQzUiO8#dpXa%Ry@zbpYG~ZOV2AE!3MA^^%KciY@BrA)hx;uuhji~6cu6Y&fqt@4Xt9Ym28L1gT2zvjSWB}C1RI;s+5*??d4U%u z*G;~^ug?W=-vRelwA=RM5#A*6QIcu!gGtA6KZ{DNAp*78@C1lS_FQP zm&R}3fM=P0)(GsCiy&u{f{uWUBtrRCqq3c0oc`qEIcSko(xv+emr$2K-yMZj)cZW> zv*=_>Ryqrlf%4yIpjlcofBx$L*iEf-Rny|K=Eq+es~t<-<>J*Kg#bxAG<~UrXQjj* z4H?!_vP@i{yZz*4uZ~b>8`^b-lBXsYSdq{9V;bE-q62QDYDFTj(}{ld$5#h`DodZu z+V;M@kI2;r4zzeXyjm;Jz>J0U3YO7s67z9I& zViq)f<(Yxg-1i}DEQshq3WEAsEahL>SU3hoRr(*}k>2dTcLRXZPmA*(F`RHuL=Ytt zuro-uDU+n34bG4xp>3Tr@-~s1eNB`2$m}}b^64&u(2K@{z(-#0a)@#dv)eHWp)@8x zZL4c;FT!CT2e(Y?XmSB1L-72W7e;{IL|Q$gla zzRKW!v!Gt8`#|{*G8B;Uf96wKj-r@o0ElLH;5}7`X~sGAut4i%~?pxRN zs!QYRVfM|b=?N>kaf#^ZH*Q@AB{unQBs+h(>o*TPqz9nL-WwU5X*iDzM#Rn6Q66=C z^s{H><4iU%TVXi15vjM=SfveAr+N6K4sk;elXSIZN2e8e32~?l_zy} zzqXi1J@}y@L*UTWy6`Y8M(ON44I)R?OBt)~&Z_k3m7nn&hi{KXzx3ws#F`(l(B5r$ zkts2dYcEaj)aEevJb4w!2g2Sn5Di05gL}8;{wrKomQ5ZiyO>#0$L-u+fe$xb>Nckl zFQY#S>RQYq-e{qGk8_a)jA22-g1JHe6PSC8V}J~Z9SYIihPp$ZHi{c%{Dotqr3Sxm zMArEGEV?`Sc^BDPa%&cwqVKjlSn*x%1g)Q?l{Ci4*hrzZ)5GsWy+Ah<2Cz{9 zYmyzeM2mZUi0Zh%nUDMl)z5tv0_Hwcb~)_sl}Y*TIUy11)74gwI}K`2|K%ytuRdfq zMYOIA#W(fiWcd7gdi<&KRf&}aczCbT7>#A;bQzLm8zFmE3A){i zJr&o5e#Dolpr|WnIm2+fgiyg_#K+jA?bWb49EcIVY+{CE#|Q|*tmtir_@k1h&Ko_| z1?8QKr$I`)hNn`IyQuPDyE*1~t$}1uVgD36AtQuw{O4&HHQLU$kaj+EzbIP)u zrtCsDecc_U)50}%qOF*`J&Ppo$wz7BzjAE;)f6$_i;Rz!6T#`zTs&WG6EYH*Ikw;3 zW+SfqVe91XPUx1UR&pa-s7o_DKa=XE-`d0vd{QOcATe|M2lS$E&Du`!MxVJy1GH=Q zO2Lz!#)CsmmMO9G;+iI1>%rnLvp7-3^`td>qfS}+EQW6^@ zbC5J0&1B=Xsxt7mVu&r`_e)WIe`$}u(wmga5R^o#SC99s=wf8T1E1Q8R%^&vcC`hl z91=TqL0oX&f<+jMfTr$__cprXl|MzM1ZkBEH}Y+R=Z{QT7ZV_Y|Xr_ zcL#;X1-1sAKNeae-Zd}6ua!m%SMI@80wiK8=jYaB_E?$XPOSu+)QNA-xXq`TY`hJ% zdQ=|tWEkn)c_hNmk+yfS?wCw0MlscSsx)NVc~nprtnWowb9mdJ^6h)pQrZe-K^V)= zbqW(K;R>cz%g6W*FRx>KyiYP9lljNU%-h--o|+L?D^5>7w_f0j-f1VhEFxv~CRYB= z1h6K6_f+6fIg-hKsK)WuPRsr9AM30Ij!%@k#g)w4S~nMlC;tpvdE+hTEk_S&m1G=t zUCfEcsCBQj9yT8%c06lg3=X|}eWw|(g_Slxl^z5-8Y>GHvm}r2{~F;4KQ3hMy@9yA z&vMubU-AACck&q4>3v(Pk9IIYaa@;j)Sj~Sx%6G)6K!y~Al=EtaqQM>rvj4CxI_hL zQk3Zfh)@Mf@)Sky7U9Zau#;DFmDv1rst(7Ay=uxkcd1YoJaGz8@<+*@*7Wzr_nz{8 zNucRaAbI!b50B;vab9APvZH-ymLL62CQ`U0llep{5y;&-th5F3(Zb%oz~{Ir{HGz1 z$QgW+XQN47^D-lOpCYoD&O)V1%CmB+9;HM5VA}JPw?_Oi9%f!;%O!%;JhhG?Sot+>PAw-Hf31f^u5V~E}wwxQ)W$=yB z>l?1O)z`5)zem`pZ&$%Kn+x9{0z1Xt;a3~62JU_F>QLG`&o&Z^_38j`e&YGJ1C4vD z6|gQ=Yx{mpKX9Bu9M0wUOh-Co5TbeOzOjcK6nSmkuR%^K0sSftPHdgPXq&;m4>XrT z2fLHfqxz$TUDa5tnaJRpbWKQZ?{=c|UbWk4bElGag>T^$cd=+gc@11Q&Sj$vwb_`Z zGO|32HST$RQesQ|civ-wx!>uw^~_5!_y|`cdD`v}Nm#*lL%RaJF$$eIEwR-Ea;tSp z_jm&NtPEnZIP_sz8%XDiqTaH)(j$qrBJ|5?dD=o#@uCo_CB_aU2Vwq=T5e{&8)Q({xqsZ0Ec7!}r zjX=Je&D)*(PEvFuULDCFCW~B*@WTU9SOT#{#UcGD{j({r;ZOu(Yoj6;D=gG?bNPi) zlzgKDm3{Ipg)sjG4kMjl0Z)T-n*(nb>t;7@`^!qJ`i=J7_ZnP9$Bzcs-ylLh<{U@4 zt51EkV^2k!Ni9u%$~mUA9kJ#sB9CwQ&@h>IiJAI*fE;}6KuTctToBZJm#o*{9xwRm zy=0vE@P^4m=Uoj-rlu~pk<+-w(>VV|T--H?uyQ%i_)rLochMyI1TzpRty5Cz6Ku(}-oBTKj#iGb?htEHe#YTuneX_@=7r z{+OQ0*U!)=|B;ef*8>#!TB^$0yX@M(F7ky-hmBv;eg9)`;)&heF|3wiL^6<9xS3YY zlKDJ9C|dhXXcpnuhooAA{(oH)c?K>|hzp3q#;%&QCngYgYS}E$$oOR917AOD&yimk z@>40Rm!2SeNTo(T%gaE`X6BVgzPj*Tka*}RFh<*v? zc=W~$(+JsRnY<_u=H^I?M7TmYr?vU;RVy12w^&lenmL5X9|Ma);5byJBDAU~<9qM|$av**&Z)n9K zPM~gTc#NiJ;-`Gn1ux~2KI}AFX7cwM z(3lx=1k#xwmE}S&MzVY%8zz>jEzP$lLQIRPH-fBin%mat4(S>-Zt0jT1tkrZE;n}O zV1b;sDPJemZ9{hocMsa!i}Jii1<&R_x+#i^>~6j-;e%yYb`JfnB{rN6)Dp{VnjkV7 zaf#UBmKAS`+1DgGxXvds2hfKo`h=Tf(mo34>56cb=O0y#MA3U-3@xS_cI$>GYX)}_ zju^zwUdGPe$78h}?3!oMi)|*2nW{TGOpKjDKt$Nv`@44WFbzIiHiC zHRXeZ!}{smD8J5aVKtJ8b(0VJ#?Es%qG8*{AIwcYAY1Tw(8`PE4|@5GVpRM)n5oV6 z;oRUap16ByHEmq7m!Ru%I6ulJ179L00!9L3!()MjY7QZm7Qdp;V7u1$E^mi%46jeB zaync^uUzbZYVb4Oof)=twel=~d}Su;x3E*%=j)2*#VC9k>w5Q{(I#PBmobi$;*4pS-SVcHq1Bl@Jem89cJ?k*-B%OfzUlSWhXR4A zojbg>4WibRzj~MS&UB`3iFHBc>fB*cU%3vShR8vKpN%x}h7f;72)2+R%(~8J4$?O5 z)^f)nV*0MzzOJ@nUu+96w%#9)eD<>`^<8}K*|PAXp^j+6^Sbz4WfEj>&BSk%31P_U zmrSlCwvEtgYIiCvu6p1sF;rY%+ue52Eful>`ur>IG3mk3E`zA6gU&-bjqy;*a%hN+ z7WChmXWF`0oOZs>ZiW(;r|+EBpcSVy#HOq9^mqL(-wy3R3#o{o>+q=?Z=#ax+7HM? zo%|Twx!}`<^yya#qV*uThI;dbf)>u3Ectg?zHHncyeKU(`zFU7Vn#VO(AI3-8kPF} z0vGu}C{eXlIqJ>8p&D-pwe+hhfoLn~|0T#*U8Pr(v!NU0}(a<~qJ``h#Eta-wsU|ul>rveM_7H5Fg{z*{t(c@3Zunl$!#@@n(xWpBJjMa{D;v8_#1Pik zQ*MHm`ajAmq`}tE*|xsZwjpPb%5`KJ?;Y`MOvT~CJSV-{P6V03OS7vx^#%93*j*jY zaM)82M4UzAEkH8p$2(BXw1U}u=d2N&Od^!PNI7&B>r8zMrP4IdD^q(=U0U5>_cF4{w4eQJI*p%l(et!hf2jrDac^ppOekp+s6Fw z)?fdgG=DL==3B0YdLH8dBt8N|g7zAc7<09qQ<65=2&*IG96H3UkZoY^NTS<*>Hg7y z{`82Ta6S9Q1q23EGn+n$&{x-9c`gdy=>Y`+Wff4+=a6=+tY~d&!_~!eDPpFo;pL&i zE1oCCH+NOZ(sZxT&Ks!Sp@YDIw``e;!6NqeA`N&{9EF~HYu)XvgFzN1@@RW;&_LAX z2FTI>w|TPMvMtn(*E=l3jK)(sp+pgJ0xQ(X&B#j1D<9grgc7Rs zCcXFGA>R*r&b{Zp_rB$i-}zO@!_Dq6_$z*2s^Na(GPU|($jm7)BnNzNQn}?cV zu2thqL<7;empTYs`-QnRn=)7+`;QKHfVTE%Cach{3=kZ>VGmgeXO`%&yj~npa@`YvisV?EIyG-08&z%_94P3xida)q5e1*K4c` z)p-?~@n)jYlp~$J9@_Fa`t9})ZE7zzQb)>oQ%BxK?Xx_8Ry$k>9bNB?>hE@S6fI1r z7Z$U@C+pyFVbFib`^EG?6~*de{+XE9dcC37(IaKKB7OTp$al*{gn`PLc-9!hfq|;Z z>00iDA)r`qa=iZO<1?MCG1_69L>S_*D0^{86?s0tpHT1M&E;vzXF+v};b}_9bmc(9 z55?gsYfw*ivYr{Ulv!_fQtVb=Qi|@p&~aC;?gEn=%~w^<>P8&A)%zkcsB_m|`4t(F zEc{RNQbjN}`5;Ei42DGWFF`!X_eVA*YptJ4yL3?`HK|Rz%JWSxt{km0*E?l#MB*H0 zA`Un5fYjo>fFTG<%VSqjSkm(}ook_Lu*eff85)yR#^`wp{1gT@TK3=yl{`#tEF>z~ z@1iR%W_4+^W#DIaS^rn)t#|S8y(qj-^Sb+?m~CAV^hq#3_Q}^o&u-b>XVXpBg^XlT z4WRiCq$z}!$am7JYp*>JZ{YY#?2@?b)z?@d;y2d>RzBF>&QAtvuIFTBE8iXPagQ6 zUP@GiqZ;gu(bnLlr`^E9JVQ)ug@?zDg$2c&f1_1LZx}$K=-2vc+jb5+PjZ>15uE#W z?^EZsPHVY%Td3#y^$opiQfc97wg3Bb`fr}N;@%_XZ|3z`U8*q4=m^(m;_!Jpaw5Y?FJ0yDdPuCYmRLXA0gz3 zw_t=xQGE?Dp4we7<|PW^eQ@9@sPzI<@5-A6{jct}(t-znDt?jdgOxQf6-T_%Ikb&~ z42@N0UsSHS&uW-H?`^9VS05hovggp&2r`saa61Sq$)abVl?XtgzLk_@<C z=*>631!a!ipbt;fFDaFDi0bHJ9aC}WekQY`(xfl?GsJP`?VIoUJ6D)n{^14@je*rp zz=utWoyO>$>5TpkKXc|(ylXdWjBI9-2M!Y(N?Y_{SC&srP7M`WA26T!Jk)1SC2;u2 z*R0^DFFM8+7I(EX_WEe-_0ZZ4877WKz5QqJ9tvQkwrL*_2a@~z&|`MN6AfwXVm3PBA9Je0$OwXs)$*=c>*%0Xn zu2Y+q7~G})Z_1JuL#-!qZ|glxlQ0f7W|m(?M?g{;e1Ew4<0123=0z@*2YES4ru&X$ z*MBOBLI4|S`wt3JKW$w;{>wxjoJC z%-*^_;9O&J+tDqKnbxAi%XDz<-A%F@F1w8>?>AnIB392oNZeKTpLusP`f=rhmoz*0 z*L5R@jYCj^29;s-`x7!AHKE+LFGlKdbE;AK;gBdRi^6`fv@5tb5-12QH zyaYqmS;4~gP#-(^4W1|?zQJ~u*N(K|!m-d)JGl5MX}Xe-0S?pQ9+#w2+7k-+ms71o z?;We#g;@M+wk8)_Z~4%_HCMg#Qo;$v-YQ8&Tb(8za)a-35?iM|4rFZf9EihH`k=&HzqFgX0e7-@)RwoA9xv-p_A){no}`+AIQn4%dBMwlU7v z^#Tx+u$0^!FvEW9vg)ql>>bXsJl4Bp7B}HlE6kAVnzT_zly~wrL3n>MX$mU|8S$zQ zmtM9Xgg8r53ZA{n%t4ls(L87u6GtF7pku=OZ%(%U!9aG7RLSmVa%`x<%+me5!H_p$*5Ly4h2?IoWl!sGXXFhYRXaYLhfpFO4@%cK zF3mww@>=^cY8)?gMca8$eOEO=aa_{%*e;ygnhYcv_k@glW>OJ~8PRE~%dt>Z8j?H6 zcMrC_0owe0y*N}*5p}iQ8*00AW6p$zD=LaDiFUhZEGNxxKf?svCFA@L3X?=Hk(vGY z2t9m-3vlJ^PXQ!r5=S~LW*tlbbvqjstM%B~g;FBf+;J@V1#OsA`2*5-{*dl`q8)pa zKHN+HUXkRDs5kt$uaqgwkFnA(bYLQJ5~I5>vOY+fAByMgJea~%R#-F=7dyfUNuHAw zP+Pw<-=VC-u|y~9TLEm!db|03!ZroZhZ9}CK>DrT54O0S3JrNNNHGV>vrrJabLYb! zr=WJ&iz|#haHyx(1?B?9BlLf89saC325;On{#J;9+vo9XI1X9|ft>x^#bhYnM~dgd zmKR;&YJPOPADkfr-ZiZ9Tu(F-uzKI{7=pmkp8;8>inZoXA$BImlV_&wN}a-<6ryJt zHpbouwrm$ow{0$m+;bq7k)jMaYM%DVYt7fEi0AT5t&WTCIlzydtp-XneB$j(=@0J2 zt7$}J8&1POatFBQ1OpLKmy2h*MWP^3;9*x?BQ!(9Dt{awQEA2$wItd5zdrH zpruS!SHydv`|%vCY)&uJQcJw4!))2@$Lj@W@VSdoqlTT^9aM$2XVG_}cJqy?*%&u)v>WkQS82$ad}iKbe;E~ucg#;;Rv;2cHGA-xmi?k_n>(v!7bkaYESz|_qA1Mi zVdKgk-_dJpg8}%n&Q4udxu)_=NiIs7w0k=@33LckU+D=$IdAItoPb*^>=yDTgU`d< zbwC6yGL7|4f6N2fG+?oW5Cm7ds~*M=zg}zf(53^JuG^cJY7yFBdIWB-?cAs`?Jm_Y%UA-88kNhxux zuz$mm?(TQ?O{(1 zG~clee3s9+pDjuAE>=2?HSx86{TH|MAp%XneMHw$q4lQjR}hPQMg8;HJ$H@CI4iLP zfDyo@JUcA%DWI-Yxt32vp>@IF;p&9jn{pCtcc7w=%@1vw)~5n3>r+80l6SZg&x*LI z3n4Y59t~upgwx)bs}$nE#$(0X6CH$hcAwlhh2qQQAzkn~)xJq_z^)D^A+|-{d7u?ycwyAy36BG3gQ!MC-H95dox~ zc1}(=Kmd(NSM))uB-{t!b~fhyUP7#@g14-l#|JUa-}tELAe6Xx2u@Gzdr!kYhP}yN z@BxeX^cysj>?CNwq9ldOEn>hV!68McG)FaPfKeUWHo;+5t=c99(PqSQ^?HlD{(z1{1~T9U?S@H zEkiH<6~ZfB?kX|OtvN?e@vPb{V9JIt3IrUKsMuM{L&WT@__9t=!eUKx8^iOsE<~)lL=}{&_lQEfs?|>fS7djP)2D$xXPK9Ib+Re1U#6R z(O}hP5q2>ac*!E+7yWs-@d26SkH3QkX*r|f&*4Q|Q0DsS4C3b2+~=KqI~&_B27LlgiaH=~(9&0roWd{%VYT%?w;)=o$#GOU&Zj zV*~-V+cU>+nk%uojAyl0@*gczro4f}suj4=i#E5I;8SKmGUw~#2!_;V*i|E|sbA~2 zRDvj8D|wvN&w|Wq?RR+aRJer~n6KXU>ks3FHQ%9H`QzRI#*+-p*OH*n7=lMEWG{4i zy;|)4=R~w2p42$V`%#tXg%Nx*QN7Ru&l0N>5jdq-bxe_bO#4862uK**by89aj zXoqMEHgonEKfFzA^N0K9I=pvru2h;r)I$=VrxB>KQG)spMvuvUz6~x-wEg4EtC(5RCk_WUJ1iEnGFIKXxDSR1~wGT@p$w!;#JTP zljs(aP4SK1Z}L$lGX>Edu)#+j+IL{gpD6Z*U}i)7dr75mGVag}R#~5`0EG=6Y`5a< zIIOt0&%3?)@t$>`cEtE;<)fb3^Ny|>i0aDfK;!J zLveOj=Nqe?mKy4$L??$F>xJ?;xPpbV2MYO{We&XXFzERIM29SMZ(l26fBN$Eu@u3wU|a^3Zbx z6G#T(m?NnRuwYPHK5^xaAV4t-xzkpV!X^*R9-+M*k&4g=b4Jn{r}*Dfrl`xWIRO-!<>{XD|aD@%@tUj0+$AYj0w*E-!46 zg8qDP!GUcollpv+J&og6{XRKvLoOWDv*67Zn?o%(^ggFI%MG?I}IRe5fkLq`Y086M#NkaH~YXv9?nLa0^z!v_Dvf@G{~W z<=J9Pu;jY6a~?`^_+%R}|8|yEIOone@&^o?XL+;s5-1v?;T1*Mkz?|mB@Y`Uc6T+F zoT5qR9wmF9c)MXG;UkVIe!TZxq}_qj6sgL^iee44Ym+>br1CL-Zz-(MYW-ao6vpTB zK2{X6PTI-N8uL3~Y~q!IwR&y0$P~JZJn{|D3v7zPec1txXu!VS`(Utb*Cu$_Md`!y z-f~(VNkQ9tXQC6zJ38nGpi@qFG|zixxa33zqr>6VAHosYdc6qQ6UCEvaHjoM?J43e zQXgkMW=p)Kphg5s3>Vgaa2;f0dswUUhJ{NA9%0`{#bfzPuUgSWv%IlHt&4 zIs5&`gWBHetHBIK_paZSWGoY}D$-!nhnM;1CjBhyMqgc{vLgK+1ISE&{fZyb2(d4xT2dZ{w(omUj>WL^m4-f zO0}V|zvJg3a6}@vN)zF6HAJurCnN67`8mu}4zU#A>x1px8wdbMwd`DlDro)=S3{!f z0enRY=LJ$d5YPBnEk{|8y{Ud5Tc2HkGdLG>sdc6%9N(Rt>r#_{@R4|Q2Iqn11=*QZ zah#QTU#(NFwC(<8qqkd>MHlR+fQ=`fKD(dM{84a=T+nK$CsL*<`OyXTUvP^3CHc|+ z3dfe~;X|LFFIDw+tZhV;<`y;CH1}0yZqvkIq3hwQ1N%5qd`lEvLopy)p=x(<9^#`W z;x_~BIw2n!MDsj{K(ZokgeZ6aWfgL5?m)Y;Tv=oCZh_1Xw=_MDkEZd1NZj6nGjV)7 zs84*rT^bNqFh+M{#znN;97noXfJP){esvnO^~hn1=+jf9Wl_A zkt3n#1yru8oJAn-Ai#udKZ790{%yYLdOxttm@KekSxYB6sV-;KK!hd#^gf(Y&7S>g z>8TdYdiDJe(Gz*KxDN8GatcCe&PwG)X4|vI>7!Kt5VxfB_ej5@~PM!pMRAbD63Tb-)_tT2f5&v8C%r#-iJiJF>Xb z!X71kw1<7VyIHxxOb7mtbxCdHJ2TS|3J>db25M%d2( zR!+Ue%?2k7%HuJm-hTF-B2sXZOJ`GxRACST|5ZXIi9AjfISLT%EhPsbYbB1LFI}PU{Se<%6mC*7 znYT-j?)Cp}rRYevbCB9}`y~{md`4FWOe}*OMM9T3W}NYzG%=G#y#6vV-pF z12ALmG`RZATJlXaw+rJqYLg30#T^G~$<2Ca?=;9eY18u0Km;n$59+x-Qq?(0noeQL z^@39Q@wYh;BX39istd9g0`5-VP}YApPzeD9NbK_kLfGnXw9{>`R(zZzq3nq=?uW8R{|d|smH#M@ ztZ;8s{1;$G{_;5PY&GC8d8^&2y!B6zRg-C_FQ(!T^SEZ1u9#rYt)fK+!y4|*EK;k&nxFPZAm2TfXJoAr^8mV?UWXSV`9Zk4Cw zsO1#>3Fstg)rotb7`#V4oo}`H)(Ax=zVl^J7=7pKu0T0me(3*x4CqsORM#f{sQjj` z#5Dx0R>XMx6SOkWbJhMWk)_{`8C<4+LG%>ehv#A3>{ z#$VJRSC_l+L_V3Qmo2_*GaMaO?}Ux66N)UTy{h9F`6kRkATI$-IKH<7-tt$ItS>u% zDP|rMJkI@A@2%j_butie`?QNX4c+2mr;Aq zbtJXXmWNck%~kwUAJsDTfLx0w0hxT9j&7h!FO_86vz+e^?k>F){IQG_Fw!4gzQvyf z$)T~KX!O-g(Xy?)UaWTv1B-Q0k@jv(8X1(l^l`Gfd%>_LGYylBMIFme@2mUr4)ssZ zAaRc+Ul!g@Y5Qgq6|l>c;J-s8t3iC$1>|spL}l%Su`j(etnqfuZ!pa;Ty+1?M1;cA z?ReMd_!^qU*`y)@!q6Ld*BQ69RLNs+7#;Z6@szFx>;Rd-S3^CU{EAMsA|l6aasJ)&J;xcn!g@eeR7-AU!QziQHn=P2H ztJ&CD5;4@Q6f3?K z2xOOqFc#z@=K(z%Tw@FV8inm(mkz>rV7kN?WVeW)o(WZ^F+f6K{MU?6WWJPj*^B^- zyCA3uUwIMG9n$cR3TR^rPHsx2L{LFbu@Q8G$C&!@_qQRyeT@tHRXr&L40>BhW4YxV zDdF6+-UaSq6QghdQka!uV0oOOhQZ`0S8oQXFvX15baH8t&)>DtK)tEn=Slr)mX(r3@)OqmZ;c;~m?=rR{IE(>8qJKDN&l0ndehw+ zAnlU$Lp}R5iXh3!;ri$fF>-fW!Ou?|<=YGFu066$VWs~o;+JY|EIz)0u+LcEcdxT+ zrt69>AFTbajr>N;;5eeUu)GWI%B~*|QP*vff9(SFpx9-5^vT&{K=?~92X3qdaMhXS zdh8SV!xfmk_rP|0tk@)yA2MzY0>qbmO$to<_t;}@Uh9s>-o&T=H6T$LbwelgO`rC4 zkCf>axuO;$+t)@sBW6sJE-$SAgPHlTZvbyaAM1b>(lG_aYX#SKuK2f&1qJ!wfw+{7q9*`jWe4}Kwsc*HIgA-M z8oUkVWIzXY`~nP!h>A&KyPX%9sC^YiMFj~p(0BV6e}gtH^U2zi31T}yB@caFQC(HA ztjwizSFx-BdxD2SRgH(*VlY(DO9(j9+_PEgstHJtZhSdDpJClOdfK zqeyq}S5*UB<}03)pj3Jynaft62}E7Te;>c($p_};E!I^{Jazx7Ft)fmJ+MZE_|;i` z%W|#7-?;32pD0IDsRqU*dUyHF3rxH@|XoQkuwe z{j4P-rYQUq=4N^catj>Qx;iQM6oj7mR9($9G-jd+H6APt7{3~&I%{f+kA2unx%e#{u$vG(|Ft<~*RY|Z^V zW*nAnv084AhFX((tJ)?73FNs?OZs_Zgr14!(`Uqo%7xIOgF!yfqy22jp@RrcbZ^paeW|NL2zw}I7zyuGS0c)n1_ z#3IGkZHflP)j`&z&-(oLuNtw@Gj2F4y#(%-K>^fJyOQ+tvBXSLU2Q<=rYRt71HQJF z-s>W(8Lo69&AYGNQh{xM1!n#kSP_^B;hfR^TFrAc`_@VBs`F9I4v+K+lm?ivYe4F^ z0pQXqwOcSKH5gSCvjdYpp`eL6kOXjPgZdxFMaVwGYBo2Jo+5nm>O|;-5t>zq;M$md z0oVoAS&P8E><;Yug^yY`x{Q`hOgzO1LjY%^6D*x&(!t|-Rfx|(jIA?J_Q#}4cizV7 z+=eJcP}mB_(+==+DhSp*sT|3mg<|E|Jc~DJ%7`nT6U<(nh~oWX)Emj_gdc={`K= z$gaDcF)5;?h!E;b+cV`C5rU}4Zn3zl$|RJBbRJdl90f8?wCS94n^C|w=ZoB-yH_~s+)Q9*)V{nR*Q)4PG&mXNB~^Fv4LB;K}*wb-bE%;}HZg#Ct0 zpOD%|7x+H5Qn;DyKe@t)!ezyg{UVvD)OzX5GV|O6n1fBAnK5iCo7A7IL37rmqO1|s|U9jf3@R{fPx%D2P zT*n9Jk6@qH&zqcxuYAbeBP$i^HHf(QbkH{M74#XClbT@E2~cNsH!Il2Zg+T5KHpJJ zBRxjY?!Z4*aFSueaBaRQ$1EWW-Sjd8y$9BuG*@eb1#pGW8k@@$qP)WT?`+6J_q`I@ z!uJ(U5^!W;HlVlsJcTq-acyC?BD@ln#`&IWXJb)!uxcnK{W*^PSqOI zq?mu{Gy2OFlmlwlAcENp{y~HVzqwN7*=O{F=^tBUT?;F@>6^RXYnjiiw&d%aa;8iR zxWDcL(sS7!i&?miW#0X0uPX{DOgoL@HO1maF(91Twbki&7PRx3+A(gVuuJqXLU9*ok$+Q(UCF#IQeD0CueP`RU;y5wvuGE`LvN!gh z?V7$%!O!+>$NT}%%z1wJG(gALeBcYxDrBvly;E1Ygjg~0k=<8? zB$IFM9l^?~yJ-We7FUNDn%4Vi#h3$q%BrBUwZ7tPHua1it61J<{WZMkKN}Jf-|Vb9 zy{B?_`twvqqB{DTOI5PQ{OrDWGRy#)Y~23mBa*XZzeT3x30|m(&J=l9Sw(P)DhfX;& zUH>p`O|!h3{B^D;Z7hFwz0Od`Fu0EGjL|I8A_?2w8gB+0+C*wyz8B4f1v6_hzoBHY z6+55^TuVS>a3Qy8H~sjz)^8^_6dcr-$}tiwutn|kJ94-wZ8}u}nxVnbu7Z-7oZ2nh zw9SH{OE27nd8dO6!Jhf74 zPr3k6uy=_B5jsH#F!^l?l;^64Z* zCcUZ;vgfu1KV&Eqa##lp1wq`!sAXHNi=Qqoae6l-cD^NsY8pK`V{h@yrlk2S!$WZK zdYAwHVKBmChN5d7i&1{XFiA^!dpcjUhEE$H1gZylT$V{y2f)7h#DxV!D)M$w-%rVAqBK+qU)ZD%tu{W{;{sHDq35~g*<&V zuhW7iIYA2R_rv$XzwI*jpEAOn@-a@W{g~1zfF;rCVbR*N&!;*ZqfeFshC~BmfK7!+ zoqPMhruUO2U;+Q83&OOZlj~v2vWrZ9=w$U}rTKQnABv=}@70bT7CiY802|nwWeB`j z@VyDDd7hZC#CLKhg-~X~F>h@z-JR5S|u%4`a$JtmL#=f^ADxRh_T{veL#K%^EzLz%8mcO6f1om>gwdQvUUK z4C$o5c(@MA@4`Yho7>F{-;O@19rCt?4YLWaW9I7`GbyxL;?^*S@jdlvP0% zV_X<$179CYW10n*YR0^K^RJiHjCYum4qu$~*QjrDlJS6Z>s%gndzM>0I9i@@h6Qhz zc|1}W>_5TR9(qSkjV`LQ$*KzQBE4N{OonRyWNA_*(y)2AsA-o`j2xlx2FlvQMDBeo z`iJGLuci9qz!X8{;r(WlpP2a^BS?PW1mYx~eie8ZV=u?9f^(G?Wmkc3a7fc#&zuqI z?{%w~qX6YK{$X0xASzfyGw;;=N0n1xbSD0aFMGb7dO=fFeD^O z#KU@|^aqfHJg;)FM@-xNA|7F2r7Lz;u#G=*>=!ZXubEMwu~(E)=a`b9#IDWKazl>s zdvDpGAq3@&9>fy=!xcwc24my7SMANB=#9fKwMi8riB8Y0HSUcRw&?di536N-T=S-C zhVi6|kxBk0SL3rvgNz!%k!@d`%i$3%fpMtQLBkf;J-}iB_uGkxodDl!iC@5Bb zi)dRV>g)YTic@fFCx`bBnZu@?R?7QfEWprF-&+%?xt_+5r20b z+;%TF!sf=p1#vRz(HuKH?~?-Ix&IM{&%#Sw94M1(lWqODw$GCqO5^Vz?f3IUqW8r2Q1aX@*+Yi*PN189 z63ce#Qi5fPmN7VNn@?Yldh(V=)h_A?<&ay-#RzQUo{fo_Zym{kIw`o>syz z7d)tYLpm}>S^-t2hJEBBBJB(s^*S``VdVcs1|@8bH~YL8Gd0&Ib86@thRnPMO!@#U`EaO0$0(5zDBFnoE6n^)n03uiX}L?woC&YIMtgJ!?>+7 zv-6p+K(zL0pEQ2cHY}B*gs1%Mci-xRg)1L2_s4#kZ)x8bB`?RM1FzpiAd*P^v z&LS-*AFjc3F84KzrtOL%(Vr@^-+3iSwy2JE85(e@t3>Wbd8J6+pAV#Har*HJD?^TC z%^$hpq+)*LPDe7Tn$T%Hh0s~%0(8AP_KQ0Bi_YE;h*118c)ZD%SR{58$1d{UApSYIMsro!L(aE)+SY zb9hV71F;L{ouQ8@z^#d%eE_g2e9p(|Cbc3kQz)nkUjWDy@@$I!R6hN>Ul0!{NKVpIR1Qa@Ilr&=FC64u-!Qy_i#=lWRa*BSEHz8K1WZfb}?Na@+UXk3DGCbl@CMW zlht46GImXmY2yn8k`tfYs+oDVqVQzvjI+?DJzW1Hk)Ew&2o5OO<|r&bWCd081}Nz> zC`gQ1QqMQ9eIWIu=?wfh-<|sBwKXJ) zpCyI{Yro}c?W8E6{%J1Qauz$vI_*Bd=>fMQfZ+>EyDq(%wP>K^FE663v)5+&KnKcg zbT;uEPdWBznOH%4teB#vm`6z=YO^F9nt6p#Sh}rQh<`}j&4J-VzF(ZEgYU*DA-R5? z)GVV^!->uA`AF#&y&=$SUl#JH6VU`Mw>AKG*i^sGlIG{;?aiU!*Q5zBzim|K z1f!^+dA26Xk7bk@P|hte#5?M0G{3Q~5o}|7fK@aO;{)xA9G0I^B3g0HW!?f262 z`vPBxuk=ft@i;>omsm#mvEtjb_leEOeY*9E0B5gcykS%}TjyY`=k%Fjp`3+VlnNU< zDoMnp-e1L_J3@tx!zhvDdrvj-rqBrKW8v+R4@@@r+RJ>@d&jfcpaHiSd;T$Bld`B9; zn)~CdER%`KxGcq2I=Y|uSn?A4LQlU75wB)_XLn1C*@!2ula`$7&cx2Y@*0+%AIv7y z2Yc=bpw|q(`ve5jJhT7s?q5JR*hmmXhcF-%FR{C9-{+Jm^TI zTZ#k{>>q};_&Mvg%5z4OUEUMa^mBZzqy3p&%u@U+sDb9WU@zzG+Wao1LMakZu!~yN z4|VAL95JM=lDie4tC%!m47LV*QF#G+>Me7}`LV2ZKhX?rP7_*I-NixmcR1D;k_@NEATmH{+I&DAk~wf42+lM zFL1O{6s@ZW)0Jg&`(4Dux!WR+`F3{8cCvR~Bq_;F_0v1%HCtVmTC2Wdy;|Sv66EWX zLAF#~U-m$Av~<8U@gsT&y9vDRYFZToND%1&2Sfu@boULdQH35^t-RvjBrgL133cfi zl?d^kFbcQVv|5UKf3y)duwYr8P%v?}Bm+bPx&G>CItK^v`Wey*G_xeKNLuPmym91dNd~HU7 z(!9S9%@oJ(MoX#OqS@n>>V_F0js|3?H(mujb>gUPJktH?Wpl-WKnnMmCe;Ym!KX{LC~7%M&y54!FGOgWH`(Ef{k zq)S^+U8ist@ZhFq3%3qI@Ns^yj0PeU)Qc0T_hqNr>s+_+Y*}Z~N2htgml_Dmr7#yy z+H2bKfh5%oQah(~AWh)=$y%2>y-#4CMhi>3c>$#Tu0g@uBy8z23*ey#`KD7|yHUXv zH#JBNLT-7GuIVJ>DhtfZ3Cv4;h-yPJMk({GZ4*Cd3@;82*2o(R6>B3PU^nto#T+Er zHrhk#%O=^rZzA#EC9w5Kw7<{LZA-U5iQ=zd?alA9&8=y#SQMiyk94i|?}GGjJvfvz=bh=480sj9DCe1}l>n&*-49(2J_C$W5;&!xiw1BB~xzs0I!D z?E5^JSbIF_Zu!M|`{8z0_bQc)Q{J*H@v0Qro=UIpz(ey97sYB1HKNi+9qkd;x(FRl zK$?r}-jJYu$=RH%)4|MwS&c#A5HTx0gJ&4^krF&_d*)0b*17#mSMF?iv{xJ|BUINj zwpZYJN^O5BSm<8kSxLUdVQcr}^jM7iRgLmMG3V??VUG$0|6qiE<3oCGpIe4SGk8P^ zjUU*YT=0`Lg(pKBQKj|OPcF3w*4(7Ds>dXq>Z0l!n&bK zbUJ~r`y98)uIo%U*Jdx~uu(!X!ZC*;flhs(cr`$H@uR3LxzAORafU?gCanYhB|>gN z*LsGg?Ns;lGB9AM51x}Ne@^K5=G`Xh*%jr%?Y8-E&$f(o=K6(vh)BNoef7m+U^hy6 ziHoml)c2Q5^xs`qTZCiIh3y5dA`U<4N_uM_pMP^ixw%&5Ak-D?;q6B@3RUU~9`d`F z)J%`~tmOS3FrjlX4X&b(ODv;Z#UXGv>rmshYN%{AWFc3I_ETru{N8S*8$TmO$UjWW z;LiB@y`@S755X_fs)9TC`-ztO*PS_)%`X);>WE0g$7uBi0%((qYt=ibm?|{M1m4*) zTjo$H3B^z*i2mFhziAcAeWUb3MojubCUXsHaSuI^%?pojDHO*}g${V}xhR0oExb<_ zDOPV-SH6HU-htz`%-*oBegVC)tTZS(>wAE2Mlw(4w9>ff<9It+_ypRtd`A$z!}F@U za9#HS`D>*_i4Eu$4!ovmw!o^A?zf3vn>z5x^s}yd3@x|~r)!$^x2pVi^EwL1Xm++d zYxJ)6T~piw!Ot6KJ*+Azp#L;4NH8O(4jA=`E4SX(Di1iP3Od8j8XwIBWmo@jT>NLS zj(p{o3h-ug@Nqz0&H(8vXN@a`HZblZR9_5r9(~mm;BunI#O((!WmPebftT5>AR61T1!|`@yqF7ow(^^?BXj~$ep3o z*p4WU|El>|sxWkwkhNAQLkZf6x|g9(Sdw>RSiT_+M_CTUlpaDcZbauUt-Szj5hyES zbkb_8+@jC*(myP_D8yjXSd7*`)Imt7{Jm#3=%CvUKcggX4h%QN-#m!S1v?-Vn@BVyAyS+9#~-Etjx|@K3z$MW=#XCKUCVRhE`P z78&Y#I*j;dc7+>AQfEBpK|%fVn`X&goA-;{=L)w%>XkQ(Uiy(fDQ1a99bu0OVocCz z|06(SY zK&z+m8QW%}SFNqpGlAFnd;uUtE+2)3*bVEBfF%Kvg6V;CG^yP-1R6`LqF(*bd zwf5*uym&92`^;wlqm#0ENzF8|W&7Q(q_bZ)&7(_EaJ7siTHlHwQ5_Tj8`q_aCdHp!mZV!7OR-!w-$N0*6BXgsI{^bHR$K4Y5nc+(4>kja06t4+ zy_-N3Qn9xic!=n6*gTYAiiD>s+}b)T0g`N0JjLb6O0cz76DYuaV*Xw|?{19sEl_BTTG=P{B&`7h6V;%S9uPDSY8gx!y}Rd zh7iwTATe3Xj$R~*G~hQqyXhx}>P3d!S3}82oEkrc+^LihlRfsbx(JgD%MvC@Uxqa)b*Iu*!AAs!PwW?_6tD zM5oD#Z#fbwst%jPqkRN#Mp6(5hn+Viei%xqmBMZoitN1H@1F9kI}^CZ^TJhGfalnMi(;)5FT1wVw8`@a^`XypyyR({Q!z2b z2NLJv<|QKNs!OE#db+_RCNQj4nWLL{tn=ksgZJHc<*$7h`n3btM<3$@X7>-fo%uNe zyuEYdCo*{cB@%H7w4l_hWI25z@^-dd!TY65^SVr;0-0Fatw?eN?+%v3qE^;KE1$)o z60ar!XM|Neu5fkk#T~u0`%Ah*=Cy^BT9ctuVRa_=7C?V6axTc$EQ(za zcyQIL=W(LVYIH;JNu&T~?YBKY6^vYT7^m9x+EZW3wQ3J^qy)(JjC0JCw=5EW79Www zfGp|apP8F{WqlHlU5!#4U%O)UhiOupF#*y2 z(O9nl{t;cNw1XxnV#qHU!_-%JReSJyP5MJ&#c)J1o5;mgg{uvpDlbZc3z$sGZ&jOh z`aOtiv=QII%7<)H`~PlUY;#!5!C0!@_cU-L-!RQ=cMe%FT?!v|nq^+8bU2z{6h7!} z`Ht^m@#<1o)|d(FNH}bzrNQ87$&!Ym4Z5@WjA8@zm3L9Z8Z_+sT|=SUJYriaYG$JB zY)W6g+dvhqL7vPQB2$Q;=h^34tLp4l%`XTHj5eOs2Rr_50RdE%N|OB`IjJ)i$5Pp8 zi%}pSHAeMk4#7hkyO|yj#^|@vpC@$Y9AYZTs4d|CFt^~c9_9%Z4Kag3_U$Y zZT$3%Sx3o%rh>iw9ACaTc@NDpt77cl^OUbXTszCvbQg>RHJ-%ileQV2>Y90)I>d6X7!RjE+}($REOJvIN*{b096_)w#~nDMTMUTww%kKwpf@B=6CV7 zd1cT2t(sAWJN#J0Lo3gvM>Nk^0I6CQ;7~kH!=%hjtXGUzQ_%h`Kx2`9h|RH+Q8ZR` z@8zk}G=GELE?ZCaV_(4pJ{<^G8hA!wvxxaPm@?AWLe@Vpvmiew;AOaQxPjiB0b(0z z@~Kt?QFUm?viFhqQNqboGnFs0(>P%inJ02pEU=`rhz(>aw|5|{v&Pb5>TW&Ajd zxth)DbZ%scip&EjsnF{(&-7C!wJTm$x?wl^9Gp7oothUfI}BV0nR&KuARp81&F2}e z!wDKLRbw<26Pa`?qT9|ork&7lC*`J{Tgufw+6+~*ypD^Kp^F~R(q6_q6kL5r+Sb~B z@95o>hO-o`)CI^78LapM<$6Mc%Q-MnL7m`$eCyPMRJdDJ?k8kp;ZtG_DZ+#oP1On6 z5I79BDHw=t8@%p8(!zvo2wH321172R=3C9&6hKU32%GSWZ84Un--0@#1Z}rCa5+D{ z5qvhEd~c*4VYD2O>!_cMC&H(d(CKX*6iI9RRcDX((r1FH%{wsC8vj9hE(R)|SUbNxv@&o3BMHb5Z2&qSIxkk(?E?(5`YY;pw zTU|$Z_cg^7vBV-aslOO6v1G~rS4QUbg#sD5Y2{JknKD{^&T!1fyM0HV7qhz!bNoUzZ#8;6dVz?l8zL15sR`RTVCN}enUI|J# zY?TG*ko9N1E@mKCT00kpM7V2B1Aj%ca1mZ&cj3tQJo>$9|5Hc{ig&>yVZTw|YzW0Ua--O}|&o3!D5QJjhE;&4^M57~0R)9z8fK`D_PghTu z0s4?(JOld{JKhJuo(HdLpLwMA3HZQI487&ZQ;Bic{jmg1f2wR1crjD;fu^hMt@ipU z4vz-RTga0*1Q|{g7*1pvG|h+uSN)|SEvbn=h?A}bl*B>Ga3acZB6RI^OCdfmBo0Kp zhEBFMuGR-?jnZw#1thaeLmu6Nv}E$?1;}o{l)DxoIaLkfmnPSO`h(alh?uS7lSeZk zc=#sz?AH2MR{DchKqEl(t*kh2K>!(Hi<=YyXm5BuruQvPtPu1cPVO3LFC?^p(4wT>Lrz}^5jES%75ze796{HmX~oOO>Yaklxx_rOfH`X3{Y3S1q_(Xq>$}ryYolT_cG9Qp z_O!H%(+baJ-{x%3Mn%|Sk$>))v|JHR_Jr@KdGkg^u|VbTaQwdzh+}n?mi%C92kWTO z;q;Ytb!&T8{#sIMt?KlXMFObPUXHQ0irapN72l}x6?&$pof)LIP9+QNo4&SotkpH7Gn)9|4&SH} zT|*XCimf8c`36;4?xBp7s0emm?zNQ_bq@M*9(tn%pW}Gu+hgkc7OdnH_{jwh1YyeL zhK`W}3ac+>v$DipDoO7|;0%uY8k;wlRUjs>1Dz{LL!$o96>Lo^3T_hT82?Ump?`VY zxH73eQI;u;?fgi-BtlpN=orUp+?UV1IibQ{4c$(xy5wTe7x~jhG^_9HvN{)#)`RgK z$9yNun$0T^73%xy|KPOqaf;yo8Qov`--m9w7Wiilq)g}1=UzujwRNV#gcEuXQZ z7HIsEwAZjgSB$M1I<7NIX>9{+0!6Iq@xgKB70C}@tr}gGLUZZWnP(cd&C#00PsuF0 zfz8|hOdjt9y-R47qkoDV%B| z9VbKTEIPD!4YZUk>x8AQb=pi;ahu-sazjQ-iq9H;fBnL)re z5=dp*8d|;}F=hQ2QXRp|`;pIL^cSsDS5};#XiEdB4&&97q$*4gwZ??r#ayby=mW_D zJ8E7T&#SLCrCR*vCj^Kv^;1HUKf}Ms7_`AMXK}$AwTT? zt~Q=%j+brM5UdRa+L^QlP8Uz}CW=!Hq+JsQl?&8U#ohlR8Y%$7nh?Stbj=9`QdN$1 z3?P7pI@65PkTm(;@yUtC?pjE(^0_xJT9oRfCve`lb+2sUbaEeMaprN&d8QCh>Hi1L z1KBvT1DeVAD71rOhJvF;jm69PUKR2s3Q;|(f7tSW5A(9EJHBtf1UK5PSbvYW65Ikk zgMc5ovpw;I6>FI$pN|9>JndXFS`6w5Fi|jY39D`V&tZYn&#(jRI?gRb}ae zWpIg@2Ok=<0B02Z&3K~yQN7P|Ra>OFm!Q0rd|=rSn)1AzTpMyj%&ZJ{A<@>JCHyXi zZrojeW}??~NqmXbcG>x!HHsO~Pv0KHde z+jH|dwO5&W*oWHnli0^mAiK2h^#p9he!Xo7&ga!Kcm7mkd2nMsHMd<;t6^Gv?=qb# zKE0y|-$*|WwMQ1oE~j*b*BF@p?r|f3ppwcO)L~b3);W~CB3iN~`rftZ;Jij2yzt3> z3~T4=GJDgMFr@MojJzW|ExgA=-#UdH_;a)J>19zBUzAraZmU~HffQE|8uNrKVYb%N zYBr7q{CbkKp-(##9V7);4b+?*3xpO3LWIAdeiMsySTmh0cs#s`fm0a??0ne`J+fdlDi4Rnet#K}EvXP3hMMF!}z^N93F~RMC zvqrViOvTT+P+Tl$%*YpRWcc9XppOI!S|bY+TNfY7f8#0kvO?*re=k=$b2AZC(4Br& zN;RBuu&)6vgj!C>IIkYKGg=Flthe~X zhXpD((6tVS_Y92%w`GDfIv2)msvXcpjWRaHM)?-fL6D7NR+`F8gX#XFq-VmwySqbd z{6oRpYZI1<0dN}P)-2$%G=>-AZK{o^3n_wV*8jY`s}07)>z~#RyBSHuL?N;EVA;lg z{~1q9zqT4L?N6TZSQ_ayWGu9cwm$XJ zkes7N@rN}~b$W*Ch-dUnx^@nB<=D5Djl}M+mF3dKx-RWI={1C;-Rm`8Qt%8q6pEZr zLldqzF~Y>pX?phl4=IdScuhLfVfCdGXt|%vVMcVb+CyvG;yn}HN{s-S&|r{jbPUxq zn-7==N=$T;D`lL|c5E_$S(*llDG|J+v~W9XOq7CLB0p$NCooq%<|L?GEaUQ_Dbc&S zT|W#$Au#Puo*bmspI7VE2<_LCA*ABND56~VE<=*TTLG4`^-huuA+GWELdS+Ves*tf zUT2D8%@TT0Y@Wo`X6L>POLklM6!s?h6l*b9+<82KI%!a}i0jaYDq+#gb2WD-w#iXO zv%ji^UbxD$uIiA=GeIO4$f-4Dpzr=hV`NX`&Xp+fi#%wOhgV-m+t6WQ;aNQlDw6<%DYO-jbinx_X zce@(*#xRM`tieS97z?z@Cc-y^(b`0?*yHY(6mRs+Wrp3C z8&X95=Yn@>z9bHjB@kM^$(sV-qV^@E@x`2-emtqSpV%7FDw1}(j0x^zPgo&JF6;EF z={m0UnAkeeDw=kJ8H?bGTB{JK6H}`h?Jjxk?<@iP6tzO*mqi=5i@hn+~&MTeZ0p4oXE^S=zrGz%6}wC7=-HrgeHs%a0R- z7;rpeV`s^+g(%Cf*dFOB8Nw|=-{se9O!P6 z&uiX$O1RVBxz{y~Vw-#Gbm?d!XBpC6uEhqX;VfN56rA=m1_$%t9-cG?$874F1!=UvbZ!km=vV)^5yC+wHhXhc{LoucK<@T(u)t$7yb0?3|cc6r^2W);O(x<%PBKPk?P!8wid?FNA6%#QDSHcP)#D?6o8u-X7Oo6`{3 zyqu#?atZRR%r7pjvQH@A;x(Osj1*31XjQ$d13IT?mQi`@makM-$ef|2^0uz<%Ly3d z{7ZAxdbm^jYRVy?e4aU@%#Ta84N$jkZ%lUsMg0nZaRiDsVpW*z)m6LGf!%@P#n5_> zYNQ{-Vc*@kt}8hVEi^1o#8>FHSBuAug#GO%d{yKI)kea`LkqD`%$iR1k6qg4%ho*r z#I42~u$-cf)vS@7#?3p4VAEzERciuLO+TCok__8}R~NXv%QhMLS%&>Qs>TH4YIWmk zitSDO3Gq)J6x)_;@;=Ad0(C?ykgsWa9+`VN3?H^DZIGuMM)0V9Bp_Audo!;4->H~Q z-gsdAEvUm)?c+`nn>xnY(n9lkShvtc`DYLIM(2pE3*#5Sg#VE+481^5_-qT>EC`%! z@UWdJo24R)Yk;h7e@MtEwY&X{wF9!7tqDD4`WaI^KnX3w{de^?TaD@~3-Z>Df?8GN zyFqxf5^~TZ(Jy8*jx*f^F+G{(6tk)l&!#-DKvqqt4QJ)l$Lb67n}H|t=h?Y*6FK*$ z$GLTv)hLO~^U;QR^1H`6)GayUyT@M62AV4cS9F!*K5$H6W922bgeTca%I2!{&UQ|j z2KG3)HA9D$79@&llrAh~3y&OQ^?0pxaN5!!a$1Ls8fVm#F6Hux ziJE)C{UGosaT%Vr58}a1X>SlikE~7Z@t5DCR=-KedLxL`=Wnzsl{%DwwH-HFA6vS_ zC-X;>qJ{1=-eM9e)z1WX5el(a?fCruF+HZP9`~l2M$EjcaihU>5;TIz8q$RaDpjo1 z^*#jWqj7c|o4U@0tcWC8jp;hFEgGQ?ZPw}zvY^c41C1uvn1ezHtQuZsw!u?;OsOhG zz>amRX{RyseH z+NJp;jnk5;9DZzpLWDIOeuSaZ1XXpK%;c$DomzjCabFT?w~!yLGID+9jZfdBUYdUo zlIIjtb=dcr*T)D>)jJ}M?r)17)hOP6I*QRS5GIXpFE8U&G`87g8Aw{3dG-$ovNLY! z8mk8;p{Rrdme2F}_0-|WQhcZUcsV8o>#0+R z>t*7c5QVW-;{)mjYxLZsa4qT_kmMyxQ5L^7KG*?xN~mJvznT5JXO^UW6vuH{S~kH- zl55+Cxm?M5g#e;L`X4xwFA01bkmXuCUsCXo)l%?<)5|!k=UOB~8|7<>&AJTxkRUiK zg{KEXG0)g+xfV578>`?!t)%ccF9TI4TJqr7)%vx_;;mYa5e?$qF0MZqian<Uupd8ce%N;z5lrINF z!E{W^7YH9TwoAuNu!qzf5!i!%Q$Q;{E5q~ECK34jDT=uCYN65_2@Q3eCLd0X@ml@u zFxakQP(Y8+ojm;q$7g~)6OE+;89$=Bx%ReaoCNeTet4t0E!?pj|E5M|H8Tb4M!hM< z%;9ktF&{U|W6EXB8K1(v-d)Cwd6~9XlrO4(-yyOTY34*4>|Y{s?u+6Mj%B74xcUhz zc%_;pi!{DIkj^i2U=;O=CV`a;Y6LB=`K5b;@hiNn9babFDz?Iny0`H0D{!>MWTE5G zH`6WOAwElFq!4`VLSV$GMc+~ntE%aej+Y?BD9gSgn$!+o5Lim0G34V=G;do6xnO;h4uKs&`DuAsPR+h#`=+AADDHX^=4J~x|nF*WBTKsf$| z7@LKo>BfJA7uqq)Yqc3R!_LjRYi1b^?_IqH1K#fG%oE&cJgReUJi-mM63iaiE<4&I zT4n1WAGj(sClmb<_0UZ}_=O|RULD)(3y^uXgwx}iU5P`jQ%;~}*JI1cKQyK`xH&n2=3r+={<7kHl-hjzNI6 zl_h1r#z<20-&9uJ)tyDfJxVhpE!-X7zh414OXXd+@EhQDSD>=5yxMde_7jqj!!@y_ zc?uNY9Mo)j2p#|6y^7lp8JYM^T_4r)Tf2`30>-t zG;PPD#`ic;#%6D0L@pNsj9Jl+3suq(o;TVKPdnOkU}-Wy%El#ugClZ+Oj!Yf8t|m1 zX5>;BR1jevu-oeOAp;&lfTS6nvmFUqpc*L$y*X>iJ^WgS+QU{VWcL;`VPF_UVNyb8 zZ88dY`~vQuSt|%0AD(_b6Q;p(;Qlc89x??7!?OwT^8fG;{V&Di@%>T}Y;;_<7uz`b zz^E9=V0ZabO0bTQhI%F#ocpU}9D$zYgK#rI45QTB)8l2{3uUcKok`?8y9NLFd8$NA zXYR8w&twX{RR&G^Q6@MfxO<(O)!gCD574NjY3F)5$WF~%ef(!T6VXSgp5+?Ay#u7O zKN90nl1igd;#M*id6cC%$^_>zv=lrxxXn@_=(%~?SaRBNu=_x;VG%F9TUF~=+*OGV zEqEAGC~WXZ3s#^E>>f!L&z`LIJT3%RKIak+l!~2WT$^RFk^KA&mXALCGNt2@c8(bH zMCG${(No1mNv?p4-Gi{; z=BFZ9h<6OlWwBdSBc}NRk|xqF#H)(v9J5Zbxkt2i`kqa@iSp*t!$6K#qZN1{rv~YO zTa>SE66pCjw%2&p!IK}X8sFL}W6p~bI}Xcw=X{gv=!0|e!zY8*L} z2)Cq={lhP==aTj4#|{Y*Zs(Gkn0pi5x2}3M$cU(;(%`LIAN>L8efFI>1k-H$xq61K z*1O9=Xvha_eRWg$NDHDUha2;)dF7*Z4YB6#%^0EP6}ew(r|W!4hm${AX#9-ut0Q!U z=HWSERk{JeuJud7aYPvT{Z7i6dvuF2!72+O15PYOG`;4Xhf^i>jx0qB(LEZ8@VFigJO8||uUZ>)Z5)#LoBPgBO z8!r2=1n>uY3=0k7wp3RIqie$crapF_yC=NoB{;CIIwcrg8J1aK01P<)yZXYlb7VZt zH4HdDmju*%Z}+^Adcl5mJu~Zd>i>$qm2nEIEjiHbn*zui8#K}yKyXR90}BLDC4XjpNuYn8^&brRQvIKoaw`w$QFKv1wENd-Qm?NB=<((c zp`Rg-o96E6?)~M0IT)#N16ot9$w>(PTJ#k7@7xZ0x$rMCOxI1axZ&}SxqB9SwK+hi~Hf;s`tbXM~rtLuL`dc2{~9TR)Krrn$=?C*dJ1%`))RR(JxQoOw=1 zNKo_1RP|SMC;UXq`EfW_zK7H__7v^ViFYN4up6gbBy|T1LPY%)-^A_3KON;F)^FMV z&B6bK>@SVhutbQ~&x3;IGLMB*e;O_?2F2<>42~RmC)0&+Dh*=0dIG6($X{NTZEQ-~ zp?&W_5VvsZ0w}*Usq(pjkA8KuwJU6~#rcOQ~K`CO3O%XVm(ieUWv~f<-?M0d+2h1geT8s~B6`1UU zKcJoy^n82q7mM{#8^$2VB^ zOiRjnAJ-FP%w8DH#I>YPc5>H~cG18*l@R+eyGR?EIeC_r&B2YrPYSe)!EjM*kC^El z(2^Q4Bv}Ii5+gcjrgBLRI@6s%Wd)rr;y?v6lC`12RNrh2&=~;n$nWqjUHz9eiYky8 zY@$7FK5*)xNE@9T&`v8d0_agWXogM1nLxKf*)o6@P2EQ3wBjNNyosBJ8MhNv|50GS zpf6e5@nW;3S)L5YM9pH;tVe1n(I}F!Nt_qfX0o~SbL;`eTodJ5Er+Qo{^ z)YL~XhuD(CW(#E3F|6qCa5Hv$ak+KJcx=|A)s{U!*GbK@_J*8}`vXjR>?^ZTDxr~b zE7;kbP$m|3a5z}Hby`@qdIGzBOIEtoPkBq7GC51hX?$cKA>tE9+j4@ftsJztcalv+ zJS&Eg{ob>37O;e8*+l5h9xir9rFgy+GF3}1zTh!&t}nt86H8`Jk{NuCnDsu;;BIHQ zry-uF6gvwKvQ?k4Ym-N2js%KHX?m5`Q#1MCPPBw#F*Y zP6&5-eAQvcw;8_h{JHRfe5XgZ_;zY z5p;G>V(Q7{b%9H$C(}Th))o`-+I(PhVc%^BHvXIjHdJ0xGcop~j!l!j1Mxi>TsdrK z1o@l)K4U;fB9WAiolfw)lE5QAg`rv%n6UxyQhQYyl`sE*I^F~4({FaSpU-~3UC92oftaN($KrRsb1|gsiozp zGC|o0SS!|7x{l@(wvD|vx6}umSl8;JkF>^B0m58hz9Mn&pIq;G;fnip9Ac~VuoisM zu=~5PHF#^stZYy-*dG-qq?L~@RQBv-f*C~3m-OtZt~fytg}~=D`RK5pbSvfdFOH@4 z7xBM~yBcNi12)Rs$=dNhlC)$<6dT}V44RQA8XPSGWsCgKBXX?9u6=aMuKjjmosA0E z4|5wRj9}43$oDcRA$4nPGmdHQkj65&(Cvgx`?RU^Qv9(?T5FH>=DxB08JA$lcS0|T zAhGn;l;MTJ^f>niO|3-?KK9fH)Ia{h;a zd|N@AIi5b|8mS&`8yf-}YkF@cf+?MrsCg%0dd$ez{UzZeb7KFsd$-7{b6I)H;npgCyfiTDk{WqJz0H$^7~BrC5JI5Gch-6hKzwp-|r+U26N za7B^8Z35mykl1rQM}>p@{f5fW2wx8t>GU|kI4pU_U z+wcVgg!h{Mi%DEzvVU4lcF(VaVZVI8tbNT8*o9nEdyaf+vX5}usg_uSl?z*kj)%ng zB9?GOHof1k4y@X}tMr>Ro+Hx8RqV?|SJKG$74A4Q;@02C*8YSg-{#Gr-$eWz@riu@ z^&RI&xWf0almGaCq=AcIKztBhEoP~TZ ztFhB*I0y+Y6;HaGaQnSIICWD(%)foSq*=#j=TNkx*Z|K z1mQbs#EAEoH77#Cj>Ox2{iPyCQ?y4~)+hq~UN7m#A2FdlVq2g+VTC@k95NpK1e54+yVXO=Vy;5K|bjkENpzqB8GXLTc4t!@cWIpl8tA``5 zlS2&;K2SGTaOc~z){g)&1&g~_ZEAL1nMdb7{rZ{V#5OC;UaNlik246H49qBzX|3)8 zyn(-=(ccJvUNO(*@byYxML;OBb8O26wG8~WzoL*-FXpK(*KIx>5>V)$w?J)@rCGs|qHLhWi`x z=>0#aN9y4G;w-b&{50s&p6Bc%ewv7f}7qa?7ff{+l1m7dX_4@f2gY!Gn-ZGMWxrA3oGBs`;=%t z)4v8K9P3$2dlqc!V|Q3Rr>C*wwZax7KY9++M=qdcknL3DF1nOBXKB#7sPS2;Ez2l} zs-9X6!`XtVyXpXz?t;~vm|-**5752t@2@D4)11rEy#CR5YMzQ)nu?orf6)K}e@W?v z{WonE$SqdLt%8e3tzxk{ANdt>`)}s=_b_QrNvcmtj>x*EZ5`>G(wY90cVsI8mYpcX z4X6`JrZ3K#(SgZ9C1qK3q($`W?v&8wcXg8^6TKso4MMmd=-}o_ONC2$u}itGCz}N= zD3AJAJvLg=t-7O3^ zxIjnp@SK7y94@=&K20x&iuv|4h{oG0v)Z(7rcvAGa!n3aGMU~0#<75%Oh9k|E>ZJ` zw)!vOct}gq=0k8Gl+DkYE5cq@;BUs#V>q+I*4l z&%r#6VnTV=^DW{_P@tDTWn4!q$GSv&WM99cp}hF-g4yh)AWP`s6J~~dLRQA-rP_P5 zTkx=w-`=9U*mjWWd&!mO!Ip2j?$^C+ z292T8A>nG0S}RV+Sre*Lqi&U`J<#eBzXj5Oj1hoVQmkFCFw5RvG2wMG^mUjw$&Do=(*qXnOAMNc9K~JTz>gL zNX=tnyQwEZ<*io~S`AbQY*5;~-Fl8w=9h3d_K{PDuywf@R_k=tYVe!J<$p*)tCG)I%LqqH$!Z`C*ngz zXZ2rp{JMK|N|fX|nmgebmDWBYm9@b@Jkdf&n~LCkEzO-pGcuLB>Zx`(+cjnW#o0r7 z(a&}1I|Kv~GMRokO*rK^ROweqQ@%rP8WyqYg~a*fXGgP>YSw9DA0h!#7Rs4=2`9{R zRH*RFqxk^v|D;Z&2jjAh{QsT)-$VkGP9CY_3K23QU0%R0xP^vfH`N*xfXduqvP-27 zc`hkL0+B3zO(Naad4KEs$4`vWIr+~qX&*n`mG)PC)OP=2^dGSLz5_az=vyVPsm;jo z(h)f+5Agio{{H&LdzI&&LqWi@5WLs3w>@>)`8SPuj>NgdxR0>8#5n%{gQbCenbTu7 zTIgw>8jTl{)h8Gp&hrhMOMv5By3yhJm*vw|q8aOAqFJs?xx@vGyObsucsCt)J5Dga_((P(25l9~dy{=oo=`t{!!C;EWmflJYVy3l=&InOMGx?ZFB{xLsnZ>}pTMP?t9&Ht~R^0|%c5 zt6DHyYICrwI~g$a(%u_!&th7E&}X+#V5*-DDl0XmIWIBjJwE17?g z80Gh_?FgF8#p7~<@2gk?iwv+jW$(7cWRqUGZon;-L!-^g$2g@~%f>jj#_XOP`zleC zCQBnV^VVvS?l2{0w(`YS%!L|PeLBebr_P;f--M=`TPHw9xUX6=VLha{|J-NuQK-M#;gouJauW zU$3j&APg!TJD=K0Ot+$lZ+Wm1%_c8D_H{?*s9laI1cc1r#8M)Pjh`Lc&NAZTsaxsT z%59OaIDb|Vr~3p7=IQ$=o=>R`AIb{^S4`)nTZ_CaFf&mW&lfEU<2W=%IalQ6D{CDi z%yeTOu4OCZOEg<3tK`?J!{K>_V27X1f=x4k5>$r|=Y@eC%Jb5dX;@aO0-^?lnX>;R z%|7G@s`JR9p7y<`;Pe;YAv1$1paQ1Y$2`+c@GEq3E?-?!FA{L3ScZ&jrddj^csWLq z(`MN(gm9*wjmhoA>>OXNS16(2>*nebm1kd3Q}nk3no0_ zuCn-nSvcaTq;a=m2_4jIblH<7WlCwbAxeySNfI8JiKS?PQ-kL>YPnQxrG(G;q zCthsfH6T9VQu%@@pvhpX5hOj0)rjFNcdT1MubBzQ=@i!~rx)ck8BBO-kJX~le*tgH zFi_hlG3K3fdH~@uvo!?0!jwwz!6B7$N%Z0)yIpa=CWCv}k>mm$wTP0rg-j>`MIa>l zo~`Z!4c3e1nQUoNBj?A*Hr7M1+(``ZDdVsv#T^(q zJZu z6DM8QriGNj z16Un0Zz&x@YGR0OvHu%b4wRnUjt$l_++ z_(yvK+b;Y*)D&;L{HD3OZ$;frs=bJygx+?Zo?6Kx4(IjoI ze~`=;6oe1whRHeD=lO~Mi)v0&<>Ung2?|c@l?(BcNOuH2HE@&ec>g2dn|M0z%M8#d zs!+3#Z_(LWvL#N)DFtZfY8TfxurBXF9$H!9 zySQm|O;5j?n>zs~7ZtAjNfHeVlOZaas0D$%8uon{^oX+gGNymZi>FHTEVk$>uLM=} zw%9!LteG)3O33;allYb|S3ZJo=Dda2$OExeNK}|7?l=L`aYE|IHWsqx1L9c)HEOhm zKRkW~{{*5M>Gv0BjkGI;B|(#_uMQjJBnMlNU$fIiG}M!91qF|m6NQ~O)ZUfT4b)6{ zJ(>z@-*2b-;iDXuJ}{4n3xE^yIAa_RB{!)4M;KWDja+zC?WbCn7EDr$}1npilzR7y6mu2Z??W7V3rp9MT zXtw@gPHsc+xKOW+C!{*?-UP=YrNqqiTUU1IFa0_|(P#81eJb+<0-=zkgu~{DxN9kf z*!-^OgW)YM9pJfeWqP&8Gg8~}fvo*l(H~ouVwZFg^i99^qA`E3?xHc~PU715<2-Yr zi!$j>CbHo+fj4P9=J2xbLbF&UA`H ztL;qloQ_&qbv;14Z`i|yw~c5c6w==DD7onZvSl({<1Mbb2YyHZO2_BSSkNaac!4Fj#rO#C4baZ3?jCXjB>@$V$J#Ads6{_yZ=GO7N_mfTn(UmBQ27I)}Qo zZu$didb&(V75m9!T%eF(1uQ*W`_6DH)erB3X`i^D1BCN@2*X8fu{VS3_@2{jYY%rm zUA3o=qU{$M+0k56!9i}1fN}1m_^iWcC%F_tgEQ2?BODmws5~qycJwgkj&{-6A{P5L zjwGD#12X;#F|n=wD><32Pj~{)A2QG{xA`Z={(nF^EgHJkegx*K@qgr5@*L39&$YEB z#5xlbTdlNd@EnZmeBR9aRAshU5bwMtQy)`eG(BRWVO-g8hi5t(&@W6)hs(d^&hG-j&>LPt#UW7WfgHhPe14*ZEEmnaxj@unJ=mEJ0AUwuGa zmEG!2ybB7a)yt&5GYVC|2kdUXiikdge40OyUmKjB@r`buu%C$!J4|;vA4ZK!>Gj&q zmTFe9Ot3o4D0Tt>7-KflG*x2?KzHiv?=+Ji&ZM2aRR?R4b>B zP)mbSo=-p;kj55OHHKY6r4NU?W!zg0GGHIAcqCPsr@^?@`c4OQJ{C#kT9;Nu zg}Wb!Rj>D(K|+Q>!tx?ky*JM!^`#<9N%MWGU!d20AIzecIS6KXFT^+d`6*PjC1Z@< zjN`rEyIk2Z-S4=NQ~R9*d&su^x6_f=BUL1B>`0?JNPw?7}LZ@-fcKXF;Gpv5)PE7~$ zWkSChy)Qzmc?N}ot9h-zJN;y~7JY&uj30UAdGzo*^(hD0>~ajybkxk(#8Or%PVEbzOU%`$O${;s9u@SRkE% zV^{hd`wcvV29tu;O!Dx#%`Kic$0umn zm6>lk$TnPjnD!CquBBI-c(N7$5t&CphAm|{I%|;;R{Ie>GN-by*_zrQ! zm;Ds>Z20+8!K~LYgmgd_D6HRf=sAI4*2_-r^^v(?Bpc5^j96Tn(NqIUdl|p5e?|No zS$ll4NC*`iLr@41NXYuVAJxrJG7b5fbNlldaQ8}P-te2W5+8jLaaTOzu1@ZxW4h)$ z5EJm0MM5n_BQ<-W7A6!RcBfr9f-04g9ndJJN5!;v3KC`v?1iKNF8eA|kN@rgjuf=7mOHa_3k+wy{ zrcL?#rdfZ6PaO9$wjlq9pi3pHaVTZ1GIp7nE|{P%&qs}C8M{_>Z;|F(`eUM=qBuT| zBV41oYA*II%^Q(6gz1aa9nd%@0N*@&@nDUEWR1hpy0sU$C77)~tJY)uQ)FbJxt}us z2u$M$O#2b=Z{qVK;NRpxpRAO?lPj|EgPbgX8~2@`q6xhiTNZb3eeoZ}`GBCV7+zPO z5Xs(Q*C|xOclVUzucAF89+hqrUG-$%=U5375B(#E{67jYvAw?UBV7I8clG`*KxVsg zZu6v;d@M*Nh%Je{)?R=8$F!;g?jiF+)hqt_bwrQ0 zOvFS0$BE_vO`Y752iE}*I_aFQjsi1}9<_W81{Hg53ACF}Y*2;Pw4f_V!I^VJCW+9= z;;cX(9%!zfgH@}_D;{XtIB3fUmMBW+h~`b$)QuYTEE~~i75XSm4Yf6McejcZ@3OpQ z!#>08AyS2DXR;%RDhu2+5{rrxg#{~vys~K}lWtvLo~zBkH#@W4gZHOp;u4LCi3W^p zxxb~yQTH#K&`WX&#N)A@Dg{{lRJ*OXkS$DQ@!i8RVMd43GA((n6EX~5=%<~LrzgZ! z7R3sF0hBC5x<0t5;>RLi#3Ho`9P5*q8n3y1-(;qbemH>o)<@ztw_<9+X-8~D?(O{ndLY=-oY zHOJ?Uav!OH`_WO#TwV@sy2-7~#6R*5Ve3*v4If7B^5lsuP2!B+I%UE{MRvH4XSj)0 z5V~f@Zhtnbqm8A^5>G-==3sEZl2Jr ztl=j`8y1wZhw*YQvc}9*E2afR?b<#_#3P6LVvyU?Wz=ONmsrFpi;l+!StlJ6P$}Izs$76wPY%TYSW0= zQ+BtC| z2-a4E=9Bl8SN>$qE%?F-7FT%e`xff{bi#0qk7IB97Hl(_3OrcFKWA`ps+{XFTxEDP z)J3<V>Y>Y zC^@(kEW;0ezze;dknYKgWO|ckYv9Fx#IonL?;*C?^xh@-;mS<1t);v`Rd(XE(!kEM zwUbCYlwUsWfoQDfg2E=rOjPrS!e@JzbA16qLXB_9F-Le;=l)mjEncDvVk!G6@@Ip_ zDo=Xa%UpLn-fikd&95q6jPaYkBN?1e-k>ujvt%lp56=>{XtBe;UTy{ZG7G*gIOF^5 zFx)A7vmL)$kOQW8VQs?LDT3$TaVW3MDz_W+&3FL}qlu+Sm(5_;Z8%(Kv~xlfpc7oE zRUK%_nSeh6cp>g+&0RT<-bkZ|-M5=vMg;1VlC#!k?Wz-7>wFp6sJQ}FxR9XP*H#*R zB*y4k@^}_bzvuUzENE`UFZ z0-xOF6$B-!d{TCOwR{9X}Q$^E8Vwa9dWP zmoIQ^zJKx%PNO&*p@R*xW@;_GGtTU%Oe5vc`ChAc;?4wBCQBG|aEq+VSmf81hcFcN zVcj5ba8J-qFUIn+%tyC+U4V3&&Poz)J0K?+j3Q_b3Qw!6B|7hAY(fjALf}!x#8$dM zH6VMq9_D!ZT**&vEc>;I=Dqt8m|Q}}5{kPCSbqhtbG+6dEeHGxIEoY5O0a=_hS%-g z6vE6Q;Bz96oR5`#$_vULpz^aaZ&_AJW|v!_xSNc%K%wHyBr<0CRCtLUR_}hG+LSkl z$~$Z~|1BSVKf$J5qT1ZrOP@FZj`frmh){Qaj#~>PYh_jcyb!izldws(NA|^(Tf`YX zFv^j-LxZNM{X4e?y?+69h+x9QSzunjMzHU^(dYDb6ft?K&pUEh0I)V1O^SW&fp@Sl zalpl6ic#|=$yQtBmQFPKG>UFBZR8Xl{rcW~?_50jTrtb2dyFM6UNTF&<7@7-xcEN- z5`RDA*-HT8QtmYt&oz{rN+o3d1hD^+iBe{v>+D#T3({na>hjpptOVV)=K)iLf5X+= zI|W{)I=0LL^Ce;E)&m2bCTH)ZPFf~zq{*vr`r~ULeG97FpMKp4WFS!2TeE&&h3C5N zf@h_&>Fv#4{oes07OC2fw)DEv#2fIXXBFG~%4T;rx(+rQ;VRLRJ{bnqZ36asVCX@cx zP#+IeeZ)1_eHASy%aZfwFOw-(@HJccuv{t`+&#+VqW)CM;i@f2_=@L^X%u6@{miHD z)vw_KK?2Q-5@p>O{rXS1?7MtRuJ-Dm)a>AlMoW@{RC(%a{J#Q8fW1w_^81vx+Yb}< zOMj=w{|VnqNL=iJT>2jNm#TODabEKCM`l0vlEmbm#NoRr-X*=M_wp{GMD0RV7M7B4 z@$a|jJgb1pM%V2411#okDXT7GY*mli=aGDK4X<@y-X#4$gz*PHjKCWwCKC&vvN-iG zuw{G6Xz^A>h-9J&hJJ)%8?8=tUVB*n7viZHw*k_G4A54>BZ&&Br(RHy`ud56@^f9cf^WRYgTIH;@!0}Ho zCirT7nzvBc@+jAkE^P45I~EP|F9keZq(@d9R~_KtMvIi{?99@Vl*W=2&tm5A%Sg*J zNTDPziJs1z{Wgq}r%n?UdFXbUEyh8+al*vaa%aL~d%}W6Qndb+bH2H`Kxql}q(WTi zN>^j=y-TnIGjdWP#RHx_lF;+)S|vbEs)kwQ3C-2AqYDN4os#Y2U%C*8>@Bwt<20?Nh@JLfcnV@->Oip(yz%inT1b(RnVJ5tE)C|AHh^J9_V2T+ zBj+*$jyLCwFSS+N@S{nPM>y#CF*D3bT@khj-z@-l))5ZiVE-xTf4bhhUkKi5teFp< zeA6s_M>bUP$(oVpxk z^nSy99{6QvUF5`#MPIbGCmo-GW|lK(X;3?RM+U=}&>x@StuYw|8?FiwIwSh8{M5rV z&W3Y2+IUV}DI%SAY(l@ZK;fSqb(col>-o9gi?hs{;sFEj+RlxmjFOR*g$Zk3g!@y1 zLCV`jey4e=ogkEDKLpEm&zdEHSqoA#PHYaM075Y0J0!3bqE{xo5H@NwI?)*_(OE#f zsZ8^ngo;$YFsY|E$sd9Hi54I&U;_`%s!5~RjAqI1RqmO#Ivx^}M>@-`P!G%Y7* z2?HwNK2nDBmnE&*ZU?Aw;n7jUXf4>(4rc@J@&x8R9FP!cNhRU5(WeeAeRB`_Eq}1j z#$!H-Z&4D2=988vVh7j<(F(w3-h2~_6oSXaPHCwUgwBu_ZGK96lIXG7@ieiw{B-t7 zVoh546Wx#~Z_1)gD#(y6FRfdP)45d#qWZn1#=UQho0_&b92~k2DUwh)JlQ)qJa+*P z_=n{LP~}JwsYwNZtj3b*R3O@hThfSdRO)##CF8PtKAj!T_-W^6hri@?=aYs=capMx z80INf=*^@mf8wO!jrd7_b^f>RUXr?#B@(Cdd*L@bXVT*?l{b5IOrT2y{}jdfSJpeq zO|e*mPA(@`zp@>66de@`M@H^xYVyICrlrL?`O}ndSW&>OxtR5G$q-xU_>z2<_$_bC zW$%}e!5J7F@6N3i*5z^*?{?6W5P%c#B|ZwkoX}b$m3u>tkN5o$C&Zhh~^Q)2=JZeL>RBS)LH4s3_4tF{X#g1zFx#*%rI8b3qOD; zJE4md?{ETj5a* zDHyB{_5d}cp|yeMS9YSuuGzMW)Vn$N{H^MN!luW88#J@w45AlrE4wD(jaR#FI@vD8 zO|eAp6lQ|Q1qdU}u^J_b3mfp8=knBP03OML*^=g(nsQ!Ulyq?IDUSmkbT#gs7J|x9 z@4&S;v*icG$s+!&EIEcd20JK7q&-2>wW)>{tBwsX3@`Y#i&+M6yvS<7-A)@epS@Ae zbbJ6uNBm>p8?bK`Miw9M4p2xwJVlBI`ERye?#EU=_qthn1lgDX>Y)LCfV6-XszKka zPK2%E1m4?wEQMY|+&$Cof;yx{;o`7D6VGTumiys?*XzdZN>u{1YKybaN{FYU)-QuA z&_Ajo6&83Y?KfgoqUn6U$Op~Cm`;Hls_Ov3ls#ToY8hg z4svX|c>f*t{50t7B<&A6HCSGMsnjeWru|_aev_4X-kB%!-gz|QW;v8slkxtud}guV zX|U$Q6Otwv|(9hGas;qqr4vg`=(%)2{Za%f|R~o;ZG8ZB6wO z|Hz$@Dg3dH{SnrF&*)c_D2C5l(~laaqMD9oL#^yUwC^SSD^6)&aq&*fu-2>SO33{r zdkT4gTXEl~6Am=Fo8dv={{n8AZRq(f?GE(6Hp4@~|AL3qqLx75_^;9>r5p9r&6quw z`@PB=UE`^ZiN#I~70{k}@D)^E7`M=V*a_voKyyVB3=Oj^4F>*5@_vWnwvYl(ZDDES zZS5|Bd;N&j;g^rxp_0&j2} zM`$h%F@R=k6t3wBp}dTwdph6DsqRgo8aH(|9~x zt^BTSg5M)suRtOe7iMQS_Nx$%q8VqUx`^GfLE`2cF;}I&^shJ;+X=};HhzPF zpe&e5sE_D1lzHY7;6?o*U&JD**hUOI9# zsCShS&0gF+5EL-E84H8X_!@02;v;s7n{Mq6g%IkG&q)sJOHLN?bS+EKvN^0;32PTU zfdjvuo1H_2)dEx)K4rLCR)@po$DJg2{=0qRR-|nh3|;q6;6q%0HNb@O~8=&0rvUbE00J z&hV^p%Hym1!{O62n~D#Qf5CsH$No1c{L-U9nN^Ky=DBDWPXK#-d2rRh@ni6D-%*+E zExDs{aO#=1|2eJHf-B=F0})Nen$6{5Fc~kWGC84Lj~}E=+uvl0?2pPk$B}h?m!D66 za1FPCZqpvI;0}XJ!1|JU+^0WP@|@koFZ6TcK?SjI%*cX95K6Pd$><{gtsSURTWTOQ zx0acWBWt~DY}VdLDNdTGjf?F(F!|%o(*+f13JMISdRKq4xA47gkIyYh!-9h37`jMnWdNJ6u5U{tg zr^>9nKhE(SwW>F(A&nCoMoj~ImAyPJlUziROpN;)N_gjPw!~5Pd3Vnh>TSe#^H=gH ze=JUBrfc`%I(&MHaxIuIwkqY;w@ulsXY0Q2SRHoWANLuc5$+&(uHU4+PPiP5Ne6|( zAzS%=Q66?4rQRr|nY-6LKD;?9s%~_EOPA^PelylrTWeVI0yEl2+xjQ= z+fVMcab2wrrM$;3N67lbC`zt;A9ksDcQh!snPmNQYZWHPHF*^W6;LMqlBvsJI<^*~ zwVENvY|}JXFlfceMrz@L-*%kxPtDnIK96yG$B>mpnX9gb!V8FSf0%}t$y&E_l>Efv zH#SZ^kR`VtCq&+7xAl#YTpXpNhKO@%m#AnT@l8=$Bfz&Ars7R8ac9G`c&j@B9mqFi zoPb_6lwBTI8W^BAv!2^zJuPlqGQK zE;gE6P9QQ)zY;>>oKUicE}Qm+*4P_QIOQ-+@APvmMKfI|^n{oeN3;hBj8kqgNpw-u zUjp-(9r2aaazDzYYo1I&_F99y&gi-csd9~vk)7#b}KkAmX z8;g2X&J7c`)dt9|M~j&hlUC{dnYetm7O@ATa_`6KcToTau8-MDSz&)nymYitwsi|n zE_Ds?SF4&jq8TqYw!GtOc%?*s`d%~Q&91Ncw*EhMm>eOL#qCn-sN%Mq=@8FMa7?t; zzz^=B5P7TJT`s#5A|8jZMD9tn4Xlm8fM8=oD$UW>BXF3#MT7SWWWCt?0OE46=!~+! zb1~m~4sNpV(BoDr1Mk~gG<#n|W)BwKP|kU37Fursmr2`Y=ABcKNT%{w1_k*DBa#6` zokjjD@P1}HobRm(Io(cCMrq{U92YDGTyGiwp$!|aigSILxnuGN>Mwd{ z{IN_{7FQM{Fvs^TE{WKYW#XustV9rSB8sYvyrVnyrAWXRVTqvO2=WS@;lPH>a(mjh z)v0=3gFW<#UwJIh_j^;$^YnxaIr#-B1m|*jF4i7Jysz=j7Ij%6oh`p z{+l`lk7)werMIG3<0qo=-M%E9NULRBA6*Qy#0J`lt-_3`gz5QI_#Y~q5>|>@J3Hn5)l*lEXQef?y0|( zT;<@>q{zVeqEjgdq%Id1J!){6XvhKjkXk-LeU3&a4Idm?6CA1O0PF$m%t2Ows(K^K zC-#r!9MUB%GoF!oio7G8evuLZ7Zs8p5w&lW97Kagr7Q3p0prVXZ4*!-oa>h?m)LRZ zY*gb;?Rp(EQoXY~UsUe=TkDuF!T~g|YIkafhhe8<{=EH_1BpxeZHp6Bv(XZGuPSQD zQ#V?;i#prW`n)jltDzWu$lV=^JDaycES~69|9a|nx#ccuF;U!Z>=td_H8Z&+z7+9b z@s$Jc`t-iF-uw<{A7{#Ex1R2f$Gp}P8kO zLZ=>o+Z?~0njPf}QbFlA9qU7amhE&P0pN!&1)C1JZQ`nf4g4H+Va!_5$;ei)?^J{E0z^&9EBE?TuDJ=X-`DdlSC_lB zS*LC&NINxQDFHm)dra?nBuBuJ6}0bG7GK1J)3%N))lJx%MowH0d3qfWXJ#)f;xZtV zpPLg{(AA>k_4Q)RS9GHI$1h*w)DM;th4A(AxPyraPPX>=9CDNNDD4t;Yw_1ic>50N zgt-n>R{ckL+>Ye9yAa`;PT==3bzt^po;oSrh38o08R*AKA)r3 zaI3Ihd{$Y1Q&BnY@~ za&a2KVjr)StOk!3_8GgC>}d4b?9`oX05yjBPRLgr2bZ-M17B}$){2I-_OJdq@Fh39 z++Xo7*7Ld7isim{y|bF!V6=C=J61EyF6CN9#+QpELwo-58msWuf8y?Hcx}R;p__gTsGt1oAe2IP|7>OxC77w)_5k)dFNP>%MgBE8d#d<+3BFf2HA z;N)VV6Ttyt#}%SW;aUZ-3(3}J4xQ;#*6Q|ic3E4VJ`%&S_yfac>;4GVWGxPr4aC!} z4M3NOzMUJQ)uLj7{VVi;3`w0oVSC+gg5!3AztlHf)BpnsNdHZCtYc7I_U;XJL=ySd z1AKP9vD{htqDJCAdv&qmDQl4*=1gUauH@Q>nyj;qrk?}_z^yyfr%>}ycb#rSce?FI z1&$<7>jP+8N|)?3(8aIe21}Q0A_hyVq~XwUw?4p9MgsIF+OtFecC5WbUa8pphPL-y zzr)(8(o7qO*8jg?urDG15K+nb+25yelD;Ae$LZ(N?vz$3#R2!A`6XBgNHeV>3je>r zC$|8LNqSZ=FEGQlh`m=EeFMo(D;f?^(EC^yrXbo1IvZ2@og zs%dfJ9O*p5T>D3L$y;NIimH+lt&~cnk7`qRAOA>76VkR?%$5GKx(_2=+oaaqmkPXR zQy4bYB`umMHAq2fztdAHVaj+SM7*%3$_KYE(iwawz0B-ykh}QhZ|vD9poMW-`7o&r ziAL?efeMt7t_07})N|t5zr#dkrIQ)M?@;eEDr0S6Eh&t#ihX!B2e|w>qrc4GzJCF3 zkR8)ib15YJK zEy;t4n8T_jpKANgt^L9QYu7uo9btR5ChEJJpbbmq!6HF(fHAhs)!L`Mipc3xHZtG{>y8-vqd}}=Mw#ZfY08s?EgDZ^XHyn zsQ`@Xn2HNZGqwe0lcjYU|I)Nnf7gI(Wy~px?b*4S@2N#)i;Z@CrmXM#WD>_YP;ojY zHc`b_R%PpAwsSE%aa3E#m~RS6p5f-JhUrxnu2`#eZ&dwIA3dLtcC}t7IMc=?6IclD zcM4%Q0$smCsXw0ju;sUq6=yi5%-mT*ynA7~?@n+Ng3O=pi3U)IQu5HxpU!@~CBPq9 zG`KlLUn(pb$Y){{<#ISb79nu?ioDJm8;guHS`x&5K@M8aYMp(swK7^eSPRlXlv%BK zpP86}aZb@@&0hId*j1L!)c$GVDV%z{6lLy~#bIZ>iX-QR&Nmza|4PPBb#=SYkQp5Z zgmyyw`IbXJSF%xCJrec?-O@VGaZrI7)D|J1Q02B=?Lg&P$j^dQes`<0ysJF0V9= zr<}Fovs9Ak)xma`0dn$`W4V{!G;16Scb@OUbreY4uZMfw6Jg%C6pU!c5h*|;qMcET zdOpy@F!PcZur=CNJ|5PyzB5>>lJK^nG25ZFRMQHaxe}jM_O)@Zn@#2>wO<6z))ZW= zRSQB_;MFyry*CgTM!wSKMihDip73;S4nGv(2dgtU35n_NRwX%mE&v7h*dFH+64 zZhs8)r;r{a186QjMr*Y#Vk7%Aao%8qwJlJ+h4G2@6#>(yl?)TS@L)c~iM)9@S*OJT z<1nmy?K&Etv!jI!8O&@E;3P;19SSb+5CB4VV&rpLvMD0qTSI?};AiR)k_} z>|wqCBeG~Qz^z^mWWDxw3j+t$De6}a4Lj-9(=aN^KL=#3Or&T-sF7>$v7Z& zMfo=uh3kv2yCfo4vKd+i2X?D^8uf#}_NYkSyJDG7a@8N8sn%i_`n$X!BYEHBNC<;? zK*$fnzr6L|u>(x2c~RF+g9Ujjp5$o0h>QH|8*^W`ybbl~+@ksx; zu=SokXuhcX)?Abh!Cvm0^p<-uqIrqsJaMt53k&82awiPUjKcF1wxwwP=s#xaz-|-U ztp}?ooq3c=A0Ka^)F(x;T3g6-y$8;`@qPXLi34f+>;ZkXb+ z(B?-X)?VDy#B#fVkJP3X&h@wK(Y80i~ zFRFN+_!5@%+CLEE9_-{8gmz>(uQZ7$d711d;k|HUAk86PM0r)A$u9l6fHE%XEbi?g2 zkHZA#nR~EAuj*NkmNQ>N1`-j9bzAH)FT&s!m=}4FUAjFE@DCvfchJ?L)&=H^dIl+8 zlG^Vy<;eGVEMacBfy2y?`9khqpDIfQg}wjDOwCQ%*$PpywRk1URdi+bs){IiN0ike^5N(M`(Hx&h6`)`D#gib}CnF=aoQfdB4j>^X2#S2D1Cj&pW3lC&^MvpcTO zjcPIx<0GYAoK>RyeT|fIWt9XFBM<3myQWXp@?~zZPH;y}QgsxYq>W^tMVX*Z9 z!o7VGUF%me;VloPL|pf&zw?NhpHS3C8}d1nM16pO0iPDhfZmRZ@3D6B{>0!j>@cmR zQ#36TSlG*VI9{w|zd;B`-cHjV*xd9n=uNa>+GhH>zJ!%J2iTGlYGhtxhC2KdZCFjmNlI*kwd&8Q#vEweUW4VC1-- zIE1^#^mgL3X)C&h^V>cFR`NAjA6kDm=5>t&g0b|PXK^qrY%S416s=xpe(n2x?O$FhALb8qtY#n3NQZ}EdY4~w~$Q4`381=82AnnStHly-`V~m+9 zn~yCIk<2$!M+FyfJ98}H)@Pfhp7YVm*t@<-dDvf7q3F8OTD~OhHRkeik#{ z2+aU7v{exN;|OPfW?huqEtpx}Cg4!LFGoH9x6C+>7AYze?Jc)!xYPt=*&i(xT|beO zt*z?xS97W9^bhJ~6Iq*nc4ErB5G`0M;-&VY1_0!>XD4KQli1157O!W6e++O?`w6QT zk`+y0D;o#oR~EjZn3-lN1D#Dni$P~X{RL$D6IEy4Cf=p&_{M(+Y!>5yxJpphG}AOT zzpARNS=HDJw0X_z^BtIaP)b6A9W8cQI!AZH)IjWo}SbrJrQMOHV0E%G@an)U5F0`eE2#}R(0?}dFb$b?3) z$vy{!|1a)}knjrh5I|UmtlzFXI`z;j{`?~i(pYiu#8PlyvZ%zYe^G0`s+UR)%^DV! zH%zY$!HE%B{un%G(dlF{NaruItYXk;(biU^yyc{*iWO!H61vCKcJ(Xa6Q)Wga~Z%2PGu zo)@U>AEp(S>dyIM7Hj5NO_&q?bjr!hPQZ}cFH4uy=mj?0G5l0s5?3g^{25Y-BJsF5 zMo>%E2k7Xlk}aI6Q#6w+L`)wKPi!V^c(r&>dMU(`=kQaQa3;@E!tq*^w&Y>CQfV!e zvMnj7CeGv@1Mq~xj2?v}JcncTxb#Sd)B+N4AJK>9Jfh+KgrQ%bq~tsjL8785aXj@J z-L6(!(Ke|ROxcOgy^ZC z%_16b+vqaN(A38%42T)OFy7_!7F~@klMDRzPh#-q-@MmA<-KkQc=hw7&b)Z1sj=w# ztZsT{N65Swqp^|U^sH_eFb)pTh9Zu%9#42uVDyHv+&|T>E!wx!nA@wXo3XX6-ia`q zw4J@9Z9CR_9DQFQVt4e`*R9Q5af{#dE96FrBrKdmtmiw$>cHdUbyUZbH8~Y$Zl_Bht1IwaHVyTAzuS?NklAIG5wHdQwi53mB8f-QoX=Mq zbd(&h^{}C9O}M?BhWl7v!g%X?>a5=W*88Bo5v7UYCI)sHc-MNH&~cyA*yxGybz8CR zpl}Hsrh)bO5?N|}ptVt)*E2h=DT#ko2cXKioRqm-aF@QjBRAw*40OtD916b|{)K;g zFsHZN7+bS}@}pVKEh?7e#r-0S7Ohx0Q>2y(_ zjYiB?9m6P0Gnx7v_;+KhJW-FSdhq&FV_*0ihdh?i92i6TM19CKaHi+hah!CmiB0?C zut{ru?68S2Y7V^uNj9glWnxLzrpkOILC=JFZgD(BeKt{rY!Jz=WK;^Ve8(S#X3`E> z{ALk|RpFL!Y6TxtrWW=x-ELHK7ONMwE7hk7V2UtVIp69O49|xXBVUWi_6*N-O*pkQ zjPz|X+d`8{(br+Qi1j#OfH-0>HJ6K(%|B~>c#J4MURd7R&GO-^RHKP<~z<2Tl@rFwP+pX5duyLDAqO>zh?dRN4q zaDQ_UVe#ZKiIW; z%Km?aKCfRTP5n)$kKda8t-y&x21tlR#V8tPbKySk*)Se$D5J9<{h z?gPAE4N+j>nM22Gf9LKT4siIQI{;PA<|GFs;u0O=Ed_}E;w_T!`tFyO^c-kYXv#8q zdfQ_x5)Zz3oGdQw2)4+AxK9Hwj44&iufRi|jf*)AnHH43EYt~tOOgw#+?9X#LDEPJP<7K%OCSnBP6ypdfuo05Wz#730^94x>c zOG)vIGnbL^_9DO?gBlWyjoocqYvNJxPY*NCt0UA$#RIOQc%`^_YB_oDc&9pW15ubJ zSd3A3@_xRlX%eJ*FJt99$#KaSD`Z3d3UTLL@4SvT%*{|&U8Q0vEfi~Fr~%f$!)SCO zfYab_!^in8zTp^4x;4{kfou$`=>t7+4LT)CEoYD3$7_;lHm5gfn>}kkZcwt1r86lv z>fiMW%7IyCwf&O$F5vQogGz{e)|h@keAZ%0(9e^(*jmaoPA%tdcUh>9mU8hk@TBp z)X+v2{5nYD6Uj z_EC4oT2x!nO(!iXvK1l%mzU=a5<=zG3Iy&P5A>qnrtd83)tSh7e_PRMg}#tj%Nv`d zQ>Ze++G7i`j3NJKm`t?R{G`V@+rCrIu}M^%SPK@PEF4VC)+rJ0eE9hx*2Z%SG5jI_ zzFPu|X5`soOT4#9Diq55lQkIROR}~Wr`xK{c;LpCYVth(rkAqoSJ7`t?!c%C%jx^l z082Oeatxkh2igi1=eH}Hjh3jFFoRxKSuLep$Hwk+k8Wv{?NV7L4I~t>pq_*1fF~vX zWrZQEeA6R}gFb8+NoGN9)szBd=Fx=2#>9`$(F?d{hD87qpK77iN5r&GVA0E38??7S z02N;LwI@{^(A=uIeiP`Zw3d1td^CecZ^_)tyz1WnBp@O%8Id3RB~Cy@ExxWH$JzqU zmQk{e4-paDC-Hv%gc$~u590=@rYHOU-qpR5Vm+-z_F8=5VaKxmHbE|&iR7LEaac3D zQ^CN|Sw25E)>B<>39x8A*LK2SL@-R<9@ta@_zI4bS5|dky7PpVC6wxDcbzfSP1N5= z>r2)WBkpBhzsHGWWqyz2%4+GiUwRcJK4`cc;x4oH%z)KW6vv=K8263#3%WEz@*qk8 z(C0E?w_1-y5M)`g{{f@|>&vpCs&9V^;DY`Oyn6fYK;?O_{-%F2+`AKB`{f)(1R z{5v;Xz@2yk>)}7iA>}7eBcA?|#+y8n{?u7LlT)iwV&IOYeI+hLB7o)k=*_9@$*|af zu%${WXMqfn5*3&h*Z=8Njw98@wzuY5R`PNKp(evEE(%8z|DTR{&n#^U(HOwm%1P=d zL$vDe1B?dKTJ6L{U^WK9e9;3u>@7Vv!Qn3)Ii6}Pq3jTY6$07Xwv4zrG7~4a?X@k z>TmyZJ6osk`o7Xgw725WZ9}cTJHEapSEF*UZz$ZKYDGdnGE7QT__VkoPdV^+qON}tAVpnOF)t(QzEMH$3io9G z1jT%g&tb81TX2KK3{@btpvA6viXe&vU%iZErWe-w4B05W?)%){33dQxBpqecEmay_ZvEE4nTpGYl+PLBq*@V=Kr>&H0$IV4YLA)rMW zcwaLQXn+sw(0%>a4!t)Pl=_T`%!&P@?-^0kv1xZzC{ThJP=mYQyUN(3t zZm`@D-}&&JxGcLJHmBOL49%imPN37v23^x#->W}2z{{)|`iRy){p1pg-ZFLtHF9P8 za$!Jkh5aG$z92NBSh|sz9j?$#sV|6n2inUWTN!!WC^V8p{(}!6$#{;ra$m;fmm`dU z^MpQ#&TK4>KZk>%{L_SHKg#5@Q!jJI^%kdr*Vt7Cz6f;FdfPV z^u84fy*~q|sS~wjT~%+azL|o}d{JPz7t8a#MpS}WS#K=E-5?pPk~l1VacnHnywF_| zuMV?O=$YUDdE0Jv*Q@@WX_B(P(vg}MV~wGT_N?WiElW@y@70N9r0E=Qe3532^O!V3Le}i;$l@l zx=`n0nF(=gVz{l0mp{*OmF_2~*h?4iY(yo}byFS(|I*WuE|7ZFKY(U!-8P#r-C9>e zpzCz$ldW&G5}ki{~e2 z;Bbh_keQSIyzEKqE{xFe`^!)F$vK@)p^Cn12lT=P&0h`=J=*57BU7 zP5Kpmz|=^_uj6C3an;$p>X7lUByHiuh7zGNff4ah;6o7Lx;!7Pc+0vKKGR%0qTw|* zTy+(~vnKU*7UWeSsSUC zACHmX++)*>A63ZEu4|b1i*7uc_#XA+ehG%K-&@Y=uQ4n4>Kj%S8s-(dFn6zDe!b!4 zh>bQcEo%e93H$swAyBCo|Dmiigdn+4$4)ELZJ9bLHC;`Vu?8 z^-cz~LY`OYO^770mlp@J$v#bG5<=B4Z0><~2tb(~zkavrthAM7mU*)svtm0b#c~f# zqPUDmqf_NnRg^aE!Sh z!@^C9;!6o3Tda+(w!E+xHo`(2{{ac+gjRJ=3#={K>Q{l!^RlP3v}iVb7=$+GZkyT# zadap$cKYUH_HNVf@4yK=*K)Q7rJ_d*=cqN4IsVa_9)@$6pSA!rS+%X@`b6|e|4qcS(O}&YG&FaF3uqGq7vL9+3u~YY*%HftNo~qQcspp-Ag;?@+yhgsr$xOusSVXwATx} zK94YtRR6v@{bJIN)u}N^MURS&J-76IsI94SEN>kp8vFahH!bB)L|bvy64x%F(&UgG zE}7?YCbn$=QN@EuqUYoAk*IsA@y}fSni!f7El(vh5H|3UF2Cny8j;rqp&QGnc()PY zPNd`^E3)O}-HvBgSATJDvxYNv_!a?lnkrobqw~^6jiqEDzhtAz6?_j8HW$p~><$w-@U}MYN(n*MW2H(Ld=4@)lo9qOAQ&6QHrG8Y1y=a6Cix}#IA-Mex4{$} zkAJI;h{A zb>eKL`g0LKi^tEjIa99o)hfWF1tN7%FQBEObLcKi+cFYp-gVE%22#wBZOfZEgcnEv z7AX9vm&#c~y~GJtdf~L*>W<>yCMgXP&w{x3p4xWNZigt>u(N6q#uxdf7&nhpYHdwt zjI|aG{}u~V%5A9fCRBOWTjQiPb$eGb{)@0GZ~mK1etsWC$z|CSsOvpkD!3W` z%)f#&qmzst{MquY9G4Iige*2pif{6Lus6^U%tBI(GmC;~^l{kM)aps|)&6|zbFVGb zdYjz^u4npS{%nf6wo=!PsV3{5Kw);GvZZj4zX|6v=`ebpZt~vJ04tMUTvfY7Gd5v` zT>h(^RqI4*)?uArbc6d#Mb=YnyQ^Zo!yq&2VWte->@m8=eWjIaQ`1%^rd(B3L~3eb z^wixGk?m&oCLCN<--%|V!1dg(caM|j)TxuG#OxJbtn-iIgwjyxzE0P9onAwKm)4uV z*^k}lEA(2J4iEhYW~q9>nh+gcT0XXhugNktk}nn2TR}2(bl*>YlJnT@i1?H(OmKc^ z_yurEXeHtvitxLh<*I-@hN2~OqyIyK?1}Rak%0r48ZFM2l~eq@o?1Qv&`AE4Cn)*g zmFn;!X7<-EON&`IQbQ1gOXhb$itq(bpiwmiuQ67t31Q5k!2XjN=?4?&8~bHf1LZft zrr@p?yAb<>7N-dz2z!@erz0{xb;~jU(guHsC^8G~pXBm0?7NM!dUUcUC|vGdfoZpFcs)8Ls87gks8 zS9|3*#PeJ&EQ5E;ga-GAOZ)!D9z;!pR>*$$E6c(DN!L0iB*4=WWrNxq`&pJbyzkSi zs#aL$i`d}RR(uEMT0CQ$m&wEptX(V@+u9k7s|$JU7)^B-MPwvO_Y7luEBh`Bq0F^{ zM2u$V%fk*1%A{`!76`7US(PKY8NrQx7+G~Sv_mVW{$Jg5K#-HRpGje7K-UWBcsmHc z*|zbZ-f2s_atR}zn^Wfg5k)g?9D`Xgc(3?niTKf5E_t;dLe9}U{&J+#$%^sHma>`O z=vaRUMLuKwEExHS6-@v~mgBK4j%>BMyB0o@Sk(2t6Ccx$>RZLps^)4+PPQRr6Zh0S ze(y5@#Wxr6&0wIv_b~3CzNFXtYV{9feRgY(ee?c``eNoOVYw**YE2Zg%hB67dDFX)rC^RD znM*=|(+6w*_IV>#{!QR{yx~3hqLS!AXVH25{8vo`uHqMsoC7L z;xGS*^t#yG`${5SjsCGt$v=>_)r>;rz4drq(L1e(VSBsQ*j8HsBKA~?UH{&>TN*su z4BRFtBGBs!elQr9-KWm=#_yI<*8jGG*SQUgydR+5Y&Ygue>oNTJ``M;U*6xVg^l`P0)k1!r^w z+wP8P?LY~XqOkbsPwi$~8R23z9Pm7UrK7B{ztp%O2r@RT&0{+yeJdwC(3NFRZM0dE z%WaYe{ypZTY8myM9`I);b}!`LT&Ts36y6nT7`wXEPh0-Hm7MTjhRxWMmW+^(zIM7^ zbfy^bg|*-{xTu2T~V zcMWl39uv#%{7i*ya;hyN<%1R|e|kD$45hMtVhIi5sF%uPzlFK1e9v)DA;bHp7CLou@n+MeXey zT_$^a0`~l2ItLOqD3j!l9z@-9ig@e*f%#27hIxi@nV~js2|jU2r|4dWR>+1l>uhzT zreid6>&$z19JjoF=i-@G^H;Y^FK-~s4i5KYU_!bRyMB@ho+ikNKP=3=`)0ZDY&M?0 zR@cpPbB=>Dsa}w8aH#As8j6@N`@xx_m7jt zl^79smqK}g*58s9;G5or+~9H>%V>td4|wMypDBjUQyZ`{g$Ct%RMEL;r*{?$y1xlY zQ?K%(UnZTBmwgbCdzM{cA&&6}Om>|aE^hm+LoGf$dZhpn7s`HdN_-7LONUNRohuyV z7iSkAC2be#U!k3OKs1)iS$oQw`V_>J*+AH4du@RhpwTl{V z0g_go$HBN&73{I6%MOr4?e?+w59r?!N%S4xToXwwIo^00Pj`Y7)7IFf2=s4VR@9Xz ze@#Y?L;kurKp`%*^;3>}V2@9LWWYb5pO*Zx;9RfOpJ(LN2yFHo1PhL#6#jZ&V3->$ zg}F{O+Nnf-k9M3)dhgg+q3DkfG`{A+-}w^iEfxF{yKk-_5 zigX{!*lWYUgP3SR+UA(6*5e8~$B)rD z?ms%~JC-E+QZn_1BPjF&f9*iGeeENWzN?$SIpxsHS zR`1#D>wFzI5=|PhLb~dHFE#yE`trqSRrkxx@ZfPbtImSv8@Zl#{4{D*4BA-Vr~Pf{ z`r1h4C0?qBbj3kPZZ&>2O7s}{(Y}g(ZFzdPYuTR}MdNVx?sc3QrL|SDqmi^#pUya2 zp!Io`(4ls=1$|QF1xmX2YL7H4$yHUp0;_-8>vX32B3jk)Nf8tHNW~w&7SK}0Wp{iM zl$_9V%Q{=m+=z|^T+vfw*)J(EXd_@T$+?YFY|%y{WhD=5&=tH>^4-&HaBIs*7y+Q*-7}>ZJ3(?yx;JBHNAf%__p(=_Za2?#DdXp9M|!5IW$RxU z#k@^iNyAbdavym5gQ0Z#rBZ!|5lQJZmOfimg^@&lmAai;(jC3$v|J{=;vbmKm_0r< zcf6`*r>@2|k!XELxsFoXzoqAxjXp5#TdKAgKCAt}zZy=FhD!L{)J$^y|1YvjOoP*BKn)}TSZkO7aNfpWL(N78cf-2kKLe=^& zXc7+}dVN}-$@589wKNqGxL~MWC$hKsKQ8#kV!8lai0&qc?z?@9mkizZazN)kM}e=M zV}z2XwarHFe<^)46?uTC6ow+dHhLDXCpXW3Iet3iC8M5s`^%21{#C)NXsjP^f1P(M z(pFIcKFZ#vSIA;Y7J5dqRe@zva2{C$zqsWb7IV09^}hczpv*!&W$Y<;&)t-(2PgiFi57pks@no46+r6@63`(mhAq{3M zNvIobGGrP?D(j483?Vd4ab;|+lcXesvBlWNHjS~AEn_KTH`XCz86nGabnolA&wc)R z|32rpoj=Y$=bZ2N_x(tqRKv0Mq_KMGHkaoewt`y~9}FzSTH=Wv+0DWZQ|bl3uGWBh z?NZL=PsZxk=gv1qO@kUOZ!Ll37ZrujM+0 zxV=;B4iZwK@M8{=i}z6Dya9{#YL17S=!%y)wMvk13VzJIdzw^LYEGK|51OX+0}x ziqfU7LI(pu&jVN>Aj)lSz1p=+0W9RKhVc}UOChp_h-c-(0y`#|L5`*zWMP=9wy`u& zn72`Co6joka@5ji=mizzt8+I}at>B3Ihd}X>HgVNFD1JJy&MbUg`$a#I|*3y74A^#EI-Gn^!Cd+N_XpbmpWzhP^kU;qwyqLQ0Gzr zS;fM56jsj?Blo`zx#nq&Qjzya*aTNU(Xt>K{6w= z!(~ts2a9mV6z>h8SWk!FZVMBOtICh_oCx?87B2Sfoh}UYElzb(?0?a{>?(1(w{YGk zFDuEcUXMV?4|h_0m))R>)gyLzZ_OGMK{C%~MG1OzP900KDc-v*_Q*^1U#J6yJrbh$ z;B8ezzKfKeDh$BrJOQo5l9|cLis(o;TavinfATL_A@&0qN3yAZ z{#wfgpQ&v4OvvAZ9_FGi5%RN)CYn~fF$TMU;={pNs0?Lf@59Dm-`g$Qx@SlxEjlx- z!G53IpTiD~y~lBjrtxk!6MpP?X~>U`)L@r)X%Kj_mjs5r>df}};>%H`bP9d!xvtdI z)8z3oz#{aOv|B~YgF**{Vs=-IIghrzHwb&G*kLx;3iR1Ncd1JXH_}9GW%ZyNd!g$z z0;{Sh2NK;$OZno>rw$HWWikrFNiGr*P4*yEKpvq>!^ox{c4gIrhv7*U zecwdwUo$~1_7PX3NiOpAP+q1>mvpuvIm#oh;m&tVXU^IR=eu@Bz#KxUe zgYn$!O`%t2qZ5>8hHI$}aTSP~1XHU1jhUG4y{>?8PbrZIJYYU8 zrvoYXfMdJD??|UCN_WTIMBMl$d9}#&*)$;CrIICH6u@_M`K@P9w4%U!S$pvQ)rk;I z7f|Cjp?_quRd|#O4fi73biF0Y^!Bk4+pH%W^NVd4N-khzknDCdVGuaf!?Ml`fAqx3 zP+_hvCR37<3ADS&c+KwQ#!o_XVAU!Bnov-^*WK0H{Z)+xTFp_bV)b6G%!Pq{n`6L) zd7rz#x*jhKB>P%2t6*oP9D;E1{Uu!6K=Bcj1$^#h5{j$)>lXiqft?DPyFr$iLF7$hGI6-J!j;+~Vv`8(x4`*!TY)3oKMm%jk@WGBjk{IL za-CqO-N-I|tGHH??N-t)BD0o%L!Y3Nxqg!vqA>Faks?1_Txyiiy&EgzF}WRzy^c1Z z@dERcY4W?hMo!s?;2hTd@z}sg{XJXj zU$w&sYi*2~ce6l|t6Urp-Sk7K|`(byh+l1 zqPu@OQR8CfT=OT6O~!WDb9tdivzA&u$D~`@CQBBTBVAbxSG9+C*L{bZ1Nj@Kz74D9P~99+(Dv zQ-V4z?2{A(fsThl>z0rFQcaZdwj>vKC(sqU>aVfh5vEc0@oy(&uc4MW~rxtC9I9e|8Xp-J~t4h1&yfDK|@1Ft^-B{ zUp5UvYqVfWSUbzgYVJ9X0C=d^pE4&O2;Y3$WZ2=34nOv`mLhb}hT6zd-v~)waEj(! zCWdVU^gg2Bt~_5;D6{%{qlZnPnU%of+x+&XPMrRO9r+|p=I{n4yz@?;FtV>Z_S+C! z;t@x;@Icn`gU)@pQgU}#HY|P7F?4KsFn%T#>zOF(23{|UhQw!Uz6>u=m2fdpY`&+n z*^Af$^z>~dJr jfAg4;#%E9HuCakdY{ka<`r1s`1}M}2avN88&zAoHt!<6s diff --git a/deps/fflas-ffpack/benchmarks/perfpublisher.sh b/deps/fflas-ffpack/benchmarks/perfpublisher.sh deleted file mode 100755 index b010b395f..000000000 --- a/deps/fflas-ffpack/benchmarks/perfpublisher.sh +++ /dev/null @@ -1,181 +0,0 @@ -#!/bin/bash -# Script to format benchmarks results into a single xml file. -# See https://wiki.jenkins-ci.org/display/JENKINS/PerfPublisher+Plugin -# ----- -# 2014/11/17 - Written by AB - -XMLFILE=$1 -benchmarks=$2 -COMPILER=$3 - -# choose gdate on OS X -if command -v "gdate" >/dev/null; then - DATE=gdate -else - DATE=date -fi -#=================# -# Plateform infos # -#=================# - -COMPILERVERSION=$($COMPILER --version 2>&1 | head -1) - -if command -v "lscpu" >/dev/null; then - CPUFREQ=$(lscpu | grep "MHz" | rev | cut -f1 -d' ' | rev) -else - CPUFREQ=$((`sysctl -n hw.cpufrequency`/1000000)) -fi - -ARCH=$(uname -m) -OSNAME=$(uname -s) -OSVERSION=$(uname -r) - -if hash lsb_release 2>/dev/null - then DISTRIB=$(lsb_release -ds) - else DISTRIB='Unknown distribution' -fi - -#==========# -# Prologue # -#==========# - -if [[ -f $XMLFILE ]] -then - echo '----> WARNING: File '$XMLFILE' is not empty.' - echo '----> Results will be added to its end.' -fi - -#========# -# Header # -#========# - -echo '' >> $XMLFILE -echo '' >> $XMLFILE - -#=======# -# Start # -#=======# - -echo '' >> $XMLFILE -echo '' >> $XMLFILE -echo '' >> $XMLFILE - -#============# -# Benchmarks # -#============# - -for benchmark in $benchmarks -do - if [[ ! -f $benchmark ]] - then - #File does not exist: compile it - echo '[Compiling]' $benchmark - COMPILESTART=$($DATE +%s%3N) - COMPILELOG=$(make $benchmark 2>&1; echo 'Returned state: '$?) - COMPILEEND=$($DATE +%s%3N) - COMPILETIME=$(($COMPILEEND - $COMPILESTART)) - COMPILECHECK=$(echo $COMPILELOG | grep -o '[^ ]*$') - COMPILETIMERELEVANT='true' - else - #File does exist - echo '[Already compiled]' $benchmark - COMPILELOG='(Previously compiled)' - COMPILETIME='0.0' - COMPILECHECK='0' - COMPILETIMERELEVANT='false' - fi - - if [[ $COMPILECHECK -ne 0 ]] - then - #Compilation failure - # EXECUTED='no' - keep it to yes so that Jenkins - # uses it within its results - EXECUTED='yes' - PASSED='no' - STATE='0' - EXECUTIONLOG='(Not executed)' - EXECUTIONTIME='0.0' - PERFORMANCEFLOPS='0.0' - COMPILETIMERELEVANT='false' - EXECUTIONTIMERELEVANT='false' - PERFORMANCEFLOPSRELEVANT='false' - ERRORLOG='Does not compile.' - echo '-> Does not compile.' - else - #Compilation success - echo '[Executing]' $benchmark - EXECUTED='yes' - EXECUTIONLOG=$(./$benchmark 2>&1) - - if [[ ${EXECUTIONLOG} != "Time:"* ]] - then - #Execution failure - PASSED='no' - STATE='0' - EXECUTIONTIME='0.0' - PERFORMANCEFLOPS='0.0' - EXECUTIONTIMERELEVANT='false' - PERFORMANCEFLOPSRELEVANT='false' - ERRORLOG='Unexpected output.' - echo '-> Unexpected output.' - else - #Execution success - PASSED='yes' - STATE='100' - EXECUTIONTIME=$(echo $EXECUTIONLOG | cut -d' ' -f2) - PERFORMANCEFLOPS=$(echo $EXECUTIONLOG | cut -d' ' -f4) - EXECUTIONTIMERELEVANT='true' - if [[ ${PERFORMANCEFLOPS} != "Irrelevant" ]] - then - PERFORMANCEFLOPSRELEVANT='true' - else - PERFORMANCEFLOPSRELEVANT='false' - PERFORMANCEFLOPS='0.0' - fi - ERRORLOG='' - fi - fi - - echo '' >> $XMLFILE - echo 'BENCHMARK' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - - # Logs - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - - # Times - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - - echo '' >> $XMLFILE - echo '' >> $XMLFILE -done - -#========# -# Footer # -#========# - -echo '' >> $XMLFILE - -#==========# -# Epilogue # -#==========# - -echo 'Results correctly exported to' $XMLFILE - diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r.h b/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r.h deleted file mode 100644 index 22b3683fb..000000000 --- a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2014 the FFLAS-FFPACK group - * - * Written by Bastien Vialla - * - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - -/** @file fflas/fflas_fspmv_ELL_R.inl - * NO DOC - */ - -#ifndef __FFLASFFPACK_fflas_sparse_ELL_R_H -#define __FFLASFFPACK_fflas_sparse_ELL_R_H - -namespace FFLAS { /* ELL_R */ - - template struct Sparse<_Field, SparseMatrix_t::ELL_R> { - bool delayed = false; - uint64_t kmax = 0; - index_t m = 0; - index_t n = 0; - index_t ld = 0; - uint64_t nnz = 0; - uint64_t maxrow = 0; - uint64_t mRow = 0; - index_t *col = nullptr; - index_t *row = nullptr; - typename _Field::Element_ptr dat; - }; - - template - struct Sparse<_Field, SparseMatrix_t::ELL_R_ZO> - : public Sparse<_Field, SparseMatrix_t::ELL_R> { - typename _Field::Element cst = 1; - }; - - template - void fspmv(const Field &F, const Sparse &A, - typename Field::ConstElement_ptr x, - const typename Field::Element &beta, typename Field::Element_ptr y); - - template - void fspmv(const Field &F, const Sparse &A, - typename Field::ConstElement_ptr x, - const typename Field::Element &beta, typename Field::Element_ptr y); - - template - void fspmm(const Field &F, const Sparse &A, - const size_t blockSize, const typename Field::Element_ptr &x, - const int ldx, const typename Field::Element &beta, - typename Field::Element_ptr &y, const int ldy); - - template - void fspmm(const Field &F, const Sparse &A, - const size_t blockSize, const typename Field::Element_ptr &x, - const int ldx, const typename Field::Element &beta, - typename Field::Element_ptr &y, const int ldy); -} // FFLAS - -#include "fflas-ffpack/fflas/fflas_sparse/ell_r_spmv.inl" -// #include "fflas-ffpack/fflas/fflas_sparse/ell_r_spmm.inl" - -#endif // __FFLASFFPACK_fflas_sparse_ELL_R_H -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r/Makefile.am b/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r/Makefile.am deleted file mode 100644 index 5985c6665..000000000 --- a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r/Makefile.am +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (c) 2014 FFLAS-FFPACK -# written by Bastien Vialla -# -# -# ========LICENCE======== -# This file is part of the library FFLAS-FFPACK. -# -# FFLAS-FFPACK is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# ========LICENCE======== -#/ - - -pkgincludesubdir=$(pkgincludedir)/fflas/fflas_sparse/ell_r - -pkgincludesub_HEADERS= \ - ell_r_spmv.inl diff --git a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r/ell_r_spmv.inl b/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r/ell_r_spmv.inl deleted file mode 100644 index d3b66077b..000000000 --- a/deps/fflas-ffpack/fflas-ffpack/fflas/fflas_sparse/ell_r/ell_r_spmv.inl +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Copyright (C) 2014 the FFLAS-FFPACK group - * - * Written by Brice Boyer (briceboyer) - * Bastien Vialla - * - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - -#ifndef __FFLASFFPACK_fflas_sparse_ELL_R_spmv_INL -#define __FFLASFFPACK_fflas_sparse_ELL_R_spmv_INL - -namespace FFLAS{ - namespace ell_r_details{ - template - inline void fspmv(const Field & F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, FieldCategories::GenericTag){ - index_t start = 0; - for(index_t i = 0 ; i < A.mRow ; ++i, start+=A.ld){ - index_t j = 0; - typename Field::Element y1, y2, y3, y4; - F.assign(y1, F.zero); - F.assign(y2, F.zero); - F.assign(y3, F.zero); - F.assign(y4, F.zero); - for(; j < ROUND_DOWN(A.ld, 4) ; j+=4){ - F.axpyin(y1,A.dat[start+j],x[A.col[start+j]]); - F.axpyin(y2,A.dat[start+j+1],x[A.col[start+j+1]]); - F.axpyin(y3,A.dat[start+j+2],x[A.col[start+j+2]]); - F.axpyin(y4,A.dat[start+j+3],x[A.col[start+j+3]]); - } - for(; j < A.ld ; ++j){ - F.axpyin(y1,A.dat[start+j],x[A.col[start+j]]); - } - F.addin(y[A.row[i]], y1); - F.addin(y[A.row[i]], y2); - F.addin(y[A.row[i]], y3); - F.addin(y[A.row[i]], y4); - } - } - - template - inline void fspmv(const Field & F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, FieldCategories::UnparametricTag){ - index_t start = 0; - for(index_t i = 0 ; i < A.mRow ; ++i, start+=A.ld){ - index_t j = 0; - typename Field::Element y1 = 0, y2 = 0, y3 = 0, y4 = 0; - for(; j < ROUND_DOWN(A.ld, 4) ; j+=4){ - y1 += A.dat[start+j] * x[A.col[start+j]]; - y2 += A.dat[start+j+1] * x[A.col[start+j+1]]; - y3 += A.dat[start+j+2] * x[A.col[start+j+2]]; - y4 += A.dat[start+j+3] * x[A.col[start+j+3]]; - } - for(; j < A.ld ; ++j){ - y1 += A.dat[start+j] * x[A.col[start+j]]; - } - y[A.row[i]] += y1+y2+y3+y4; - } - } - - template - inline void fspmv(const Field & F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, const int64_t kmax){ - index_t start = 0; - index_t block = (A.ld)/kmax ; - for (index_t i = 0 ; i < A.mRow ; ++i, start+=A.ld) { - index_t j_loc = 0, j = 0; - for (index_t l = 0 ; l < (index_t) block ; ++l) { - j_loc += kmax ; - for ( ; j < j_loc ; ++j) { - y[A.row[i]] += A.dat[start+j] * x[A.col[start+j]]; - } - F.reduce(y[A.row[i]]); - } - for ( ; j < A.ld ; ++j) { - y[A.row[i]] += A.dat[start+j] * x[A.col[start+j]]; - } - F.reduce(y[A.row[i]]; - } - } - - template - inline void fspmv(const Field & F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, Func && func, FieldCategories::GenericTag){ - index_t start = 0; - for(index_t i = 0 ; i < A.mRow ; ++i, start+=A.ld){ - index_t j = 0; - typename Field::Element y1, y2, y3, y4; - F.assign(y1, F.zero); - F.assign(y2, F.zero); - F.assign(y3, F.zero); - F.assign(y4, F.zero); - for(; j < ROUND_DOWN(A.ld, 4) ; j+=4){ - func(y1,x[A.col[start+j]]); - func(y2,x[A.col[start+j+1]]); - func(y3,x[A.col[start+j+2]]); - func(y4,x[A.col[start+j+3]]); - } - for(; j < A.ld ; ++j){ - func(y1,x[A.col[start+j]]); - } - F.addin(y[A.row[i]], y1); - F.addin(y[A.row[i]], y2); - F.addin(y[A.row[i]], y3); - F.addin(y[A.row[i]], y4); - } - } - - template - inline void fspmv(const Field & F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, Func && func, FieldCategories::UnparametricTag){ - index_t start = 0; - for(index_t i = 0 ; i < A.mRow ; ++i, start+=A.ld){ - index_t j = 0; - typename Field::Element y1 = 0, y2 = 0, y3 = 0, y4 = 0; - for(; j < ROUND_DOWN(A.ld, 4) ; j+=4){ - func(y1,x[A.col[start+j]]); - func(y2,x[A.col[start+j+1]]); - func(y3,x[A.col[start+j+2]]); - func(y4,x[A.col[start+j+3]]); - } - for(; j < A.ld ; ++j){ - func(y1,x[A.col[start+j]]); - } - y[A.row[i]] += y1+y2+y3+y4; - } - } - }// ELL_R_details - - template - inline void fspmv(const Field& F, const Sparse & A, typename Field::ConstElement_ptr x, - const typename Field::Element & beta, typename Field::Element_ptr y){ - sparse_details::init_y(F, A.m, beta, y, typename FieldTraits::category()); - fspmv(F, A, x, y, typename FieldTraits::category()); - } - - template - inline void fspmv(const Field& F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, FieldCategories::GenericTag){ - ell_r_details::fspmv(F, A, x, y, FieldCategories::GenericTag()); - } - - template - inline void fspmv(const Field& F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, FieldCategories::UnparametricTag){ - ell_r_details::fspmv(F, A, x, y, FieldCategories::UnparametricTag()); - } - - template - inline void fspmv(const Field& F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, FieldCategories::ModularTag){ - if(A.delayed){ - ell_r_details::fspmv(F, A, x, y, FieldCategories::UnparametricTag()); - freduce(F, A.m, y, 1); - }else{ - ell_r_details::fspmv(F, A, x, y, A.kmax); - } - } - - template - inline void fspmv(const Field& F, const Sparse & A, typename Field::ConstElement_ptr x, - const typename Field::Element & beta, typename Field::Element_ptr y){ - sparse_details::init_y(F, A.m, beta, y, typename FieldTraits::category()); - fspmv(F, A, x, y, typename FieldTraits::category()); - } - - template - inline void fspmv(const Field& F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, FieldCategories::GenericTag){ - using Element = typename Field::Element; - if(A.cst == 1){ - ell_r_details::fspmv(F, A, x, y, [&F](Element & a, const Element & b){F.addin(a, b);}, FieldCategories::GenericTag()); - }else if(A.cst == -1){ - ell_r_details::fspmv(F, A, x, y, [&F](Element & a, const Element & b){F.subin(a, b);}, FieldCategories::GenericTag()); - }else{ - auto x1 = fflas_new(F, A.n, Alignment::CACHE_LINE); - fscal(F, A.n, A.cst, x, 1, x1, 1); - ell_r_details::fspmv(F, A, x, y, [&F](Element & a, const Element & b){F.addin(a, b);}, FieldCategories::GenericTag()); - fflas_delete(x1); - } - } - - template - inline void fspmv(const Field& F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, FieldCategories::UnparametricTag){ - using Element = typename Field::Element; - if(A.cst == 1){ - ell_r_details::fspmv(F, A, x, y, [](Element & a, const Element & b){a += b;}, FieldCategories::UnparametricTag()); - }else if(A.cst == -1){ - ell_r_details::fspmv(F, A, x, y, [](Element & a, const Element & b){a -= b;}, FieldCategories::UnparametricTag()); - }else{ - auto x1 = fflas_new(F, A.n, Alignment::CACHE_LINE); - fscal(F, A.n, A.cst, x, 1, x1, 1); - ell_r_details::fspmv(F, A, x, y, [](Element & a, const Element & b){a += b;}, FieldCategories::UnparametricTag()); - fflas_delete(x1); - } - } - - template - inline void fspmv(const Field& F, const Sparse & A, typename Field::ConstElement_ptr x, - typename Field::Element_ptr y, FieldCategories::ModularTag){ - fspmv(F, A, x, y, FieldCategories::UnparametricTag()); - freduce(F, A.m, y, 1); - } - - template - inline void sparse_delete(const Sparse & A){ - fflas_delete(A.dat); - fflas_delete(A.col); - } - - template - inline void sparse_delete(const Sparse & A){ - fflas_delete(A.col); - } - - template - inline void sparse_init(const Field & F, Sparse & A, - const IndexT * row, const IndexT * col, typename Field::ConstElement_ptr dat, - uint64_t rowdim, uint64_t coldim, uint64_t nnz){ - // TODO - - // A.kmax = Protected::DotProdBoundClassic(F,F.one); - // A.m = rowdim; - // A.n = coldim; - // A.nnz = nnz; - // std::vector rows(A.m, 0); - // for(uint64_t i = 0 ; i < A.nnz ; ++i) - // rows[row[i]]++; - // A.maxrow = *(std::max_element(rows.begin(), rows.end())); - // A.ld = A.maxrow; - // for(auto & x : rows) - // if(x != 0) - // A.mRow++; - - // if(A.kmax > A.maxrow) - // A.delayed = true; - - // A.col = fflas_new(A.mRow*A.ld, Alignment::CACHE_LINE); - // A.dat = fflas_new(F, rowdim*A.ld, 1, Alignment::CACHE_LINE); - - // for(size_t i = 0 ; i < rowdim*A.ld ; ++i){ - // A.col[i] = 0; - // F.assign(A.dat[i], F.zero); - // } - - // size_t currow = row[0], it = 0; - - // for(size_t i = 0 ; i < nnz ; ++i){ - // if(row[i] != currow){ - // it = 0; - // currow = row[i]; - // } - // A.col[row[i]*A.ld + it] = col[i]; - // A.dat[row[i]*A.ld + it] = dat[i]; - // ++it; - // } - } - - template - inline void sparse_init(const Field & F, Sparse & A, - const IndexT * row, const IndexT * col, typename Field::ConstElement_ptr dat, - uint64_t rowdim, uint64_t coldim, uint64_t nnz){ - // TODO - - // A.kmax = Protected::DotProdBoundClassic(F,F.one); - // A.m = rowdim; - // A.n = coldim; - // A.nnz = nnz; - // std::vector rows(A.m, 0); - // for(uint64_t i = 0 ; i < A.nnz ; ++i) - // rows[row[i]]++; - // A.maxrow = *(std::max_element(rows.begin(), rows.end())); - // A.ld = A.maxrow; - // if(A.kmax > A.maxrow) - // A.delayed = true; - - // A.col = fflas_new(rowdim*A.ld, Alignment::CACHE_LINE); - - // for(size_t i = 0 ; i < rowdim*A.ld ; ++i){ - // A.col[i] = 0; - // } - - // size_t currow = row[0], it = 0; - - // for(size_t i = 0 ; i < nnz ; ++i){ - // if(row[i] != currow){ - // it = 0; - // currow = row[i]; - // } - // A.col[row[i]*A.ld + it] = col[i]; - // ++it; - // } - } - -} // FFLAS - -#endif // __FFLASFFPACK_fflas_ELL_R_spmv_INL -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_sss.inl b/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_sss.inl deleted file mode 100644 index 09536ba55..000000000 --- a/deps/fflas-ffpack/fflas-ffpack/ffpack/ffpack_sss.inl +++ /dev/null @@ -1,539 +0,0 @@ -/* ffpack/ffpack_sss.inl - * Copyright (C) 2021 Hippolyte Signargout - * - * Written by Hippolyte Signargout - * - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - -#ifndef __FFLASFFPACK_ffpack_sss_inl -#define __FFLASFFPACK_ffpack_sss_inl - -namespace FFPACK{ - template - inline void productSSSxTS (const Field& Fi, size_t N, size_t t, size_t s, - const typename Field::Element alpha, - typename Field::ConstElement_ptr P, size_t ldp, - typename Field::ConstElement_ptr Q, size_t ldq, - typename Field::ConstElement_ptr R, size_t ldr, - typename Field::ConstElement_ptr U, size_t ldu, - typename Field::ConstElement_ptr V, size_t ldv, - typename Field::ConstElement_ptr W, size_t ldw, - typename Field::ConstElement_ptr D, size_t ldd, - typename Field::ConstElement_ptr B, size_t ldb, - const typename Field::Element beta, - typename Field::Element_ptr C, size_t ldc) - { - /* +--------+------+------+--------+--- +--+ +--+ - * | D1 | U1V2 |U1W2V3|U1W2W3V4| |B1| |C1| - * +--------+------+------+--------+--- +--+ +--+ - * | P2Q1 | D2 | U2V3 | U2W3V4 | |B2| |C2| - * alpha +--------+------+------+--------+--- +--+ + beta +--+ - * | P3R2Q1 | P3Q2 | D3 | U3V4 | |B3| |C3| - * +--------+------+------+--------+--- +--+ +--+ - * |P4R3R2Q1|P4R3Q2| P4Q3 | D4 | |B4| |C4| - * +--------+------+------+--------+--- +--+ +--+ - * | | | | | | | | | */ - - /* Block division */ - size_t kf = N/s; // Nb of full slices of dimension s - size_t rs = N%s; //size of the partial block - size_t k = rs ? kf+1 : kf; // Total number of blocks - size_t ls = (rs)? rs: s; // Size of the last block: - - /* Correspondence between matrix and table indices - * First block Last block - * D -> D_1, D + ((n - ls) * ldd) -> D_k - * P -> P_2, P + ((n - s - ls) * ldp) -> P_k - * Q -> Q_1, Q + ((n - s - ls) * ldq) -> Q_{k-1} - * R -> R_2, R + ((n - 2s - ls) * ldr) -> R_{k-1} - * U -> U_1, U + ((n - s - ls) * ldu) -> U_{k-1} - * V -> V_2, V + ((n - s - ls) * ldv) -> V_k - * W -> W_2, W + ((n - 2s - ls) * ldw) -> W_{k-1} - */ - - /* Unused space when s does not divide n: - * - * | | | | - * +---+---+ +---+---+ Code readability is preferred to efficiency: - * | D | * | | | | One could store D_last and V_last in new variables - * +---+---+ | V | * | - * | | | - * +---+---+ */ - - /************** Diagonal Blocks ************ - * C <- beta * C + alpha D B */ - for (size_t block = 0; block < kf; block++) // Full blocks - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, //Element field, no transpose - s, t, s, alpha, D + block * s * ldd, //s x s by s x t, alpha DB + beta C - ldd, B + block * s * ldb, ldb, beta, // D_block is block * s rows under D - C + block * s * ldc, ldc); - if (rs) // Last block - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, //Element field, no transpose - rs, t, rs, alpha, D + kf * s * ldd, //rs x rs by rs x t, alpha DB + beta C - ldd, B + kf * s * ldb, ldb, beta, // D_kf is kf * s rows under D - C + kf * s * ldc, ldc); - - /************ Lower Triangular Part ***********/ - typename Field::Element_ptr Temp1 = FFLAS::fflas_new(Fi, s, t); - typename Field::Element_ptr Temp2 = FFLAS::fflas_new(Fi, s, t); - if (k > 1) - /* Temp1 <- alpha * Q_1 * B_1 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - s, t, s, alpha, Q, ldq, B, ldb, Fi.zero, Temp1, t); - /* unrolling by step of 2 to avoid swapping temporaries */ - size_t bs = s; - for (size_t block = 0; (block) < kf; block+=2) - { - if ((block + 2) == k) - bs = ls; - if (((block + 2) < kf) || ((kf % 2) == 0) || rs) - { - // Step a - /* C_{block + 2} += P_{block + 2} * Temp1 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - bs, t, s, Fi.one, P + (block) * s * ldp, - ldp, Temp1, t, Fi.one, C + (block + 1) * s * ldc, ldc); - } - if (((block + 2) < kf) || ((rs) && (kf%2 == 0))) - { - /* Temp2 <- alpha * Q_{block + 2} * B_{block + 2} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - s, t, s, alpha, Q + (block + 1) * s * ldq, ldq, - B + (block + 1) * s * ldb, ldb, Fi.zero, Temp2, t); - /* Temp2 += R_{block + 2} * Temp1 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - s, t, s, Fi.one, R + (block) * s * ldr, - ldr, Temp1, t, Fi.one, Temp2, t); - if ((block + 3) == k) - bs = ls; - // Step b - /* C_{block + 3} += P_{block + 3} * Temp2 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - bs, t, s, Fi.one, P + (block + 1) * s * ldp, - ldp, Temp2, t, Fi.one, - C + (block + 2) * s * ldc, ldc); - } - /* Only needs to be done if the results is useful : - * - Not last loop with instructions - */ - if (((block + 2) < kf) && (((block + 4) < kf) || (kf%2 == 0) || rs)) - { - /* Temp1 <- alpha * Q_{block + 3} * B_{block + 3} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - s, t, s, alpha, Q + (block + 2) * s * ldq, - ldq, B + (block + 2) * s * ldb, ldb, Fi.zero, - Temp1, t); - /* Temp1 += R_{block + 3} * Temp2 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - s, t, s, Fi.one, R + (block + 1) * s * ldr, - ldr, Temp2, t, Fi.one, Temp1, t); - } - } - /*********** Upper ****************/ - /* Copy, but the other way: partial blocks are taken care of first*/ - - /* Temp1 <- alpha * V_lastv * B_lastb */ - if (kf > 1 || rs){ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, s, t, ls, alpha, - V + (k - 2) * s * ldv, ldv, B + (k - 1) * s * ldb, ldb, Fi.zero, Temp1, t); - } - /* Starting block: n - ls - s */ - for (size_t block = 0; (block + 2) < k; block+=2) // Block increases but index decreases - { - /* C_{last - 1 - Block} += U_{last' - block} * Temp1 - * last' = last - 1: the last block of U */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, s, t, s, - Fi.one, U + (k - 2 - block) * s * ldu, ldu, Temp1, t, - Fi.one, C + (k - 2 - block) * s * ldc, ldc); - /* Temp2 <- alpha * V_{last - 1 - block} * B_{last - 1 - block} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - s, t, s, alpha, V + (k - 3 - block) * s * ldv, - ldv, B + (k - 2 - block) * s * ldb, ldb, Fi.zero, Temp2, t); - /* Temp2 += W_{last - 1 - block} * Temp1 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - s, t, s, Fi.one, W + (k - 3 - block) * s * ldw, - ldw, Temp1, t, Fi.one, Temp2, t); - - /* C_{last - 2 - Block} += U_{last' - 1 - block} * Temp2 - * last' = last - 1 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, s, t, s, - Fi.one, U + (k - 3 - block) * s * ldu, ldu, Temp2, t, - Fi.one, C + (k - 3 - block) * s * ldc, ldc); - /* Only needs to be done if the results is useful : - * - Not last loop - * - Odd amount of U-blocks: C was increased an even number of times at this point - * Partial blocks are taken care of at the beginning */ - /* Check first condition depending on 'for' loop */ - if (((block + 4) < k)||((k - 1)%2)) // next loop condition passes / (k - 1) U-blocks - { - /* Temp1 <- alpha * V_{last - 2 - block} * B_{last - 2 - block} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - s, t, s, alpha, V + (k - 4 - block) * s * ldv, - ldv, B + (k - 3 - block) * s * ldb, ldb, Fi.zero, Temp1, t); - /* Temp1 += W_{last - 2 - block} * Temp2 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - s, t, s, Fi.one, W + (k - 4 - block) * s * ldw, - ldw, Temp2, t, Fi.one, Temp1, t); - } - } - if ((k - 1)%2) // Odd amount of U-blocks, could be included in the for loop but not necessary - /* C_{1} += U_{1} * Temp1 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, s, t, s, - Fi.one, U, ldu, Temp1, t, Fi.one, C, ldc); - - FFLAS::fflas_delete(Temp1); - FFLAS::fflas_delete(Temp2); - } - - template - inline void SSSToDense (const Field& Fi, size_t N, size_t s, - typename Field::ConstElement_ptr P, size_t ldp, - typename Field::ConstElement_ptr Q, size_t ldq, - typename Field::ConstElement_ptr R, size_t ldr, - typename Field::ConstElement_ptr U, size_t ldu, - typename Field::ConstElement_ptr V, size_t ldv, - typename Field::ConstElement_ptr W, size_t ldw, - typename Field::ConstElement_ptr D, size_t ldd, - typename Field::Element_ptr A, size_t lda) - { - /* +--------+------+------+--------+--- - * | D1 | U1V2 |U1W2V3|U1W2W3V4| - * +--------+------+------+--------+--- - * | P2Q1 | D2 | U2V3 | U2W3V4 | - * A = +--------+------+------+--------+--- - * | P3R2Q1 | P3Q2 | D3 | U3V4 | - * +--------+------+------+--------+--- - * |P4R3R2Q1|P4R3Q2| P4Q3 | D4 | - * +--------+------+------+--------+--- - * | | | | | - */ - - /* Block division */ - size_t kf = N/s; // Nb of full slices of dimension s - size_t rs = N%s; // Size of the partial block - size_t k = rs ? kf+1 : kf; // Total number of blocks - size_t ls = (rs)? rs: s; // Size of the last block: - /* First block Last block - * D -> D_1, D + ((n - ls) * ldd) -> D_k - * P -> P_2, P + ((n - s - ls) * ldp) -> P_k - * Q -> Q_1, Q + ((n - s - ls) * ldq) -> Q_{k-1} - * R -> R_2, R + ((n - 2s - ls) * ldr) -> R_{k-1} - * U -> U_1, U + ((n - s - ls) * ldu) -> U_{k-1} - * V -> V_2, V + ((n - s - ls) * ldv) -> V_k - * W -> W_2, W + ((n - 2s - ls) * ldw) -> W_{k-1} - */ - - /* Unused space: - * - * | | | | - * +---+---+ +---+---+ Code readability is preferred to efficiency: - * | D | * | | | | One could store D_last and V_last in new variables - * +---+---+ | V | * | - * | | | - * +---+---+ */ - - /******************* Diagonal Blocks ************** - * A <- diag (D) */ - for (size_t block = 0; block < kf; block++) // Full blocks - /* Diagonal block 'block' starts on row s*block, column s*block */ - FFLAS::fassign (Fi, s, s, D + block * s * ldd, ldd, A + block * s * (lda + 1), lda); - if (rs) // Last block - FFLAS::fassign (Fi, rs, rs, D + kf * s * ldd, ldd, A + kf * s * (lda + 1), lda); - - /************** Lower triangular part **********************/ - /* Blocks are computed row by row, by successively applying the R and Q to the P(RRR...) */ - typename Field::Element_ptr Temp1 = FFLAS::fflas_new(Fi, s, s); - typename Field::Element_ptr Temp2 = FFLAS::fflas_new(Fi, s, s); - size_t bsize; - // Loop on rows which have LT part - for (size_t row = 0; row < k - 1; row++) - { - // In the last iteration, the block may not be full - bsize = (row == k - 2)? ls: s; - /* A_{row + 2, row + 1} <- P_{row + 2} * Q_{row + 1} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - bsize, s, s, Fi.one, P + row * s * ldp, // In this loop, all blocks are s x s - ldp, Q + row * s * ldq, ldq, Fi.zero, A + (row + 1) * s * lda + row * s, lda); - if (row > 0) /* After row 2, R is also applied - * Next inner loop needs Temp1, which is first set here - * Temp1 <- P_{row + 2} * R_{row + 1} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, bsize, s, s, Fi.one, P + row * s * ldp, - ldp, R + (row - 1) * s * ldr, ldr, Fi.zero, Temp1, s); - /* unrolling by step of 2 to avoid swapping temporaries */ - for (size_t block = 1; block < row; block+=2) - { - /* A_{row + 2, row + 1 - block} <- Temp1 * Q_{row + 1 - block} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, bsize, s, s, Fi.one, Temp1, s, - Q + (row - block) * s * ldq, ldq, Fi.zero, - A + (row + 1) * s * lda + (row - block) * s, lda); - /* Temp2 <- Temp1 * R_{row + 1 - block} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, bsize, s, s, Fi.one, Temp1, - s, R + (row - 1 - block) * s * ldr, ldr, Fi.zero, Temp2, s); - /* A_{row + 2, row - block} <- Temp2 * Q_{row - block} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, bsize, s, s, Fi.one, Temp2, s, - Q + (row - block - 1) * s * ldq, ldq, Fi.zero, - A + (row + 1) * s * lda + (row - block - 1) * s, lda); - /* If necessary: - * - Not last loop - * - One more block - * -> At least one more block */ - if (block + 1 < row) - /* Temp1 <- Temp2 * R_{row - block} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, bsize, s, s, Fi.one, Temp2, - s, R + (row - block - 2) * s * ldr, ldr, Fi.zero, Temp1, s); - } - /* First column if not done already */ - if (row%2) - /* A_{row + 2, 1} <- Temp1 * Q_{1} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, bsize, s, s, Fi.one, Temp1, s, - Q, ldq, Fi.zero, A + (row + 1) * s * lda, lda); - } - /******************* Upper triangular part *****************/ - /* Symmetrically identical to the lower part (Could be merged with transposes) */ - for (size_t column = 0; column < k - 1; column++) // Loop on columns which have a W - { - // In the last iteration, the block may not be full - bsize = (column == k - 2)? ls: s; - /* A_{column + 1, column + 2} <- U_{column + 1} * V_{column + 2} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, - s, bsize, s, Fi.one, U + column * s * ldu, // In this loop, all blocks are s x s - ldu, V + column * s * ldv, ldv, Fi.zero, A + (column) * s * lda + (column + 1) * s, lda); - /* After column 2, R is also applied */ - if (column > 0) - /* Block loop needs Temp1, which is first updated here */ - /* Temp1 <- W_{column + 1} * V_{column + 2} */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, s, bsize, s, Fi.one, - W + (column - 1) * s * ldw, ldw, V + column * s * ldv, ldv, Fi.zero, Temp1, s); - /* Instructions are doubled in the loop in order to avoid using more than two temporary blocks */ - for (size_t block = 1; block < column; block+=2) - { - /* A_{column + 1 - block, column + 2} <- U_{column + 1 - block} * Temp1 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, s, bsize, s, Fi.one, - U + (column - block) * s * ldu, ldu, Temp1, s, Fi.zero, - A + (column - block) * s * lda + (column + 1) * s, lda); - /* Temp2 <- W_{column + 1 - block} * Temp1 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, s, bsize, s, Fi.one, - W + (column - 1 - block) * s * ldw, ldw, Temp1, s, Fi.zero, Temp2, s); - /* A_{column - block, column + 2} <- U_{column - block} * Temp2 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, s, bsize, s, Fi.one, - U + (column - block - 1) * s * ldu, - ldu, Temp2, s, Fi.zero, A + (column - block - 1) * s * lda + (column + 1) * s, lda); - /* If necessary: - * - Not last loop - * - One more block - * -> At least one more block */ - if (block + 1 < column) - /* Temp1 <- W_{column - block} * Temp2 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, s, bsize, s, Fi.one, - W + (column - block - 2) * s * ldw, ldw, Temp2, s, Fi.zero, Temp1, s); - } - /* First row if not done already */ - if (column%2) - /* A_{1, column + 2} <- U_{1} * Temp1 */ - fgemm (Fi, FFLAS::FflasNoTrans, FFLAS::FflasNoTrans, s, bsize, s, Fi.one, U, - ldu, Temp1, s, Fi.zero, A + (column + 1) * s, lda); - } - FFLAS::fflas_delete(Temp1); - FFLAS::fflas_delete(Temp2); - } - template - inline void DenseToSSS (const Field& Fi, size_t N, size_t s, - typename Field::Element_ptr P, size_t ldp, - typename Field::Element_ptr Q, size_t ldq, - typename Field::Element_ptr R, size_t ldr, - typename Field::Element_ptr U, size_t ldu, - typename Field::Element_ptr V, size_t ldv, - typename Field::Element_ptr W, size_t ldw, - typename Field::Element_ptr D, size_t ldd, - typename Field::ConstElement_ptr A, size_t lda) - { - /* +--------+------+------+--------+--- - * | D1 | U1V2 |U1W2V3|U1W2W3V4| - * +--------+------+------+--------+--- - * | P2Q1 | D2 | U2V3 | U2W3V4 | - * A <- +--------+------+------+--------+--- - * | P3R2Q1 | P3Q2 | D3 | U3V4 | - * +--------+------+------+--------+--- - * |P4R3R2Q1|P4R3Q2| P4Q3 | D4 | - * +--------+------+------+--------+--- - * | | | | | - */ - - /* Block division */ - size_t kf = N/s; // Nb of full slices of dimension s - size_t rs = N%s; // Size of the partial block - size_t k = rs ? kf+1 : kf; // Total number of blocks - size_t ls = (rs)? rs: s; // Size of the last block: - /* First block Last block - * D -> D_1, D + ((n - ls) * ldd) -> D_k - * P -> P_2, P + ((n - s - ls) * ldp) -> P_k - * Q -> Q_1, Q + ((n - s - ls) * ldq) -> Q_{k-1} - * R -> R_2, R + ((n - 2s - ls) * ldr) -> R_{k-1} - * U -> U_1, U + ((n - s - ls) * ldu) -> U_{k-1} - * V -> V_2, V + ((n - s - ls) * ldv) -> V_k - * W -> W_2, W + ((n - 2s - ls) * ldw) -> W_{k-1} - */ - - /* Unused space: - * - * | | | | - * +---+---+ +---+---+ Code readability is preferred to efficiency: - * | D | * | | | | One could store D_last and V_last in new variables - * +---+---+ | V | * | - * | | | - * +---+---+ */ - - /******************* Diagonal Blocks ************** - * A <- diag (D) */ - for (size_t block = 0; block < kf; block++) // Full blocks - /* Diagonal block 'block' starts on row s*block, column s*block */ - FFLAS::fassign (Fi, s, s, A + block * s * (lda + 1), lda, D + block * s * ldd, ldd); - if (rs) // Last block - FFLAS::fassign (Fi, rs, rs, A + kf * s * (lda + 1), lda, D + kf * s * ldd, ldd); - - if (N > s) // Otherwise we're done - { - size_t fs = s; - if (N - s < s) - { - fs = N - s; - FFLAS::fzero(Fi, s, s, U, ldu); // U, Q^T will only be updated on their fs first columns - FFLAS::fzero(Fi, s, s, Q, ldq); - } - - /******************* Upper triangular part *****************/ - // Temporary submatrix, copied to be pluqed - typename Field::Element_ptr H = FFLAS::fflas_new (Fi, N, N); - FFLAS::fassign (Fi, N, N, A, lda, H, N); - size_t * p = FFLAS::fflas_new (N - ls); /* - ls instead of -s so that the size remains - greater than s */ - size_t * q = FFLAS::fflas_new (N - ls); - size_t r = FFPACK::PLUQ (Fi, FFLAS::FflasNonUnit, s, N - s, H + s, N, p, q); - - // pL -> U_1 - FFPACK::getTriangular(Fi, FFLAS::FflasLower, FFLAS::FflasUnit, s, fs, r, H + s, - N, U, ldu); - FFPACK::applyP (Fi, FFLAS::FflasLeft, FFLAS::FflasTrans, - fs, 0, s, U, ldu, p); - // Uq -> V_2 - FFPACK::getTriangular(Fi, FFLAS::FflasUpper, FFLAS::FflasNonUnit, s, N - s, r, - H + s, N); // Remove L - FFPACK::applyP (Fi, FFLAS::FflasRight, FFLAS::FflasNoTrans, s, - 0, N - s, H + s, N, q); // Apply permutation q to H - FFLAS::fassign (Fi, s, fs, H + s, N, V, ldv); - - // Temporary matrix for storing lower triangular of pluq - typename Field::Element_ptr Temp = FFLAS::fflas_new (Fi, 2 * s, s); - - for (size_t brow = 0; brow < k - 2; brow++) - { - r = FFPACK::PLUQ (Fi, FFLAS::FflasNonUnit, s*(2), - N - s*(brow + 2), H + N * s * brow + s * (brow + 2), N, - p, q); - // pL -> [W_{brow + 2} \\ U_{brow + 2}] - // 1) L -> Temp - FFLAS::fzero (Fi, 2 * s, s, Temp, s); - FFPACK::getTriangular(Fi, FFLAS::FflasLower, FFLAS::FflasUnit, 2*s, - N - s * (brow + 2), r, - H + s * N * brow + s * (brow + 2), - N, Temp, s, true); - // 2) p * Temp -> Temp - FFPACK::applyP (Fi, FFLAS::FflasLeft, FFLAS::FflasTrans, s, - 0, 2*s, Temp, s, p); - // 3) Temp1 -> W_{brow + 2} - FFLAS::fassign (Fi, s, s, Temp, s, W + ldw * s * brow, ldw); - // 4) Temp2 -> U_{brow + 2} - FFLAS::fassign (Fi, s, s, Temp + s * s, s, U + ldu * s * (brow + 1), ldu); - // Uq -> [V_{brow + 3} & H] - FFPACK::getTriangular(Fi, FFLAS::FflasUpper, FFLAS::FflasNonUnit, s, N - s * (brow + 2), - r, - H + s * N * brow + s * (brow + 2), N, - H + s * N * (brow + 1) + s * (brow + 2), N); // Remove L - FFPACK::applyP (Fi, FFLAS::FflasRight, FFLAS::FflasNoTrans, s, - 0, N - s* (brow + 2), H + s * N * (brow + 1) + s * (brow + 2), N, - q); // Apply permutation q to H - FFLAS::fassign (Fi, s, s, H + s * N * (brow + 1) + s * (brow + 2), N, - V + ldv * s * (brow + 1), ldv); /* Sould not cause any trouble even if - last block*/ - } - FFLAS::fflas_delete (Temp); - - /******************* Lower triangular part *****************/ - // Does it need to be copied? It seems easier than to play with transposes - r = FFPACK::PLUQ (Fi, FFLAS::FflasNonUnit, N - s, s, H + s * N, N, p, q); - // Uq -> Q_1 [] - FFPACK::getTriangular(Fi, FFLAS::FflasUpper, FFLAS::FflasNonUnit, fs, s, r, H + s * N, - N, Q, ldq); - FFPACK::applyP (Fi, FFLAS::FflasRight, FFLAS::FflasNoTrans, fs, - 0, s, Q, ldq, q); - // pL -> [P_2 \\ H] - // Remove L - FFPACK::getTriangular(Fi, FFLAS::FflasLower, FFLAS::FflasUnit, N - s, s, r, - H + s * N, N); - // Apply permutation p to H - FFPACK::applyP (Fi, FFLAS::FflasLeft, FFLAS::FflasTrans, s, - 0, N - s, H + s * N, N, p); - FFLAS::fassign (Fi, fs, s, H + s * N, N, P, ldp); - - // Temporary matrix for storing upper triangular of pluq - typename Field::Element_ptr TempFlat = FFLAS::fflas_new (Fi, s, 2*s); - - for (size_t brow = 0; brow < k - 2; brow++) - { - r = FFPACK::PLUQ (Fi, FFLAS::FflasNonUnit, - N - s*(brow + 2), s*(2), H + N * s * (brow + 2) + s * (brow), N, - p, q); - // Uq -> [R_{brow + 2} & Q_{brow + 2}] - // 1) U -> TempFlat - FFLAS::fzero (Fi, s, 2 * s, TempFlat, 2 * s); - FFPACK::getTriangular(Fi, FFLAS::FflasUpper, FFLAS::FflasNonUnit, - N - s * (brow + 2), 2*s, r, - H + s * N * (brow + 2) + s * (brow), - N, TempFlat, 2 * s, true); - // 2) TempFlat * q -> TempFlat - FFPACK::applyP (Fi, FFLAS::FflasRight, FFLAS::FflasNoTrans, s, - 0, 2*s, TempFlat, 2 * s, q); - // 3) TempFlat_1 -> R_{brow + 2} - FFLAS::fassign (Fi, s, s, TempFlat, 2 * s, R + s * ldr * brow, ldr); - // 4) TempFlat_2 -> Q_{brow + 2} - FFLAS::fassign (Fi, s, s, TempFlat + s, 2 * s, Q + ldq * s * (brow + 1), ldq); - - // pL -> [P_{brow + 3} \\ H] - // Remove L - FFPACK::getTriangular(Fi, FFLAS::FflasLower, FFLAS::FflasUnit, N - s * (brow + 2), s, r, - H + s * N * (brow + 2) + s * (brow), N, - H + s * N * (brow + 2) + s * (brow + 1), N); - // Apply permutation p to H - FFPACK::applyP (Fi, FFLAS::FflasLeft, FFLAS::FflasTrans, s, - 0, N - s* (brow + 2), H + s * N * (brow + 2) + s * (brow + 1), N, - p); - // H -> P_{brow + 3} - FFLAS::fassign (Fi, ((brow == k - 3)? ls: s), s, H + s * N * (brow + 2) + s * (brow + 1), N, - P + ldp * s * (brow + 1), ldp); - } - FFLAS::fflas_delete (H, p, q, TempFlat); - } - } -} -#endif -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/c_libs.doxy b/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/c_libs.doxy deleted file mode 100644 index b461d51e9..000000000 --- a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/c_libs.doxy +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) 2011 FFLAS-FFPACK -// written by Brice Boyer (briceboyer) -// -// ========LICENCE======== -// This file is part of the library FFLAS-FFPACK. -// -// FFLAS-FFPACK is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// ========LICENCE======== -// - -/** \ingroup interfaces - * - * \brief C library intefaces for FFLAS-FFPACK - * - * Routines will look like their C++ counterpart : - * - * freduce(Modular,m,n, double *) - * - * becomes - * - * freduce_modular_double(p,m,n, double *,positive) - * - */ - - -// vim:syn=doxygen diff --git a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_compiled_spec.inl b/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_compiled_spec.inl deleted file mode 100644 index 25727cdc9..000000000 --- a/deps/fflas-ffpack/fflas-ffpack/interfaces/libs/ffpack_compiled_spec.inl +++ /dev/null @@ -1,80 +0,0 @@ -#include "givaro//modular-balanced.h" -#include "givaro//modular.h" -#include "fflas-ffpack/ffpack/ffpack.h" - -#define PASTER(x,y) x ## _ ## y -#define EVALUATOR(x,y) PASTER(x,y) -#define NAME(fun) EVALUATOR(fun, FFLAS_TYPE) - -#if FFLAS_FIELD == Modular -#define FFLAS_POSITIVE true -#else -#define FFLAS_POSITIVE false -#endif - -namespace FFPACK{ - template <> - size_t ColumnEchelonForm (const Givaro::FFLAS_FIELD& F, const size_t M, const size_t N, - FFLAS_TYPE* A, const size_t lda, - size_t* P, size_t* Qt, bool transform, - const FFPACK::FFPACK_LU_TAG LuTag){ - return NAME(ColumnEchelonForm_modular) (F.cardinality(), M, N, A, lda, P, Qt, transform, LuTag, FFLAS_POSITIVE); - } - template <> - size_t RowEchelonForm (const Givaro::FFLAS_FIELD& F, const size_t M, const size_t N, - FFLAS_TYPE* A, const size_t lda, - size_t* P, size_t* Qt, bool transform, - const FFPACK::FFPACK_LU_TAG LuTag){ - return NAME(RowEchelonForm_modular) (F.cardinality(), M, N, A, lda, P, Qt, transform, LuTag, FFLAS_POSITIVE); - } - template <> - size_t ReducedColumnEchelonForm (const Givaro::FFLAS_FIELD& F, const size_t M, const size_t N, - FFLAS_TYPE* A, const size_t lda, - size_t* P, size_t* Qt, bool transform, - const FFPACK::FFPACK_LU_TAG LuTag){ - return NAME(ReducedColumnEchelonForm_modular) (F.cardinality(), M, N, A, lda, P, Qt, transform, LuTag, FFLAS_POSITIVE); - } - template <> - size_t ReducedRowEchelonForm (const Givaro::FFLAS_FIELD& F, const size_t M, const size_t N, - FFLAS_TYPE* A, const size_t lda, - size_t* P, size_t* Qt, bool transform, - const FFPACK::FFPACK_LU_TAG LuTag){ - return NAME(ReducedRowEchelonForm_modular) (F.cardinality(), M, N, A, lda, P, Qt, transform, LuTag, FFLAS_POSITIVE); - } - // Parallel versions - template <> - size_t pColumnEchelonForm (const Givaro::FFLAS_FIELD& F, const size_t M, const size_t N, - FFLAS_TYPE* A, const size_t lda, - size_t* P, size_t* Qt, bool transform, - const FFPACK::FFPACK_LU_TAG LuTag){ - return NAME(pColumnEchelonForm_modular) (F.cardinality(), M, N, A, lda, P, Qt, transform, LuTag, FFLAS_POSITIVE); - } - template <> - size_t pRowEchelonForm (const Givaro::FFLAS_FIELD& F, const size_t M, const size_t N, - FFLAS_TYPE* A, const size_t lda, - size_t* P, size_t* Qt, bool transform, - const FFPACK::FFPACK_LU_TAG LuTag){ - return NAME(pRowEchelonForm_modular) (F.cardinality(), M, N, A, lda, P, Qt, transform, LuTag, FFLAS_POSITIVE); - } - template <> - size_t pReducedColumnEchelonForm (const Givaro::FFLAS_FIELD& F, const size_t M, const size_t N, - FFLAS_TYPE* A, const size_t lda, - size_t* P, size_t* Qt, bool transform, - const FFPACK::FFPACK_LU_TAG LuTag){ - return NAME(pReducedColumnEchelonForm_modular) (F.cardinality(), M, N, A, lda, P, Qt, transform, LuTag, FFLAS_POSITIVE); - } - template <> - size_t pReducedRowEchelonForm (const Givaro::FFLAS_FIELD& F, const size_t M, const size_t N, - FFLAS_TYPE* A, const size_t lda, - size_t* P, size_t* Qt, bool transform, - const FFPACK::FFPACK_LU_TAG LuTag){ - return NAME(pReducedRowEchelonForm_modular) (F.cardinality(), M, N, A, lda, P, Qt, transform, LuTag, FFLAS_POSITIVE); - } -} - -#undef FFLAS_POSITIVE -#undef PASTER -#undef EVALUATOR -#undef NAME -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/incremente-versions b/deps/fflas-ffpack/incremente-versions deleted file mode 100755 index e4abc3d24..000000000 --- a/deps/fflas-ffpack/incremente-versions +++ /dev/null @@ -1,135 +0,0 @@ -#!/bin/csh -f -# Copyright (c) 2011 FFLAS-FFPACK -# written by Brice Boyer (briceboyer) -# adapted from LinBox configuration -# -# ========LICENCE======== -# This file is part of the library FFLAS-FFPACK. -# -# FFLAS-FFPACK is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# ========LICENCE======== -#/ - - - -set conf = configure.ac -set ver = Makefile.am - -#verbatim second argument of AC_INIT -set verb = `grep ^AC_INIT $conf | cut -d',' -f2` -#removes spaces and brackets -set vern = `echo "$verb" | sed 's/ //g;s/\[//;s/\]//'` -echo "Current version is $vern." - - -echo -n "Increment library version ? (y/n)" -set answ = $< -if ("$answ" == "y") then - set line = `fgrep -n ^AC_INIT $conf | cut -d':' -f1` #gets the line - set macro = `echo "$vern" | cut -d'.' -f1` #a version number is macro.minor.micro - set minor = `echo "$vern" | cut -d'.' -f2` - set micro = `echo "$vern" | cut -d'.' -f3` - set tmpfile = `mktemp` #tempfile - set sedfile = `mktemp` #temp sed file - set pmicro = `echo $micro` - @ pmicro ++ - set pminor = `echo $minor` - @ pminor ++ - set pmacro = `echo $macro` - @ pmacro ++ - echo "Increment micro revision number ($vern -> $macro.$minor.$pmicro) ? press '0' " - echo "Increment minor revision number ($vern -> $macro.$pminor.0) ? press '1' " - echo -n "Increment macro revision number ($vern -> $pmacro.0.0) ? press '2' " - set increm = $< - switch ($increm) - case 0: - set newv = "[$macro.$minor.$pmicro]" - breaksw - case 1: - set newv = "[$macro.$pminor.0]" - breaksw - case 2: - set newv = "[$pmacro.0.0]" - breaksw - default: - set newv = "$verb" - echo "'$increm' read. Not incrementing anything." - breaksw - endsw - - #replacing [ ] and . with escaped version for sed would understand them as 'operators' - echo "$line s/$verb/$newv/" | sed 's/\./\\\./g;s/\[/\\\[/g;s/\]/\\\]/g' > $sedfile - sed -f $sedfile $conf > $tmpfile - #clean up - \rm -f $sedfile - #diff for changes - diff -u0 $conf $tmpfile - #if something was changed, confirm incrementation : - if ("$newv" != "$verb") then - echo -n "Confirmation of incrementation ? (yes/no)" - set answ = $< - set backupconf = $conf.back$$ - if ("$answ" == "yes") then - \cp -p $conf $backupconf - echo "Back-up of $conf made in $backupconf. Now overwriting $conf." - \mv -f $tmpfile $conf - else - echo "'$answ' read. Not incrementing anything." - \rm -f $tmpfile - exit 0 ; - endif - #now change Makefile accordingly - echo -n "Incrementing Makefile revision accordingly" - set tmpfile = `mktemp` #tempfile - set sedfile = `mktemp` #tempfile - switch ($increm) - case 0: - echo -n "s/VERSION.*/VERSION=$macro.$minor.$pmicro/" >> $sedfile - breaksw - case 1: - echo "s/VERSION.*/VERSION=$macro.$pminor.0/" > $sedfile - breaksw - case 2: - echo "s/VERSION.*/VERSION=$pmacro.0.0/" > $sedfile - breaksw - default: - echo "Something abnormal happened" - exit 1 - breaksw - endsw - sed -f $sedfile $ver > $tmpfile - \rm -f $sedfile - diff -u0 $ver $tmpfile - echo -n "Confirmation of incrementation ? (yes/no) " - set answ = $< - if ("$answ" == "yes") then - \mv -f $tmpfile $ver - echo " your old $conf is destroyed..." - \rm -f $backupconf - else - echo "'$answ' read. Not incrementing anything." - echo " your old $conf is restored..." - \rm -f $tmpfile - \mv -f $backupconf $conf - exit 0 - endif - - endif -else - echo "'$answ' read. Not doing anything." -endif - -exit 0 - diff --git a/deps/fflas-ffpack/macros/CodeChunk/gmp.C b/deps/fflas-ffpack/macros/CodeChunk/gmp.C deleted file mode 100644 index 4db77b32f..000000000 --- a/deps/fflas-ffpack/macros/CodeChunk/gmp.C +++ /dev/null @@ -1,6 +0,0 @@ -#include - int main () { - if (__GNU_MP_VERSION < 4) return -1; - mpz_class a(2),b(3),c(5); if ( a+b == c ) return 0; else return -1; } - - diff --git a/deps/fflas-ffpack/macros/aclocal-include.m4 b/deps/fflas-ffpack/macros/aclocal-include.m4 deleted file mode 100644 index 775e33587..000000000 --- a/deps/fflas-ffpack/macros/aclocal-include.m4 +++ /dev/null @@ -1,39 +0,0 @@ -dnl aclocal-include.m4 -dnl Copyright (c) 2011 FFLAS-FFPACK -dnl written by Brice Boyer (briceboyer) -dnl adapted from LinBox configuration -dnl -dnl ========LICENCE======== -dnl This file is part of the library FFLAS-FFPACK. -dnl -dnl FFLAS-FFPACK is free software: you can redistribute it and/or modify -dnl it under the terms of the GNU Lesser General Public -dnl License as published by the Free Software Foundation; either -dnl version 2.1 of the License, or (at your option) any later version. -dnl -dnl This library is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -dnl Lesser General Public License for more details. -dnl -dnl You should have received a copy of the GNU Lesser General Public -dnl License along with this library; if not, write to the Free Software -dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -dnl ========LICENCE======== -dnl/ - -dnl This macro adds the name macrodir to the set of directories -dnl that `aclocal' searches for macros. - -dnl serial 1 - -dnl AM_ACLOCAL_INCLUDE(macrodir) -AC_DEFUN([AM_ACLOCAL_INCLUDE], -[ - AM_CONDITIONAL(INSIDE_GNOME_COMMON, test x = y) - - test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" - - for k in $1 ; do ACLOCAL="$ACLOCAL -I $k" ; done -]) - diff --git a/deps/fflas-ffpack/macros/cuda-check.m4 b/deps/fflas-ffpack/macros/cuda-check.m4 deleted file mode 100644 index 81682b1e2..000000000 --- a/deps/fflas-ffpack/macros/cuda-check.m4 +++ /dev/null @@ -1,114 +0,0 @@ -dnl Check for CUDA -dnl Copyright(c)'1994-2009,2003,2013 by The Givaro group -dnl This file is part of FFLAS-FFPACK - -dnl ========LICENCE======== -dnl This file is part of the library FFLAS-FFPACK. -dnl -dnl FFLAS-FFPACK is free software: you can redistribute it and/or modify -dnl it under the terms of the GNU Lesser General Public -dnl License as published by the Free Software Foundation; either -dnl version 2.1 of the License, or (at your option) any later version. -dnl -dnl This library is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -dnl Lesser General Public License for more details. -dnl -dnl You should have received a copy of the GNU Lesser General Public -dnl License along with this library; if not, write to the Free Software -dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -dnl ========LICENCE======== -dnl/ - - -dnl Modified by Pascal Giorgi, 2003-12-03 -dnl Modified by BB, 2013-5-22 and other times - -dnl Test for CUDA -dnl Sets CUDA_CFLAGS and CUDA_LIBS -dnl Defines HAVE_CUDA - -AC_DEFUN([FF_CHECK_CUDA], [ - - AC_ARG_WITH(cuda, - [AC_HELP_STRING([--with-cuda=|yes|no],[ - Use CUDA library. - If argument is no, you do not have the library installed on your machine. - If argument is yes or that means the library is reachable with the standard - search path "/usr" or "/usr/local" (set as default). - Otherwise you give the to the directory which contain the library. - ])], - [if test "$withval" = yes ; then - CUDA_HOME_PATH="${DEFAULT_CHECKING_PATH}" - elif test "$withval" != no ; then - CUDA_HOME_PATH="$withval ${DEFAULT_CHECKING_PATH}" - fi], - [CUDA_HOME_PATH="${DEFAULT_CHECKING_PATH}"]) - - min_cuda_version=ifelse([$1], ,5.5.0,$1) - - dnl Check for existence - -BACKUP_CXXFLAGS=${CXXFLAGS} -BACKUP_LIBS=${LIBS} - -AC_MSG_CHECKING(for CUDA >= $min_cuda_version ) - -dnl todo lib (32) and lib64. -CUDA_PATH= -for CUDA_HOME in ${CUDA_HOME_PATH} -do - if test "x$CUDA_HOME" != "x/usr" -a "x$CUDA_HOME" != "x/usr/local"; then - if test -r "$CUDA_HOME/include/cuda.h" ; then - CUDA_CFLAGS="-I${CUDA_HOME}/include" - CUDA_PATH="-L${CUDA_HOME}/lib64" - CUDA_LIBS="-L${CUDA_HOME}/lib64 -lcusparse" - else - echo "($CUDA_HOME) seems an invalid CUDA prefix" - echo "Searching CUDA in PATH" - CUDA_CFLAGS="" - CUDA_LIBS="-lcusparse" - fi - else - CUDA_CFLAGS="" - CUDA_LIBS="-lcusparse" - fi - - CXXFLAGS="${CXXFLAGS} ${CUDA_CFLAGS}" - LIBS="${LIBS} ${CUDA_LIBS}" - CODE_CUDA=`cat macros/CodeChunk/cuda.C` - - AC_TRY_LINK( - [ - #include - ], - [ CUresult a;], - [ - dnl # See if we are running CUDA 4.0 with --enable-cxx - AC_MSG_RESULT(found) - AC_DEFINE(HAVE_CUDA,1,[Define if CUDA is installed]) - - dnl CUDA_VERSION="" dnl I could find it but why is it here ? - CUDA_LIBS="${CUDA_PATH} -lcusparse" - dnl AC_SUBST(CUDA_VERSION) - AC_SUBST(CUDA_LIBS) - AC_SUBST(CUDA_CFLAGS) - break; - ],[ - AC_MSG_RESULT(unknown) - echo "WARNING: You appear to be cross compiling, so there is no way to determine" - echo "whether your CUDA version is new enough. I am assuming it is." - AC_SUBST(CUDA_CFLAGS) - AC_SUBST(CUDA_LIBS) - AC_DEFINE(HAVE_CUDA,1,[Define if CUDA is installed]) - ]) - unset CUDA_CFLAGS - unset CUDA_LIBS -done - -CXXFLAGS=${BACKUP_CXXFLAGS} -LIBS=${BACKUP_LIBS} -#unset LD_LIBRARY_PATH - -]) diff --git a/deps/fflas-ffpack/tests/Makefile.template b/deps/fflas-ffpack/tests/Makefile.template deleted file mode 100644 index 535e7a72d..000000000 --- a/deps/fflas-ffpack/tests/Makefile.template +++ /dev/null @@ -1,48 +0,0 @@ -#---------------------------------------------------------- -# Parameters to be configured by the user - -# root for the blas library, for ex. /home/foo/ATLAS/lib/Linux_P4SSE2 -BLASROOT = - -# ATLAS BLAS users : uncomment these lines: -#CXXFLAGS+=-D__LINBOX_HAVE_CBLAS -#LOADLIBES+=-L${BLASROOT} -lcblas -latlas - -# GotoBlas BLAS users : uncomment this line: -#LOADLIBES+=-L${BLASROOT} -lgoto - -# Other BLAS users, uncomment this line: -#LOADLIBES+=-L${BLASROOT} -lcblas - -# architecture parameter for gcc: -#ARCH = -march=pentium3 -#ARCH = -march=pentium4 -#ARCH = -march=athlon -#ARCH = -march=opteron -#ARCH = -m64 -mtune=k8 - -# Givaro/GMP root (only necessary for compiling the regression tests testeur_fgemm, testeur_lqup and testeur_ftrsm) -#GIVARO_ROOT= -#GMP_ROOT= -#INCLUDES+= -I ${GIVARO_ROOT}/include -I ${GMP_ROOT}/include -#LOADLIBES+= -L ${GIVARO_ROOT}/lib -lgivaro -L ${GMP_ROOT}/lib -lgmp -lgmpxx - -#---------------------------------------------------------- - -OPTFLAGS+=-O3 -#OPTFLAGS+=-g -OPTFLAGS+= ${ARCH} - -CXXFLAGS+=${OPTFLAGS} - -INCLUDES+=-I. -I../include - - -CXX=g++ ${INCLUDES} - -all: test-fgemm test-invert test-det test-rank test-charpoly test-lqup test-nullspace dense_generator - -regression: testeur_fgemm testeur_lqup testeur_ftrsm - -clean: - rm -f test-fgemm test-fgemv test-invert test-det test-rank test-charpoly test-lqup dense_generator testeur_fgemm testeur_lqup testeur_ftrsm diff --git a/deps/fflas-ffpack/tests/jenkins-maker.sh b/deps/fflas-ffpack/tests/jenkins-maker.sh deleted file mode 100755 index 4f3f33993..000000000 --- a/deps/fflas-ffpack/tests/jenkins-maker.sh +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/bash -# This file is part of the FFLAS-FFPACK library. -# It is distributed under the terms of the LGPL licence version 2.1 or later -# (see COPYING) -# Created by AB - 2014/12/03 -# Modified by AC - 2016/06/20 -# Modified by CP - 2016/06/22 -# Some influential environment variables: -# CXX C++ compiler command -# CXXFLAGS C++ compiler flags - -# Note: This script is intended to be launched -# by the Jenkins web interface whenever it needs -# to compile the project. -# It is launched from the svn:trunk root directory. -# But should be stored in //makers/ - -SOURCE_DIRECTORY=$( cd "$( dirname "$0" )" && pwd ) - -#=============================# -# Change only these variables # -#=============================# -ARCH=`pwd | awk -F/ '{print $(NF-2)}'` -CXX=`pwd | awk -F/ '{print $(NF)}'` -#SSE=`pwd | awk -F/ '{print $NF}'` - -JENKINS_DIR=${SOURCE_DIRECTORY%%/workspace/*} -LOCAL_DIR="$JENKINS_DIR"/local -# Add path to compilers (if needed) -export PATH=$PATH:/usr/local/bin:"$LOCAL_DIR/$CXX/bin" -echo "PATH = ${PATH}" - -# Where are blas installed (/lib/.so) -# And their name (libtotoblas) -BLAS_HOME="$LOCAL_DIR/$CXX" -BLAS_NAME=openblas - -# Change these if necessary - -if [ "$ARCH" == "linbox-osx" ]; then - BLAS_LIBS="-framework Accelerate" -else - BLAS_LIBS="-L$BLAS_HOME/lib/ -l$BLAS_NAME" -fi - -# Where to install fflas-ffpack binaries -# Keep default for local installation. -PREFIX_INSTALL="$LOCAL_DIR/$CXX" - -# Add specific locations (if needed) -export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":/usr/local/lib:"$LOCAL_DIR/$CXX/lib":"$PREFIX_INSTALL"/lib -echo "LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}" -export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:"$LOCAL_DIR/$CXX/lib/pkgconfig" -echo "PKG_CONFIG_PATH = ${PKG_CONFIG_PATH}" - -#================# -# Setup Variables# -#================# - -if [ "$CXX" == "icpc" ]; then - distribution=`uname -m` - CC=icc - if [ "$distribution" == "i686" ]; then - source /usr/local/bin/compilervars.sh ia32 - else - source /usr/local/bin/compilervars.sh intel64 - fi -fi - -# Particular case for Fedora: g++-6 <- g++ -if [[ "$ARCH" == "linbox-fedora-amd64" && "$CXX" == "g++-6" ]]; then - CXX="g++" - CC=gcc -fi -if [[ "$ARCH" == "linbox-fedora-amd64" ]]; then - BLAS_LIBS="-L/usr/lib64/atlas -lsatlas" -fi -if [ -z "$CC" ]; then - if [[ $CXX == g++* ]]; then - CC=`echo $CXX | sed -re 'y/++/cc/'` - else - CC="clang" - fi -fi - -# /!\ Warning /!\ This could be an issue if you changed -# the local installation directory -rm -rf "$PREFIX_INSTALL"/bin/fflas-ffpack* "$PREFIX_INSTALL"/include/fflas-ffpack* - -#==================================# -# Automated installation and tests # -#==================================# - -echo "|=== JENKINS AUTOMATED SCRIPT ===| ./autogen.sh CXX=$CXX CC=$CC --prefix=$PREFIX_INSTALL --with-blas-libs=$BLAS_LIBS --enable-precompilation" -./autogen.sh CXX=$CXX CC=$CC --prefix="$PREFIX_INSTALL" --with-blas-libs="$BLAS_LIBS" --enable-precompilation -V="$?"; if test "x$V" != "x0"; then exit "$V"; fi - -echo "|=== JENKINS AUTOMATED SCRIPT ===| make autotune" -make autotune -V="$?"; if test "x$V" != "x0"; then exit "$V"; fi - -echo "|=== JENKINS AUTOMATED SCRIPT ===| make install" -make install -V="$?"; if test "x$V" != "x0"; then exit "$V"; fi - -echo "|=== JENKINS AUTOMATED SCRIPT ===| make perfpublisher" -make perfpublisher - - diff --git a/deps/fflas-ffpack/tests/perfpublisher.sh b/deps/fflas-ffpack/tests/perfpublisher.sh deleted file mode 100755 index 40ed46d59..000000000 --- a/deps/fflas-ffpack/tests/perfpublisher.sh +++ /dev/null @@ -1,171 +0,0 @@ -#!/bin/bash -# Script to format tests results into a single xml file. -# See https://wiki.jenkins-ci.org/display/JENKINS/PerfPublisher+Plugin -# ----- -# 2014/11/17 - Written by AB - -XMLFILE=$1 -tests=$2 -COMPILER=$3 - -# choose gdate on OS X -if command -v "gdate" >/dev/null; then - DATE=gdate -else - DATE=date -fi - -#=================# -# Plateform infos # -#=================# - -COMPILERVERSION=$($COMPILER --version 2>&1 | head -1) - -if command -v "lscpu" >/dev/null; then - CPUFREQ=$(lscpu | grep "MHz" | rev | cut -f1 -d' ' | rev) -else - CPUFREQ=$((`sysctl -n hw.cpufrequency`/1000000)) -fi - -ARCH=$(uname -m) -OSNAME=$(uname -s) -OSVERSION=$(uname -r) - -if hash lsb_release 2>/dev/null - then DISTRIB=$(lsb_release -ds) - else DISTRIB='Unknown distribution' -fi - -#==========# -# Prologue # -#==========# - -if [[ -f $XMLFILE ]] -then - echo '----> WARNING: File '$XMLFILE' is not empty.' - echo '----> Results will be added to its end.' -fi - -#========# -# Header # -#========# - -echo '' >> $XMLFILE -echo '' >> $XMLFILE - -#=======# -# Start # -#=======# - -echo '' >> $XMLFILE -echo '' >> $XMLFILE -echo '' >> $XMLFILE - -#=======# -# Tests # -#=======# - -for test in $tests -do - if [[ ! -f $test ]] - then - #File does not exist: compile it - echo '[Compiling]' $test - COMPILESTART=$($DATE +%s%3N) - COMPILELOG=$(make $test 2>&1; echo 'Returned state: '$?) - COMPILEEND=$($DATE +%s%3N) - COMPILETIME=$(($COMPILEEND - $COMPILESTART)) - COMPILECHECK=$(echo $COMPILELOG | grep -o '[^ ]*$') - COMPILETIMERELEVANT='true' - else - #File does exist - echo '[Already compiled]' $benchmark - COMPILELOG='(Previously compiled)' - COMPILETIME='0.0' - COMPILECHECK='0' - COMPILETIMERELEVANT='false' - fi - - if [[ $COMPILECHECK -ne 0 ]] - then - #Compilation failure - # EXECUTED='no' - keep it to yes so that Jenkins - # uses it within its results - EXECUTED='yes' - PASSED='no' - STATE='0' - EXECUTIONLOG='(Not executed)' - EXECUTIONTIME='0.0' - COMPILETIMERELEVANT='false' - EXECUTIONTIMERELEVANT='false' - ERRORLOG='Does not compile.' - echo '-> Does not compile.' - else - #Compilation success - echo '[Executing]' $test - EXECUTED='yes' - EXECUTIONSTART=$($DATE +%s%3N) - EXECUTIONLOG=$(./$test 2>&1; echo 'Returned state: '$?) - EXECUTIONEND=$($DATE +%s%3N) - EXECUTIONTIME=$(($EXECUTIONEND - $EXECUTIONSTART)) - EXECUTIONCHECK=$(echo $EXECUTIONLOG | grep -o '[^ ]*$') - - if [[ $EXECUTIONCHECK -ne 0 ]] - then - #Execution failure - PASSED='no' - STATE='0' - EXECUTIONTIMERELEVANT='false' - ERRORLOG='Execution failure.' - echo '-> Execution failure.' - else - #Execution success - PASSED='yes' - STATE='100' - EXECUTIONTIMERELEVANT='true' - ERRORLOG='' - fi - fi - - echo '' >> $XMLFILE - echo 'TEST' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - - # Logs - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - echo '' >> $XMLFILE - - # Times - echo '' >> $XMLFILE - echo '' >> $XMLFILE - - echo '' >> $XMLFILE - echo '' >> $XMLFILE -done - -#========# -# Footer # -#========# - -echo '' >> $XMLFILE - -#==========# -# Epilogue # -#==========# - -echo 'Results correctly exported to' $XMLFILE - diff --git a/deps/fflas-ffpack/tests/test-bini-p.C b/deps/fflas-ffpack/tests/test-bini-p.C deleted file mode 100644 index a160b3db5..000000000 --- a/deps/fflas-ffpack/tests/test-bini-p.C +++ /dev/null @@ -1,2453 +0,0 @@ -/* - * Copyright (C) 2015 the FFLAS-FFPACK group - * Written by Brice Boyer (briceboyer) - * - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - * - */ - - -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/fflas/fflas.h" -#include "fflas-ffpack/fflas-ffpack-config.h" -#include "fflas-ffpack/utils/test-utils.h" -#include "assert.h" -#include "fflas-ffpack/utils/args-parser.h" -#include "fflas-ffpack/utils/flimits.h" - -#include - -// using namespace FFPACK; -#define NEWWINO -// #define NOTRANDOM -// -#define DIVIDE_INTO(x,y) (((x) + (y) - 1)/(y)) - -const int algos = 6 ; -const int algos_k = 2 ; - -using Givaro::Modular; -using Givaro::ModularBalanced; -using Givaro::Timer; -using FFLAS::FieldTraits; -typedef std::vector time_v ; -typedef std::vector int_v ; - -const int selec[] = { - 0 - ,1 - ,2 - ,3 - ,4 - ,5 -}; - -const int selec_k[] = { - 0 - ,1 -}; - -const char * descr[] = { - "322 low mem" - , "322 first 1" - , "322 4 tmp " - , "223 low mem" - , "232 first 1" - , "232 all tmp" - , "comp left " - , "comp right " - // , "322 sqrt " -}; - -const char * descr_k[] = { - "comp left " - , "comp right " -}; - -namespace FFLAS { /* compression */ - - template - struct Packer ; - - template<> - struct Packer { - uint64_t bits = (limits::digits()/2) ; - double base = (double) (1_ui64 << bits) ; - uint64_t mask = (1_ui64 << bits) - 1_ui64 ; - - template - void accu(double * p, T * w) { - *p *= base ; - *p += (double)*w ; - } - } ; - - - /* ****** */ - /* pack */ - /* ****** */ - - /* pack nb words (a,b,c) -> [a|b|c] */ - template - void pack_word( pack_T * packed, - const wide_T * words, int32_t stride, - Packer & packer) ; - - - template - void pack_word/**/( double * packed, - const wide_T * words, int32_t stride, - Packer & packer) - { - // std::cout << "pack " << *words << '+' << *(words+stride) << " * " << (uint64_t) packer.base << " = "; - // words += stride ; - *packed = (double) *words ; - words += stride ; - packer.accu(packed,words); - // std::cout << (uint64_t) *packed << std::endl; - } - - /* pack nb words (a,b) -> [a|b|0] filling with zeros */ - template - void pack_word_part( pack_T * packed, int32_t nb, - const wide_T * words, int32_t stride, - Packer & packer) ; - - template - void pack_word_part/* */( double * packed, int32_t nb, - const wide_T * words, int32_t stride, - Packer & packer) - { - assert(nb == 1); - *packed = (double) *words ; - // words += stride ; - // packer.accu(packed,words); - *packed *= packer.base ; - } - - /* ****** */ - /* unpack */ - /* ****** */ - - template - void unpack_word( wide_T * words, int32_t stride, - const pack_T * packed, - Packer & packer); - - template - void unpack_word/* */( wide_T * words, int32_t stride, - const double * packed, - Packer & packer) - { - uint64_t pck = (uint64_t) *packed ; - words += stride ; - *words = (double) (pck & packer.mask) ; - words -= stride ; - pck >>= packer.bits ; - *words = (double) pck /* & packer.mask */ ; - } - - - template - void unpack_word_part( wide_T * words, int32_t stride, - const pack_T * packed, int32_t nb, - Packer & packer); - - template - void unpack_word_part/* */( wide_T * words, int32_t stride, - const double * packed, int32_t nb, - Packer & packer) - { - assert(nb == 1); - words += stride ; - *words = 0 ; - words -= stride ; - uint64_t pck = (uint64_t) *packed ; - pck >>= packer.bits ; - *words = (double)pck /* & packer.mask */ ; - } - - /* ****** */ - /* pack */ - /* ****** */ - - template - void pack_matrix( pack_T * packed, int32_t row_p, int32_t col_p, int32_t ldm_p, - const wide_T * elemts, int32_t row_e, int32_t col_e, int32_t ldm_e, - Packer & packer) - { - if (row_packed == true) { - for (int32_t i = 0 ; i < row_e ; i++ ) { - const wide_T * e_p = elemts + i * ldm_e ; - pack_T * p_p = packed + i * ldm_p ; - int32_t j = 0 ; - for ( ; j < col_e/Nb*Nb ; j+=Nb, e_p+=Nb, p_p++) { - pack_word(p_p,e_p,1,packer); - - } - if (j < col_e) - pack_word_part(p_p,col_e-j,e_p,1,packer); - } - } - else { /* col_packed */ - int32_t i = 0 ; - int32_t ii = 0 ; - for ( ; i < row_e/Nb*Nb ; i += Nb , ii++) { - const wide_T * e_p = elemts + i * ldm_e ; - pack_T * p_p = packed + ii * ldm_p ; - for (int32_t j = 0 ; j < col_e ; j++, e_p++, p_p++) { - pack_word(p_p,e_p,ldm_e,packer); - - } - } - if (i < row_e) - pack_word_part(packed+i*ldm_p,row_e-i,elemts+ii*ldm_e,ldm_e,packer); - - } - } - - /* ****** */ - /* unpack */ - /* ****** */ - - template - void unpack_matrix( wide_T * elemts, int32_t row_e, int32_t col_e, int32_t ldm_e, - const pack_T * packed, int32_t row_p, int32_t col_p, int32_t ldm_p, - Packer & packer) - { - if (row_packed == true) { - for (int32_t i = 0 ; i < row_e ; i++ ) { - wide_T * e_p = elemts + i * ldm_e ; - const pack_T * p_p = packed + i * ldm_p ; - int32_t j = 0 ; - for ( ; j < col_e/Nb*Nb ; j+=Nb, e_p+=Nb, p_p++) { - unpack_word(e_p,1,p_p,packer); - - } - if (j < col_e) - unpack_word_part(e_p,1,p_p,col_e-j,packer); - } - } - else { /* col_packed */ - int32_t i = 0 ; - int32_t ii = 0 ; - for ( ; i < row_e/Nb*Nb ; i += Nb , ii++) { - wide_T * e_p = elemts + i * ldm_e ; - const pack_T * p_p = packed + ii * ldm_p ; - for (int32_t j = 0 ; j < col_e ; j++, e_p++, p_p++) { - unpack_word(e_p,ldm_e,p_p,packer); - - } - } - if (i < row_e) - unpack_word_part(elemts+i*ldm_e,ldm_e,packed+ii*ldm_p,row_e-i,packer); - - } - } - - /* compress A */ - template - void - fgemm_compressed(const Field & F, - int m, int n, int k, - const typename Field::Element * A, int lda, - const typename Field::Element * B, int ldb, - typename Field::Element * C, int ldc - ) - { - Givaro::ZRing NoField; - double * A_k, * B_k, * C_k ; - - typedef typename Field::Element elem_t ; - Packer packer ; - - int m_k = m , n_k = n , lda_k = lda, ldb_k = ldb, ldc_k = ldc ; - if (left_compress) { - m_k = DIVIDE_INTO(m,2)*2 ; - lda_k = m_k ; - ldc_k = n ; - - A_k = FFLAS::fflas_new(m_k*k) ; - //!@bug don't zero all, just the "border" - FFLAS::fzero(NoField,m_k,k,A_k,k); - - B_k = const_cast(B) ; - - pack_matrix(A_k,m_k,k,lda_k, - A,m,k,lda, - packer); - } - else { - n_k = DIVIDE_INTO(n,2)*2 ; - ldb_k = n_k ; - ldc_k = n_k ; - - A_k = const_cast(A) ; - B_k = FFLAS::fflas_new(k*n_k) ; - //!@bug don't zero all, just the "border" - FFLAS::fzero(NoField,k,n_k,B_k,n_k); - - pack_matrix(B_k,k,n_k,ldb_k, - B,k,n,ldb, - packer); - } - - C_k = FFLAS::fflas_new(m_k*n_k) ; - //!@bug don't zero all, just the "border" - FFLAS::fzero(NoField,m_k,n_k,C_k,n_k); - - pack_matrix(C_k,m_k,n_k,ldc_k, - C,m,n,ldc, - packer); - -#if 0 - double * C_e = FFLAS::fflas_new(m*ldc); - unpack_matrix(C_e,m,n,ldc, - C_k,m_k,n_k,ldc_k, - packer); - - int faux = 0 ; - for (int i = 0 ; i < m ; ++i) { - for (int j = 0 ; j < n ; ++j) { - if (! (C[i*ldc+j] == C_e[i*ldc+j]) ) { - ++faux ; - } - } - } - if (faux) { - std::cout << "bad pack/unpack ; bad/all = " << faux << '/' << m*n << " ~~ " << (double)faux/(double)(m*n) << std::endl; - } - - if (faux && (n<20)) { - std::cout << "IN " << std::endl; - for (int i = 0 ; i < m ; ++i) { - for (int j = 0 ; j < n ; ++j) - std::cout << C[i*ldc+j] << ' '; - std::cout << std::endl; - } - std::cout << "OUT" << std::endl; - for (int i = 0 ; i < m ; ++i) { - for (int j = 0 ; j < n ; ++j) - std::cout << C_e[i*ldc+j] << ' '; - std::cout << std::endl; - } - - - } - - if (faux) - exit(-1); -#endif - - - - - Givaro::DoubleDomain G ; - - fgemm(G,FFLAS::FflasNoTrans,FFLAS::FflasNoTrans, - m_k,n_k,k, 1, A_k,lda_k, B_k,ldb_k, 0, C_k, ldc_k); - - // cblas_dgemm(CblasRowMajor, CblasNoTrans,CblasNoTrans, - // m_k,n_k,k, 1, A_k,lda_k, B_k,ldb_k, 0, C_k, ldc_k); - - - unpack_matrix(C,m,n,ldc, - C_k,m_k,n_k,ldc_k, - packer); - - if (left_compress) - FFLAS::fflas_delete(A_k); - else - FFLAS::fflas_delete(B_k); - FFLAS::fflas_delete(C_k); - } - -} - -namespace FFLAS { /* tools */ - - - template - void finit_fuzzy(Field & F, size_t m, size_t n, double * C, size_t ldc) - { - - - if (n == ldc) - // FFLAS::vectorised::modp(C,C,m*n,p,invp,0,p-1); - FFLAS::vectorised::modp(F,C,m*n,C); - else - for (size_t i = 0 ; i < m ; ++i) - // FFLAS::vectorised::modp(C+i*ldc,C+i*ldc,n,p,invp,0,p-1); - FFLAS::vectorised::modp(F,C+i*ldc,n,C+i*ldc); - } - - - // C = a*A + B - void add(const size_t m, const size_t n, - double a, - const double *A, const size_t lda, - const double *B, const size_t ldb, - double *C, const size_t ldc) - { - const double *Ai = A,*Bi = B; - double *Ci = C; - for (;Ai < A+m*lda ; Ai+=lda,Bi+=ldb,Ci+=ldc) - for (size_t j = 0 ; j < n ; ++j) - Ci[j] = a * Ai[j] + Bi[j]; - } - - // C = C-(A+B) - void subadd(const size_t m, const size_t n, - const double *A, const size_t lda, - const double *B, const size_t ldb, - double *C, const size_t ldc) - { - const double *Ai = A,*Bi = B; - double *Ci = C; - for (;Ai < A+m*lda ; Ai+=lda,Bi+=ldb,Ci+=ldc) - for (size_t j = 0 ; j < n ; ++j) { - Ci[j] = Ci[j] - Ai[j] - Bi[j] ; - } - - } - - // C = -(A+B) - void negadd(const size_t m, const size_t n, - const double *A, const size_t lda, - const double *B, const size_t ldb, - double *C, const size_t ldc) - { - const double *Ai = A,*Bi = B; - double *Ci = C; - for (;Ai < A+m*lda ; Ai+=lda,Bi+=ldb,Ci+=ldc) - for (size_t j = 0 ; j < n ; ++j) { - Ci[j] = - Ai[j] - Bi[j] ; - } - - } - - - // C = C+A-B - void addsub(const size_t m, const size_t n, - const double *A, const size_t lda, - const double *B, const size_t ldb, - double *C, const size_t ldc) - { - const double *Ai = A,*Bi = B; - double *Ci = C; - for (;Ai < A+m*lda ; Ai+=lda,Bi+=ldb,Ci+=ldc) - for (size_t j = 0 ; j < n ; ++j) { - Ci[j] = Ci[j] + Ai[j] - Bi[j] ; - } - - } - - - // C = (C+B)/e - template - void addscalinf(const Field & F, const size_t m, const size_t n, - const double *B, const size_t ldb, - double e, - double *C, const size_t ldc) - { - const double * Bi = B; - double * Ci = C; - for (;Bi < B+m*ldb ; Ci+=ldc, Bi += ldb) - for (size_t j = 0 ; j < n ; ++j) - Ci[j]= (Ci[j]+Bi[j])*e ; - // F.init( Ci[j], (Ci[j]+Bi[j])/e ); - - } - - // C = (C-B)/e - template - void subscalinf(const Field & F, const size_t m, const size_t n, - const double *B, const size_t ldb, - double e, - double *C, const size_t ldc) - { - const double * Bi = B; - double * Ci = C; - for (;Bi < B+m*ldb ; Ci+=ldc, Bi += ldb) - for (size_t j = 0 ; j < n ; ++j) - Ci[j]= (Ci[j]-Bi[j])*e ; - // F.init( Ci[j], (Ci[j]-Bi[j])/e ); - - } - - // C = (D-B)/e - template - void subscal(const Field & F, const size_t m, const size_t n, - const double *D, const size_t ldd, - const double *B, const size_t ldb, - double e, - double *C, const size_t ldc) - { - const double * Bi = B; - const double * Di = D; - double * Ci = C; - for (;Bi < B+m*ldb ; Ci+=ldc, Bi += ldb, Di += ldd) - for (size_t j = 0 ; j < n ; ++j) - Ci[j] = (Di[j]-Bi[j])*e ; - - } - - // C = (D+B)/e - template - void addscal(const Field & F, const size_t m, const size_t n, - const double *D, const size_t ldd, - const double *B, const size_t ldb, - double e, - double *C, const size_t ldc) - { - const double * Bi = B; - const double * Di = D; - double * Ci = C; - for (;Bi < B+m*ldb ; Ci+=ldc, Bi += ldb, Di += ldd) - for (size_t j = 0 ; j < n ; ++j) - Ci[j] = (Di[j]+Bi[j])*e ; - - } - - // C = C + (D-B)/e - template - void subscalacc(const Field & F, const size_t m, const size_t n, - const double *D, const size_t ldd, - const double *B, const size_t ldb, - double e, - double *C, const size_t ldc) - { - const double * Bi = B; - const double * Di = D; - double * Ci = C; - for (;Bi < B+m*ldb ; Ci+=ldc, Bi += ldb, Di += ldd) - for (size_t j = 0 ; j < n ; ++j) - Ci[j] += (Di[j]-Bi[j])*e ; - - } - -#ifndef TRE - // #ifndef NDEBUG - // #define TRE 1 - // #else -#define TRE (size_t)(__FFLASFFPACK_WINOTHRESHOLD) - // #define TRE (size_t)(__FFLASFFPACK_WINOTHRESHOLD*0.9) - // #endif -#endif - template - double * gemm_fflas(const Field & F, - const size_t m, const size_t n, const size_t k, - const double *A, size_t lda, - const double *B, size_t ldb, - double * C, size_t ldc, - int rec = 0) - { - Givaro::DoubleDomain R; - FFLAS::fgemm(R, - FFLAS::FflasNoTrans,FFLAS::FflasNoTrans, - m,n,k, - 1, - A,lda, B,ldb, - 0, - C, ldc); - - // cblas_dgemm(CblasRowMajor, CblasNoTrans,CblasNoTrans, - // m,n,k,1,A,lda,B,ldb,0,C,ldc); - - return C; - } -} // FFLAS - -namespace FFLAS { namespace Protected { namespace Rec { - - // Field must be Givaro::Modular - template - double * - gemm_bini_322_0(const Field & F - , const size_t m - , const size_t n - , const size_t k - , const double *A , const size_t lda - , const double *B , const size_t ldb - , double *C , const size_t ldc - , int rec - , const double & epsilon - ) - { - Givaro::ZRing NoField; - // const double p = (double)F.characteristic(); - size_t M = (n>m)?std::min(k,m):std::min(k,n); - // std::cout << rec << ',' << M << std::endl; - // Field G(p*p); - - if ( M < TRE || rec <= 0) { - return gemm_fflas(F, m,n,k, A,lda, B,ldb, C, ldc); - } - - assert(k/2*2==k); // k divisible par 2 - assert(n/2*2==n); // n divisible par 2 - assert(m/3*3==m); // m divisible par 3 - - - size_t n2 = n/2; - size_t k2 = k/2; - size_t m3 = m/3; - - // std::cout << "€ = " << epsilon << std::endl; - - // sub matrices in A - const double * A11 = A; - const double * A12 = A +k2; - const double * A21 = A +lda*m3; - const double * A22 = A21 +k2; - const double * A31 = A21 +lda*m3; - const double * A32 = A31 +k2; - - // sub matrices in C - double * C11 = C; - double * C12 = C +n2; - double * C21 = C +ldc*m3; - double * C22 = C21 +n2; - double * C31 = C21 +ldc*m3; - double * C32 = C31 +n2; - - // sub matrices in B - const double * B11 = B; - const double * B12 = B +n2; - const double * B21 = B +ldb*k2; - const double * B22 = B21 +n2; - - FFLAS::fzero(NoField,m,n,C,ldc); - - /* - * Algo : - * S1 := A11 +A22; - * S4 := e*A12+A22; - * S5 := A11 +e*A12; - * S6 := A21 +A32; - * S9 := A21 +e*A31; - * S10 := e*A31+A32; - * - * T1 := e*B11 +B22; - * T2 := B21 +B22; - * T4 := -e*B11+B21; - * T5 := e*B12 +B22; - * T6 := B11 +e*B22; - * T7 := B11 +B12; - * T9 := B12 -e*B22; - * T10 := B11 +e*B21; - * - * P1 := S1 *T1; - * P2 := A22*T2; - * P3 := A11*B22; - * P4 := S4 *T4; - * P5 := S5 *T5; - * P6 := S6 *T6; - * P7 := A21*T7; - * P8 := A32*B11; - * P9 := S9 *T9; - * P10:= S10*T10; - * - * C11 := (P1-P2-P3+P4)/e; - * C12 := (P3-P5)/(-e) ; - * C21 := P4+P6-P10 ; - * C22 := P1-P5+P9; - * C31 := (-P8+P10)/e; - * C32 := (P6-P7-P8+P9)/e; - * - */ - - double * S1 = FFLAS::fflas_new(m3*k2) ; - // double * C11t = FFLAS::fflas_new(n2*m3) ; - // S1 := A11 +A22; - FFLAS::fadd(NoField,m3,k2,A11,lda,A22,lda,S1,k2); - // T1 := e*B11 +B22; - double * T1 = FFLAS::fflas_new(n2*k2) ; // ou aire - add(k2,n2,epsilon,B11,ldb,B22,ldb,T1,n2); - // P1 := S1 *T1; (dans C22) - gemm_bini_322_0(F,m3,n2,k2,S1,k2,T1,n2,C22,ldc,rec-1,epsilon); - // S4 := e*A12+A22; - double * eA12 = FFLAS::fflas_new(m3*k2); - FFLAS::fscal(NoField,m3,k2,epsilon,A12,lda,eA12,k2) ; - FFLAS::fadd(NoField,m3,k2,eA12,k2,A22,lda,S1,k2); - // T4 := -e*B11+B21; - add(k2,n2,-epsilon,B11,ldb,B21,ldb,T1,n2); - // P4 := S4 *T4; (dans C21) - gemm_bini_322_0(F,m3,n2,k2,S1,k2,T1,n2,C21,ldc,rec-1,epsilon); - // C11 = P1+P4 - FFLAS::fadd(NoField,m3,n2,C21,ldc,C22,ldc,C11,ldc); - // T2 := B21 +B22; - FFLAS::fadd(NoField,k2,n2,B21,ldb,B22,ldb,T1,n2); - // P2 := A22*T2; - double * P1 = FFLAS::fflas_new(n2*m3) ; // ou aire - gemm_bini_322_0(F,m3,n2,k2,A22,lda,T1,n2,P1,n2,rec-1,epsilon); - // P3 := A11*B22; (dans C12) - gemm_bini_322_0(F,m3,n2,k2,A11,lda,B22,ldb,C12,ldc,rec-1,epsilon); - // C11 -= (P2+P3) - subadd(m3,n2,P1,n2,C12,ldc,C11,ldc); - // S5 := A11 +e*A12; - FFLAS::fadd(NoField,m3,k2,eA12,k2,A11,lda,S1,k2); - // T5 := e*B12 +B22; - add(k2,n2,epsilon,B12,ldb,B22,ldb,T1,n2); - // P5 := S5 *T5; - double * P2 = FFLAS::fflas_new(n2*m3) ; // ou aire - gemm_bini_322_0(F,m3,n2,k2,S1,k2,T1,n2,P2,n2,rec-1,epsilon); - // C12 -= P5 - subscalinf(NoField,m3,n2,P2,n2,-(double)1/epsilon,C12,ldc); - // S6 := A21 +A32; - FFLAS::fadd(NoField,m3,k2,A21,lda,A32,lda,S1,k2); - // T6 := B11 +e*B22; - add(k2,n2,epsilon,B22,ldb,B11,ldb,T1,n2); - // P6 := S6 *T6; dans C32 - gemm_bini_322_0(F,m3,n2,k2,S1,k2,T1,n2,C32,ldc,rec-1,epsilon); - // C21+= P6 - FFLAS::faddin(NoField,m3,n2,C32,ldc,C21,ldc); - // T7 := B11 +B12; - FFLAS::fadd(NoField,k2,n2,B11,ldb,B12,ldb,T1,n2); - // P7 := A21*T7; !signe - gemm_bini_322_0(F,m3,n2,k2,A21,lda,T1,n2,P1,n2,rec-1,epsilon); - // P8 := A32*B11; dans C31 !signe - gemm_bini_322_0(F,m3,n2,k2,A32,lda,B11,ldb,C31,ldc,rec-1,epsilon); - // C32 -= P8+P7 - subadd(m3,n2,P1,n2,C31,ldc,C32,ldc); - // S9 := A21 +e*A31; - double * eA31 = eA12 ; - FFLAS::fscal(NoField,m3,k2,epsilon,A31,lda,eA31,k2); - FFLAS::fadd(NoField,m3,k2,eA31,k2,A21,lda,S1,k2); - // T9 := B12 -e*B22; - add(k2,n2,-epsilon,B22,ldb,B12,ldb,T1,n2); - // P9 := S9 *T9; - gemm_bini_322_0(F,m3,n2,k2,S1,k2,T1,n2,P1,n2,rec-1,epsilon); - // C32= (C32+P9)/p - addscalinf(NoField,m3,n2,P1,n2,(double)1/epsilon,C32,ldc); - // C22+= P9-P5 - addsub(m3,n2,P1,n2,P2,n2,C22,ldc); - FFLAS::fflas_delete( P2); - // S10 := e*A31+A32; - FFLAS::fadd(NoField,m3,k2,eA31,k2,A32,lda,S1,k2); - FFLAS::fflas_delete( eA12 ); - // T10 := B11 +e*B21; - add(k2,n2,epsilon,B21,ldb,B11,ldb,T1,n2); - // P10:= S10*T10; - gemm_bini_322_0(F,m3,n2,k2,S1,k2,T1,n2,P1,n2,rec-1,epsilon); - FFLAS::fflas_delete( S1); - FFLAS::fflas_delete( T1); - // C21-= P10 - FFLAS::fsubin(NoField,m3,n2,P1,n2,C21,ldc); - // C31= (C31-P10)/(-epsilon) - subscalinf(NoField,m3,n2,P1,n2,-(double)1/epsilon,C31,ldc); - FFLAS::fflas_delete( P1); - // C11 := (P1+P-P3+P4)/e; - FFLAS::fscalin(NoField,m3,n2,(double)1/epsilon,C11,ldc); - - return C; - - } - - // Field must be Givaro::Modular - template - double * - gemm_bini_322_mem(const Field & F - , const size_t m - , const size_t n - , const size_t k - , const double *A , const size_t lda - , const double *B , const size_t ldb - , double *C , const size_t ldc - , int rec - , const double & epsilon - ) - { - Givaro::ZRing NoField; - // const double p = (double)F.characteristic(); - size_t M = (n>m)?std::min(k,m):std::min(k,n); - // std::cout << rec << ',' << M << std::endl; - // Field G(p*p); - - if ( M < TRE || rec <= 0) { - // std::cout << "ffw" << std::endl; - return gemm_fflas(F, m,n,k, A,lda, B,ldb, C, ldc); - // return gemm_fflas(NoField, m,n,k, A,lda, B,ldb, C, ldc); - } - - assert(k/2*2==k); // k divisible par 2 - assert(n/2*2==n); // n divisible par 2 - assert(m/3*3==m); // m divisible par 3 - - // std::cout << "tested" << std::endl; - - size_t n2 = n/2; - size_t k2 = k/2; - size_t m3 = m/3; - - // std::cout << "€ = " << epsilon << std::endl; - - // sub matrices in A - const double * A11 = A; - const double * A12 = A +k2; - const double * A21 = A +lda*m3; - const double * A22 = A21 +k2; - const double * A31 = A21 +lda*m3; - const double * A32 = A31 +k2; - - // sub matrices in C - double * C11 = C; - double * C12 = C +n2; - double * C21 = C +ldc*m3; - double * C22 = C21 +n2; - double * C31 = C21 +ldc*m3; - double * C32 = C31 +n2; - - // sub matrices in B - const double * B11 = B; - const double * B12 = B +n2; - const double * B21 = B +ldb*k2; - const double * B22 = B21 +n2; - - FFLAS::fzero(F,m,n,C,ldc); - - /* - * Algo : - * S1 := A11 +A22; - * S4 := e*A12+A22; - * S5 := A11 +e*A12; - * S6 := A21 +A32; - * S9 := A21 +e*A31; - * S3 := e*A31+A32; - * - * T1 := e*B11 +B22; - * T2 := B21 +B22; - * T4 := -e*B11+B21; - * T5 := e*B12 +B22; - * T6 := B11 +e*B22; - * T7 := B11 +B12; - * T9 := B12 -e*B22; - * T3 := B11 +e*B21; - * - * P1 := S1 *T1; - * P2 := A22*T2; - * P10 := A11*B22; - * P4 := S4 *T4; - * P5 := S5 *T5; - * P6 := S6 *T6; - * P7 := A21*T7; - * P8 := A32*B11; - * P9 := S9 *T9; - * P3:= S3*T3; - * - * C11 := (P1-P2-P10+P4)/e; - * C12 := (P10-P5)/(-e) ; - * C21 := P4+P6-P3 ; - * C22 := P1-P5+P9; - * C31 := (-P8+P3)/e; - * C32 := (P6-P7-P8+P9)/e; - * - */ - - - // P10 - gemm_bini_322_mem(F,m3,n2,k2,A11,lda,B22,ldb,C11,ldc,rec-1,epsilon); - // S5 - double * X = FFLAS::fflas_new(m3*k2); - add(m3,k2,epsilon,A12,lda,A11,lda,X,k2); - // T5 - // double * Y = FFLAS::fflas_new(std::max(k2,m3)*n2); - double * Y = FFLAS::fflas_new(k2*n2); - add(k2,n2,epsilon,B12,ldb,B22,ldb,Y,n2); - // P5 - gemm_bini_322_mem(F,m3,n2,k2,X,k2,Y,n2,C22,ldc,rec-1,epsilon); - // C12 - subscal(NoField,m3,n2,C22,ldc,C11,ldc,(double)1/epsilon,C12,ldc); - // T2 - FFLAS::fadd(NoField,k2,n2,B21,ldb,B22,ldb,Y,n2); - // P2 - gemm_bini_322_mem(F,m3,n2,k2,A22,lda,Y,n2,C31,ldc,rec-1,epsilon); - // C11 - FFLAS::faddin(NoField,m3,n2,C31,ldc,C11,ldc); - // S1 - FFLAS::fadd(NoField,m3,k2,A11,lda,A22,lda,X,k2); - // T1 - add(k2,n2,epsilon,B11,ldb,B22,ldb,Y,n2); - // P1 - gemm_bini_322_mem(F,m3,n2,k2,X,k2,Y,n2,C21,ldc,rec-1,epsilon); - // C22 - FFLAS::fsub(NoField,m3,n2,C21,ldc,C22,ldc,C22,ldc); - // C11 - FFLAS::fsub(NoField,m3,n2,C21,ldc,C11,ldc,C11,ldc); - // S4 - add(m3,k2,epsilon,A12,lda,A22,lda,X,k2); - // T4 - add(k2,n2,-epsilon,B11,ldb,B21,ldb,Y,n2); - // P4 - gemm_bini_322_mem(F,m3,n2,k2,X,k2,Y,n2,C21,ldc,rec-1,epsilon); - // C11 - addscalinf(NoField,m3,n2,C21,ldc,(double)1/epsilon,C11,ldc); - // S9 - add(m3,k2,epsilon,A31,lda,A21,lda,X,k2); - // T9 - add(k2,n2,-epsilon,B22,ldb,B12,ldb,Y,n2); - // P9 - gemm_bini_322_mem(F,m3,n2,k2,X,k2,Y,n2,C32,ldc,rec-1,epsilon); - // C22 - FFLAS::faddin(NoField,m3,n2,C32,ldc,C22,ldc); - // S6 - FFLAS::fadd(NoField,m3,k2,A21,lda,A32,lda,X,k2); - // T6 - add(k2,n2,epsilon,B22,ldb,B11,ldb,Y,n2); - // P6 - gemm_bini_322_mem(F,m3,n2,k2,X,k2,Y,n2,C31,ldc,rec-1,epsilon); - // C21 - FFLAS::faddin(NoField,m3,n2,C31,ldc,C21,ldc); - // C32 - FFLAS::faddin(NoField,m3,n2,C31,ldc,C32,ldc); - // T7 - FFLAS::fadd(NoField,k2,n2,B11,ldb,B12,ldb,Y,n2); - // P7 - gemm_bini_322_mem(F,m3,n2,k2,A21,lda,Y,n2,C31,ldc,rec-1,epsilon); - // if (epsilon > 1 && rec == 2) { FFLAS::finit(G,m3,n2,C31,ldc);} - // C32 - FFLAS::fsubin(NoField,m3,n2,C31,ldc,C32,ldc); - // S3 - add(m3,k2,epsilon,A31,lda,A32,lda,X,k2); - // T3 - add(k2,n2,epsilon,B21,ldb,B11,ldb,Y,n2); - // P3 - gemm_bini_322_mem(F,m3,n2,k2,X,k2,Y,n2,C31,ldc,rec-1,epsilon); - FFLAS::fflas_delete( X); - FFLAS::fflas_delete( Y ); - // C21 - FFLAS::fsubin(NoField,m3,n2,C31,ldc,C21,ldc); - // P8 - Y = FFLAS::fflas_new(m3*n2); - gemm_bini_322_mem(F,m3,n2,k2,A32,lda,B11,ldb,Y,n2,rec-1,epsilon); - // C31 - subscalinf(NoField,m3,n2,Y,n2,(double)1/epsilon,C31,ldc); - // FFLAS::fsubin(NoField,m3,n2,Y,n2,C31,ldc); - // C32 - subscalinf(NoField,m3,n2,Y,n2,(double)1/epsilon,C32,ldc); - // FFLAS::fsubin(NoField,m3,n2,Y,n2,C32,ldc); - // FFLAS::fscalin(NoField,m3,n,(double)1/epsilon,C31,ldc); - FFLAS::fflas_delete( Y ); - - - return C; - - } - - // Field must be Givaro::Modular - template - double * - gemm_bini_223_mem(const Field & F - , const size_t m - , const size_t n - , const size_t k - , const double *A , const size_t lda - , const double *B , const size_t ldb - , double *C , const size_t ldc - , int rec - , const double & epsilon - ) - { - Givaro::ZRing NoField; - // const double p = (double)F.characteristic(); - size_t M = (n>m)?std::min(k,m):std::min(k,n); - // std::cout << rec << ',' << M << std::endl; - // Field G(p*p); - - if ( M < TRE || rec <= 0) { - // std::cout << "ffw" << std::endl; - return gemm_fflas(F, m,n,k, A,lda, B,ldb, C, ldc); - // return gemm_fflas(NoField, m,n,k, A,lda, B,ldb, C, ldc); - } - - assert(k/2*2==k); // k divisible par 2 - assert(n/3*3==n); // n divisible par 2 - assert(m/2*2==m); // m divisible par 3 - - // std::cout << "tested" << std::endl; - - size_t m2 = m/2; - size_t k2 = k/2; - size_t n3 = n/3; - - // std::cout << "€ = " << epsilon << std::endl; - - // sub matrices in A - const double * A11 = A; - const double * A12 = A +k2; - const double * A21 = A +lda*m2; - const double * A22 = A21 +k2; - - // sub matrices in C - double * C11 = C; - double * C12 = C +n3; - double * C13 = C +2*n3; - double * C21 = C +ldc*m2; - double * C22 = C21 +n3; - double * C23 = C21 +2*n3; - - - - // sub matrices in B - const double * B11 = B; - const double * B12 = B +n3; - const double * B13 = B +2*n3; - const double * B21 = B +ldb*k2; - const double * B22 = B21 +n3; - const double * B23 = B21 +2*n3; - - - FFLAS::fzero(F,m,n,C,ldc); - - /* - * Algo : - * S1 := B11 +B22; - * S4 := e*B21+B22; - * S5 := B11 +e*B21; - * S6 := B12 +B23; - * S9 := B12 +e*B13; - * S3 := e*B13+B23; - * - * T1 := e*A11 +A22; - * T2 := A12 +A22; - * T4 := -e*A11+A12; - * T5 := e*A21 +A22; - * T6 := A11 +e*A22; - * T7 := A11 +A21; - * T9 := A21 -e*A22; - * T3 := A11 +e*A12; - * - * P1 := S1 *T1; - * P2 := T2 * B22; - * P10 := A22 * B11; - * P4 := S4 *T4; - * P5 := S5 *T5; - * P6 := S6 *T6; - * P7 := T7*B12; - * P8 := A11*B23; - * P9 := S9 *T9; - * P3 := S3*T3; - * - * C11 := (P1-P2-P10+P4)/e; - * C21 := (P10-P5)/(-e) ; - * C12 := P4+P6-P3 ; - * C22 := P1-P5+P9; - * C13 := (-P8+P3)/e; - * C23 := (P6-P7-P8+P9)/e; - * - */ - - - // P10 - gemm_bini_223_mem(F,m2,n3,k2,A22,lda,B11,ldb,C11,ldc,rec-1,epsilon); - // S5 - double * Y = FFLAS::fflas_new(k2*n3); - add(k2,n3,epsilon,B21,ldb,B11,ldb,Y,n3); - // T5 - double * X = FFLAS::fflas_new(m2*k2); - add(m2,k2,epsilon,A21,lda,A22,lda,X,k2); - // P5 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C22,ldc,rec-1,epsilon); - // C12 - subscal(NoField,m2,n3,C22,ldc,C11,ldc,(double)1/epsilon,C21,ldc); - // T2 - FFLAS::fadd(NoField,m2,k2,A12,lda,A22,lda,X,k2); - // P2 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,B22,ldb,C13,ldc,rec-1,epsilon); - // C11 - FFLAS::faddin(NoField,m2,n3,C13,ldc,C11,ldc); - // S1 - FFLAS::fadd(NoField,k2,n3,B11,ldb,B22,ldb,Y,n3); - // T1 - add(m2,k2,epsilon,A11,lda,A22,lda,X,k2); - // P1 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C12,ldc,rec-1,epsilon); - // C22 - FFLAS::fsub(NoField,m2,n3,C12,ldc,C22,ldc,C22,ldc); - // C11 - FFLAS::fsub(NoField,m2,n3,C12,ldc,C11,ldc,C11,ldc); - // S4 - add(k2,n3,epsilon,B21,ldb,B22,ldb,Y,n3); - // T4 - add(m2,k2,-epsilon,A11,lda,A12,lda,X,k2); - // P4 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C12,ldc,rec-1,epsilon); - // C11 - addscalinf(NoField,m2,n3,C12,ldc,(double)1/epsilon,C11,ldc); - // S9 - add(k2,n3,epsilon,B13,ldb,B12,ldb,Y,n3); - // T9 - add(m2,k2,-epsilon,A22,lda,A21,lda,X,k2); - // P9 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C23,ldc,rec-1,epsilon); - // C22 - FFLAS::faddin(NoField,m2,n3,C23,ldc,C22,ldc); - // S6 - FFLAS::fadd(NoField,k2,n3,B12,ldb,B23,ldb,Y,n3); - // T6 - add(m2,k2,epsilon,A22,lda,A11,lda,X,k2); - // P6 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C13,ldc,rec-1,epsilon); - // C21 - FFLAS::faddin(NoField,m2,n3,C13,ldc,C12,ldc); - // C32 - FFLAS::faddin(NoField,m2,n3,C13,ldc,C23,ldc); - // T7 - FFLAS::fadd(NoField,m2,k2,A11,lda,A21,lda,X,k2); - // P7 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,B12,ldb,C13,ldc,rec-1,epsilon); - // if (epsilon > 1 && rec == 2) { FFLAS::finit(G,m2,n3,C31,ldc);} - // C32 - FFLAS::fsubin(NoField,m2,n3,C13,ldc,C23,ldc); - // S3 - add(k2,n3,epsilon,B13,ldb,B23,ldb,Y,n3); - // T3 - add(m2,k2,epsilon,A12,lda,A11,lda,X,k2); - // P3 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C13,ldc,rec-1,epsilon); - FFLAS::fflas_delete( Y ); - FFLAS::fflas_delete( X ); - // C21 - FFLAS::fsubin(NoField,m2,n3,C13,ldc,C12,ldc); - // P8 - Y = FFLAS::fflas_new(m2*n3); - gemm_bini_223_mem(F,m2,n3,k2,A11,lda,B23,ldb,Y,n3,rec-1,epsilon); - // C31 - subscalinf(NoField,m2,n3,Y,n3,(double)1/epsilon,C13,ldc); - // C32 - subscalinf(NoField,m2,n3,Y,n3,(double)1/epsilon,C23,ldc); - FFLAS::fflas_delete( Y ); - - - return C; - - } - - // Field must be Givaro::Modular - template - double * - gemm_bini_322_2(const Field & F - , const size_t m - , const size_t n - , const size_t k - , const double *A , const size_t lda - , const double *B , const size_t ldb - , double *C , const size_t ldc - , int rec - , const double & epsilon - ) - { - Givaro::ZRing NoField; - // const double p = (double)F.characteristic(); - size_t M = (n>m)?std::min(k,m):std::min(k,n); - // std::cout << rec << ',' << M << std::endl; - // Field G(p*p); - - if ( M < TRE || rec <= 0) { - // std::cout << "ffw" << std::endl; - return gemm_fflas(F, m,n,k, A,lda, B,ldb, C, ldc); - // return gemm_fflas(NoField, m,n,k, A,lda, B,ldb, C, ldc); - } - - assert(k/2*2==k); // k divisible par 2 - assert(n/2*2==n); // n divisible par 2 - assert(m/3*3==m); // m divisible par 3 - - // std::cout << "tested" << std::endl; - - size_t n2 = n/2; - size_t k2 = k/2; - size_t m3 = m/3; - - // std::cout << "€ = " << epsilon << std::endl; - - // sub matrices in A - const double * A11 = A; - const double * A12 = A +k2; - const double * A21 = A +lda*m3; - const double * A22 = A21 +k2; - const double * A31 = A21 +lda*m3; - const double * A32 = A31 +k2; - - // sub matrices in C - double * C11 = C; - double * C12 = C +n2; - double * C21 = C +ldc*m3; - double * C22 = C21 +n2; - double * C31 = C21 +ldc*m3; - double * C32 = C31 +n2; - - // sub matrices in B - const double * B11 = B; - const double * B12 = B +n2; - const double * B21 = B +ldb*k2; - const double * B22 = B21 +n2; - - FFLAS::fzero(F,m,n,C,ldc); - - /* - * Algo : - * S1 := A11 +A22; - * S4 := e*A12+A22; - * S5 := A11 +e*A12; - * S3 := e*A31+A32; - * S6 := A21 +A32; - * S9 := A21 +e*A31; - * - * T1 := e*B11 +B22; - * T2 := B21 +B22; - * T3 := B11 +e*B21; - * T4 := -e*B11+B21; - * T5 := e*B12 +B22; - * T6 := B11 +e*B22; - * T7 := B11 +B12; - * T9 := B12 -e*B22; - * - * P1 := S1 *T1; - * P2 := A22*T2; - * P10 := A11*B22; - * P4 := S4 *T4; - * P5 := S5 *T5; - * P6 := S6 *T6; - * P7 := A21*T7; - * P8 := A32*B11; - * P9 := S9 *T9; - * P3:= S3*T3; - * - * C11 := (P1-P2-P10+P4)/e; - * C12 := (P10-P5)/(-e) ; - * C21 := P4+P6-P3 ; - * C22 := P1-P5+P9; - * C31 := (-P8+P3)/e; - * C32 := (P6-P7-P8+P9)/e; - * - */ - - double * U = FFLAS::fflas_new(m3*n2); - double * V = FFLAS::fflas_new(m3*n2); - double * X = FFLAS::fflas_new(m3*std::max(k2,n2)); - double * Y = FFLAS::fflas_new(std::max(k2,m3)*n2); - - // S4 - add(m3,k2,epsilon,A12,lda,A22,lda,X,k2); - // T4 - add(k2,n2,-epsilon,B11,ldb,B21,ldb,Y,n2); - // P4 - gemm_bini_322_2(F,m3,n2,k2,X,k2,Y,n2,U,n2,rec-1,epsilon); - // S9 - add(m3,k2,epsilon,A31,lda,A21,lda,X,k2); - // T9 - add(k2,n2,-epsilon,B22,ldb,B12,ldb,Y,n2); - // P9 - gemm_bini_322_2(F,m3,n2,k2,X,k2,Y,n2,V,n2,rec-1,epsilon); - // S5 - add(m3,k2,epsilon,A12,lda,A11,lda,X,k2); - // T5 - add(k2,n2,epsilon,B12,ldb,B22,ldb,Y,n2); - // P5 - gemm_bini_322_2(F,m3,n2,k2,X,k2,Y,n2,C12,ldc,rec-1,epsilon); - // S3 - add(m3,k2,epsilon,A31,lda,A32,lda,X,k2); - // T3 - add(k2,n2,epsilon,B21,ldb,B11,ldb,Y,n2); - // P3 - gemm_bini_322_2(F,m3,n2,k2,X,k2,Y,n2,C31,ldc,rec-1,epsilon); - // C22 = P9-P5 - FFLAS::fsub(NoField,m3,n2,V,n2,C12,ldc,C22,ldc); - // C21 = P4-P3 - FFLAS::fsub(NoField,m3,n2,U,n2,C31,ldc,C21,ldc); - // T2 - FFLAS::fadd(NoField,k2,n2,B21,ldb,B22,ldb,Y,n2); - // P2 - gemm_bini_322_2(F,m3,n2,k2,A22,lda,Y,n2,X,n2,rec-1,epsilon); - // XXX approximate - // C11 = (P4 - P2) / e - subscal(NoField,m3,n2,U,n2,X,n2,1./epsilon,C11,ldc); - // T7 - FFLAS::fadd(NoField,k2,n2,B11,ldb,B12,ldb,Y,n2); - // P7 - gemm_bini_322_2(F,m3,n2,k2,A21,lda,Y,n2,X,n2,rec-1,epsilon); - // XXX approximate - // C32 = (P9-P7) / e - subscal(NoField,m3,n2,V,n2,X,n2,1./epsilon,C32,ldc); - // S1 - FFLAS::fadd(NoField,m3,k2,A11,lda,A22,lda,X,k2); - // T1 - add(k2,n2,epsilon,B11,ldb,B22,ldb,Y,n2); - // P1 - gemm_bini_322_2(F,m3,n2,k2,X,k2,Y,n2,U,n2,rec-1,epsilon); - // C22 += P1 - FFLAS::faddin(NoField,m3,n2,U,n2,C22,ldc); - // P10 - gemm_bini_322_2(F,m3,n2,k2,A11,lda,B22,ldb,V,n2,rec-1,epsilon); - // C12 = (P5-P10)/e - subscalinf(NoField,m3,n2,V,n2,1./epsilon,C12,ldc); - // XXX approximate - // C11 = C11 + (P1-P10)/e - subscalacc(NoField,m3,n2,U,n2,V,n2,1./epsilon,C11,ldc); - // S6 - FFLAS::fadd(NoField,m3,k2,A21,lda,A32,lda,X,k2); - // T6 - add(k2,n2,epsilon,B22,ldb,B11,ldb,Y,n2); - // P6 - gemm_bini_322_2(F,m3,n2,k2,X,k2,Y,n2,U,n2,rec-1,epsilon); - // C21 += P6 - FFLAS::faddin(NoField,m3,n2,U,n2,C21,ldc); - // P8 - gemm_bini_322_2(F,m3,n2,k2,A32,lda,B11,ldb,V,n2,rec-1,epsilon); - // C31 = (P3-P8)/2 - subscalinf(NoField,m3,n2,V,n2,1./epsilon,C31,ldc); - // XXX approximate - // C32 = C32 + (P6-P8)/e - subscalacc(NoField,m3,n2,U,n2,V,n2,1./epsilon,C32,ldc); - - - FFLAS::fflas_delete( X); - FFLAS::fflas_delete( Y ); - FFLAS::fflas_delete( U); - FFLAS::fflas_delete( V); - - - return C; - - } - - - // Field must be Givaro::Modular - template - double * - gemm_bini_232_2(const Field & F - , const size_t m - , const size_t n - , const size_t k - , const double *A , const size_t lda - , const double *B , const size_t ldb - , double *C , const size_t ldc - , int rec - , const double & epsilon - ) - { - Givaro::ZRing NoField; - // const double p = (double)F.characteristic(); - size_t M = (n>m)?std::min(k,m):std::min(k,n); - // Field G(p*p); - - if ( M < TRE || rec <= 0) { - // std::cout << "ffw" << std::endl; - return gemm_fflas(F, m,n,k, A,lda, B,ldb, C, ldc); - // return gemm_fflas(NoField, m,n,k, A,lda, B,ldb, C, ldc); - } - - assert(k/3*3==k); // k divisible par 3 - assert(n/2*2==n); // n divisible par 2 - assert(m/2*2==m); // m divisible par 2 - - // std::cout << "tested" << std::endl; - - size_t n2 = n/2; - size_t k3 = k/3; - size_t m2 = m/2; - - // std::cout << "€ = " << epsilon << std::endl; - - // sub matrices in B - const double * B11 = B; - const double * B12 = B +n2; - const double * B21 = B +ldb*k3; - const double * B22 = B21 +n2; - const double * B31 = B21 +ldb*k3; - const double * B32 = B31 +n2; - - // sub matrices in C - double * C11 = C; - double * C12 = C +n2; - double * C21 = C +ldc*m2; - double * C22 = C21 +n2; - - // sub matrices in A - - const double * A11 = A; - const double * A12 = A +k3; - const double * A13 = A +2*k3; - const double * A21 = A +lda*m2; - const double * A22 = A21 +k3; - const double * A23 = A21 +2*k3; - - - FFLAS::fzero(F,m,n,C,ldc); - - /* - * Algo : - * - * S1 := A11 +A22*e; - * S3 := -(A11+A21); - * S4 := A11+A12*e; - * S5 := A21 - A22*e; - * S6 := A12*e + A23; - * S8 := -(A13+A23): - * S9 := A22*e + A23; - * S10 := -A12*e+A13; - * - * T1 := B11 +B22; - * T4 := e*B12+B22; - * T5 := B11 +e*B12; - * T6 := B21 +B32; - * T9 := B21 + e*B31; - * T10 := e*B31 +B32; - * - * P1 := Bini232(S1,T1 ,e); - * P2 := Bini232(A11,B22 ,e); - * P3 := Bini232(S3,B11,e); - * P4 := Bini232(S4,T4 ,e); - * P5 := Bini232(S5,T5 ,e); - * P6 := Bini232(S6,T6 ,e); - * P7 := Bini232(A23,B21 ,e); - * P8 := Bini232(S8,B32,e); - * P9 := Bini232(S9,T9 ,e); - * P10:= Bini232(S10,T10,e); - * - * - * C11 := evalm(P1-P4+(P6-P7+P8+P10)/e); - * C12 := evalm((-P2+P4)/e+P10) ; - * C21 := evalm(P5+(-P7+P9)/e) ; - * C22 := evalm((P1-P2+P3+P5)/e+P6-P9); - * - */ - - double * U = FFLAS::fflas_new(m2*n2); - double * V = FFLAS::fflas_new(m2*n2); - double * X = FFLAS::fflas_new(m2*k3); - double * Y = FFLAS::fflas_new(k3*n2); - - // S1 - add(m2,k3,epsilon,A22,lda,A11,lda,X,k3); - // T1 - FFLAS::fadd(NoField,k3,n2,B11,ldb,B22,ldb,Y,n2); - // P1 (in U) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,U,n2,rec-1,epsilon); - // S3 - negadd(m2,k3,A11,lda,A21,lda,X,k3); - // P3 (in V) - gemm_bini_232_2(F,m2,n2,k3,X,k3,B11,ldb,V,n2,rec-1,epsilon); - // C22 = (P1+P3)/e - // FFLAS::fadd(NoField,m2,n2,U,n2,V,n2,C22,ldc); // XXX acc - addscal(NoField,m2,n2,U,n2,V,n2,(double)1/epsilon,C22,ldc); - // S6 - add(m2,k3,epsilon,A12,lda,A23,lda,X,k3); - // T6 - FFLAS::fadd(NoField,k3,n2,B21,ldb,B32,ldb,Y,n2); - // P6 (in V) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,V,n2,rec-1,epsilon); - // C22 += P6 - FFLAS::faddin(NoField,m2,n2,V,n2,C22,ldc); - // S8 - negadd(m2,k3,A13,lda,A23,lda,X,k3); - // P8 (in C11) - gemm_bini_232_2(F,m2,n2,k3,X,k3,B32,ldb,C11,ldc,rec-1,epsilon); - // C11 = (P8+P6)/e - addscalinf(NoField,m2,n2,V,n2,(double)1/epsilon,C11,ldc); - // C11 += P1 - FFLAS::faddin(NoField,m2,n2,U,n2,C11,ldc); - // S4 - add(m2,k3,epsilon,A12,lda,A11,lda,X,k3); - // T4 - add(k3,n2,epsilon,B12,ldb,B22,ldb,Y,n2); - // P4 (in U) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,U,n2,rec-1,epsilon); - // C11 -= P4 - FFLAS::fsubin(NoField,m2,n2,U,n2,C11,ldc); - // P2 (in C12) - gemm_bini_232_2(F,m2,n2,k3,A11,lda,B22,ldb,C12,ldc,rec-1,epsilon); - // S5 - add(m2,k3,-epsilon,A22,lda,A21,lda,X,k3); - // T5 - add(k3,n2,epsilon,B12,ldb,B11,ldb,Y,n2); - // P5 (in V) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,V,n2,rec-1,epsilon); - // C22 += (P5-P2)/e - subscalacc(NoField,m2,n2,V,n2,C12,ldc,(double)1/epsilon,C22,ldc); - // C12 = (P4-P2)/e - subscalinf(NoField,m2,n2,U,n2,-(double)1/epsilon,C12,ldc); - // S9 - add(m2,k3,epsilon,A22,lda,A23,lda,X,k3); - // T9 - add(k3,n2,epsilon,B31,ldb,B21,ldb,Y,n2); - // P9 (in U) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,U,n2,rec-1,epsilon); - // C22 -= P9 - FFLAS::fsubin(NoField,m2,n2,U,n2,C22,ldc); - // P7 (in C21) - gemm_bini_232_2(F,m2,n2,k3,A23,lda,B21,ldb,C21,ldc,rec-1,epsilon); - // C11 = C11 - P7/e - add(m2,n2,-(double)1/epsilon,C21,ldc,C11,ldc,C11,ldc); - // C21 = (P9-P7)/e - subscalinf(NoField,m2,n2,U,n2,-(double)1/epsilon,C21,ldc); - // C21 += P5 - FFLAS::faddin(NoField,m2,n2,V,n2,C21,ldc); - // S10 - add(m2,k3,-epsilon,A12,lda,A13,lda,X,k3); - // T10 - add(k3,n2,epsilon,B31,ldb,B32,ldb,Y,n2); - // P10 (in U) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,U,n2,rec-1,epsilon); - // C12 += P10 - FFLAS::faddin(NoField,m2,n2,U,n2,C12,ldc); - // C11 += P10/e - add(m2,n2,(double)1/epsilon,U,n2,C11,ldc,C11,ldc); - - - FFLAS::fflas_delete( X ); - FFLAS::fflas_delete( Y ); - FFLAS::fflas_delete( U ); - FFLAS::fflas_delete( V ); - - - return C; - - } - - template - double * - gemm_bini_232_3_acc(const Field & F - , const size_t m - , const size_t n - , const size_t k - , const double *A , const size_t lda - , const double *B , const size_t ldb - , double *C , const size_t ldc - , int rec - , const double & epsilon - ) - { - if (rec != 0) - exit(-1); - Givaro::DoubleDomain R; - FFLAS::fgemm(R, - FFLAS::FflasNoTrans,FFLAS::FflasNoTrans, - m,n,k, - 1, - A,lda, B,ldb, - 1, - C, ldc); - - - } - - template - double * - gemm_bini_232_3(const Field & F - , const size_t m - , const size_t n - , const size_t k - , const double *A , const size_t lda - , const double *B , const size_t ldb - , double *C , const size_t ldc - , int rec - , const double & epsilon - ) - { - Givaro::ZRing NoField; - // const double p = (double)F.characteristic(); - size_t M = (n>m)?std::min(k,m):std::min(k,n); - // Field G(p*p); - - if ( M < TRE || rec <= 0) { - // std::cout << "ffw" << std::endl; - return gemm_fflas(F, m,n,k, A,lda, B,ldb, C, ldc); - // return gemm_fflas(NoField, m,n,k, A,lda, B,ldb, C, ldc); - } - - assert(k/3*3==k); // k divisible par 3 - assert(n/2*2==n); // n divisible par 2 - assert(m/2*2==m); // m divisible par 2 - - // std::cout << "tested" << std::endl; - - size_t n2 = n/2; - size_t k3 = k/3; - size_t m2 = m/2; - - // std::cout << "€ = " << epsilon << std::endl; - - // sub matrices in B - const double * B11 = B; - const double * B12 = B +n2; - const double * B21 = B +ldb*k3; - const double * B22 = B21 +n2; - const double * B31 = B21 +ldb*k3; - const double * B32 = B31 +n2; - - // sub matrices in C - double * C11 = C; - double * C12 = C +n2; - double * C21 = C +ldc*m2; - double * C22 = C21 +n2; - - // sub matrices in A - - const double * A11 = A; - const double * A12 = A +k3; - const double * A13 = A +2*k3; - const double * A21 = A +lda*m2; - const double * A22 = A21 +k3; - const double * A23 = A21 +2*k3; - - - FFLAS::fzero(F,m,n,C,ldc); - - /* - * Algo : - * - * S1 := A11 +A22*e; - * S3 := -(A11+A21); - * S4 := A11+A12*e; - * S5 := A21 - A22*e; - * S6 := A12*e + A23; - * S8 := -(A13+A23): - * S9 := A22*e + A23; - * S10 := -A12*e+A13; - * - * T1 := B11 +B22; - * T4 := e*B12+B22; - * T5 := B11 +e*B12; - * T6 := B21 +B32; - * T9 := B21 + e*B31; - * T10 := e*B31 +B32; - * - * P1 := Bini232(S1,T1 ,e); - * P2 := Bini232(A11,B22 ,e); - * P3 := Bini232(S3,B11,e); - * P4 := Bini232(S4,T4 ,e); - * P5 := Bini232(S5,T5 ,e); - * P6 := Bini232(S6,T6 ,e); - * P7 := Bini232(A23,B21 ,e); - * P8 := Bini232(S8,B32,e); - * P9 := Bini232(S9,T9 ,e); - * P10:= Bini232(S10,T10,e); - * - * - * C11 := evalm(P1-P4+(P6-P7+P8+P10)/e); - * C12 := evalm((-P2+P4)/e+P10) ; - * C21 := evalm(P5+(-P7+P9)/e) ; - * C22 := evalm((P1-P2+P3+P5)/e+P6-P9); - * - */ - - // could be just one band for the scalings - - - - double * U = FFLAS::fflas_new(m2*n2); - double * V = FFLAS::fflas_new(std::max(k3,m2)*n2); - double * X = FFLAS::fflas_new(m2*k3); - double * Y = FFLAS::fflas_new(k3*n2); - - // S1 - double * eA22 = FFLAS::fflas_new(std::max(m2,n2)*k3); - FFLAS::fscal(NoField,m2,k3,epsilon,A22,lda,eA22,k3); - FFLAS::fadd(NoField,m2,k3,eA22,k3,A11,lda,X,k3); - // T1 - FFLAS::fadd(NoField,k3,n2,B11,ldb,B22,ldb,Y,n2); - // P1 (in U) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,U,n2,rec-1,epsilon); - // S3 - negadd(m2,k3,A11,lda,A21,lda,X,k3); - // P3 (in V) - gemm_bini_232_2(F,m2,n2,k3,X,k3,B11,ldb,V,n2,rec-1,epsilon); - // C22 = (P1+P3)/e - addscal(NoField,m2,n2,U,n2,V,n2,(double)1/epsilon,C22,ldc); - // S6 - double * eA12 = FFLAS::fflas_new(m2*k3); - FFLAS::fscal(NoField,m2,k3,epsilon,A12,lda,eA12,k3); - FFLAS::fadd(NoField,m2,k3,eA12,k3,A23,lda,X,k3); - // T6 - FFLAS::fadd(NoField,k3,n2,B21,ldb,B32,ldb,Y,n2); - // P6 (in V) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,V,n2,rec-1,epsilon); - // C22 += P6 - FFLAS::faddin(NoField,m2,n2,V,n2,C22,ldc); - // S8 - negadd(m2,k3,A13,lda,A23,lda,X,k3); - // P8 (in C11) - gemm_bini_232_2(F,m2,n2,k3,X,k3,B32,ldb,C11,ldc,rec-1,epsilon); - // C11 = (P8+P6)/e - addscalinf(NoField,m2,n2,V,n2,(double)1/epsilon,C11,ldc); - // C11 += P1 - FFLAS::faddin(NoField,m2,n2,U,n2,C11,ldc); - // S4 - FFLAS::fadd(NoField,m2,k3,eA12,k3,A11,lda,X,k3); - // T4 - double * eB12 = V ; // FFLAS::fflas_new(n2*k3); - FFLAS::fscal(NoField,k3,n2,epsilon,B12,ldb,eB12,n2); - FFLAS::fadd(NoField,k3,n2,eB12,n2,B22,ldb,Y,n2); - // P4 (in U) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,U,n2,rec-1,epsilon); - // C11 -= P4 - FFLAS::fsubin(NoField,m2,n2,U,n2,C11,ldc); - // P2 (in C12) - gemm_bini_232_2(F,m2,n2,k3,A11,lda,B22,ldb,C12,ldc,rec-1,epsilon); - // S5 - FFLAS::fsub(NoField,m2,k3,A21,lda,eA22,k3,X,k3); - // T5 - FFLAS::fadd(NoField,k3,n2,eB12,n2,B11,ldb,Y,n2); - // FFLAS::fflas_delete( eB12); - // P5 (in V) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,V,n2,rec-1,epsilon); - // C22 += (P5-P2)/e - subscalacc(NoField,m2,n2,V,n2,C12,ldc,(double)1/epsilon,C22,ldc); - // C12 = (P4-P2)/e - subscalinf(NoField,m2,n2,U,n2,-(double)1/epsilon,C12,ldc); - // S9 - FFLAS::fadd(NoField,m2,k3,eA22,k3,A23,lda,X,k3); - double * eB31 = eA22 ; - FFLAS::fscal(NoField,k3,n2,epsilon,B31,ldb,eB31,n2); - // T9 - FFLAS::fadd(NoField,k3,n2,eB31,n2,B21,ldb,Y,n2); - // P9 (in U) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,U,n2,rec-1,epsilon); - // C22 -= P9 - FFLAS::fsubin(NoField,m2,n2,U,n2,C22,ldc); - // P7 (in C21) - gemm_bini_232_2(F,m2,n2,k3,A23,lda,B21,ldb,C21,ldc,rec-1,epsilon); - // C11 = C11 - P7/e - add(m2,n2,-(double)1/epsilon,C21,ldc,C11,ldc,C11,ldc); - // C21 = (P9-P7)/e - subscalinf(NoField,m2,n2,U,n2,-(double)1/epsilon,C21,ldc); - // C21 += P5 - FFLAS::faddin(NoField,m2,n2,V,n2,C21,ldc); - // S10 - FFLAS::fsub(NoField,m2,k3,A13,lda,eA12,k3,X,k3); - FFLAS::fflas_delete( eA12); - // T10 - FFLAS::fadd(NoField,k3,n2,eB31,n2,B32,ldb,Y,n2); - FFLAS::fflas_delete( eA22); - // P10 (in U) - gemm_bini_232_2(F,m2,n2,k3,X,k3,Y,n2,U,n2,rec-1,epsilon); - // C12 += P10 - FFLAS::faddin(NoField,m2,n2,U,n2,C12,ldc); - // C11 += P10/e - add(m2,n2,(double)1/epsilon,U,n2,C11,ldc,C11,ldc); - - - FFLAS::fflas_delete( X ); - FFLAS::fflas_delete( Y ); - FFLAS::fflas_delete( U ); - FFLAS::fflas_delete( V ); - - - return C; - - } - -#if 0 - template - double * - gemm_bini_322_sqrt(const Field & F - , const size_t m - , const size_t n - , const size_t k - , const double *A , const size_t lda - , const double *B , const size_t ldb - , double *C , const size_t ldc - , int rec - , const double & epsilon - ) - { - Givaro::ZRing NoField; - // const double p = (double)F.characteristic(); - size_t M = (n>m)?std::min(k,m):std::min(k,n); - // std::cout << rec << ',' << M << std::endl; - // Field G(p*p); - - if ( M < TRE || rec <= 0) { - // std::cout << "ffw" << std::endl; - return gemm_fflas(F, m,n,k, A,lda, B,ldb, C, ldc); - // return gemm_fflas(NoField, m,n,k, A,lda, B,ldb, C, ldc); - } - - assert(k/2*2==k); // k divisible par 2 - assert(n/3*3==n); // n divisible par 2 - assert(m/2*2==m); // m divisible par 3 - - // std::cout << "tested" << std::endl; - - size_t m2 = m/2; - size_t k2 = k/2; - size_t n3 = n/3; - - // std::cout << "€ = " << epsilon << std::endl; - - // sub matrices in A - const double * A11 = A; - const double * A12 = A +k2; - const double * A21 = A +lda*m2; - const double * A22 = A21 +k2; - - // sub matrices in C - double * C11 = C; - double * C12 = C +n3; - double * C13 = C +2*n3; - double * C21 = C +ldc*m2; - double * C22 = C21 +n3; - double * C23 = C21 +2*n3; - - - - // sub matrices in B - const double * B11 = B; - const double * B12 = B +n3; - const double * B13 = B +2*n3; - const double * B21 = B +ldb*k2; - const double * B22 = B21 +n3; - const double * B23 = B21 +2*n3; - - - FFLAS::fzero(F,m,n,C,ldc); - - /* - * Algo : - * S1 := B11 +B22; - * S4 := e*B21+B22; - * S5 := B11 +e*B21; - * S6 := B12 +B23; - * S9 := B12 +e*B13; - * S3 := e*B13+B23; - * - * T1 := e*A11 +A22; - * T2 := A12 +A22; - * T4 := -e*A11+A12; - * T5 := e*A21 +A22; - * T6 := A11 +e*A22; - * T7 := A11 +A21; - * T9 := A21 -e*A22; - * T3 := A11 +e*A12; - * - * P1 := S1 *T1; - * P2 := T2 * B22; - * P10 := A22 * B11; - * P4 := S4 *T4; - * P5 := S5 *T5; - * P6 := S6 *T6; - * P7 := T7*B12; - * P8 := A11*B23; - * P9 := S9 *T9; - * P3 := S3*T3; - * - * C11 := (P1-P2-P10+P4)/e; - * C21 := (P10-P5)/(-e) ; - * C12 := P4+P6-P3 ; - * C22 := P1-P5+P9; - * C13 := (-P8+P3)/e; - * C23 := (P6-P7-P8+P9)/e; - * - */ - - - // P10 - gemm_bini_223_mem(F,m2,n3,k2,A22,lda,B11,ldb,C11,ldc,rec-1,epsilon); - // S5 - double * Y = FFLAS::fflas_new(k2*n3); - add(k2,n3,epsilon,B21,ldb,B11,ldb,Y,n3); - // T5 - double * X = FFLAS::fflas_new(m2*k2); - add(m2,k2,epsilon,A21,lda,A22,lda,X,k2); - // P5 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C22,ldc,rec-1,epsilon); - // C12 - subscal(NoField,m2,n3,C22,ldc,C11,ldc,(double)1/epsilon,C21,ldc); - // T2 - FFLAS::fadd(NoField,m2,k2,A12,lda,A22,lda,X,k2); - // P2 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,B22,ldb,C13,ldc,rec-1,epsilon); - // C11 - FFLAS::faddin(NoField,m2,n3,C13,ldc,C11,ldc); - // S1 - FFLAS::fadd(NoField,k2,n3,B11,ldb,B22,ldb,Y,n3); - // T1 - add(m2,k2,epsilon,A11,lda,A22,lda,X,k2); - // P1 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C12,ldc,rec-1,epsilon); - // C22 - FFLAS::fsub(NoField,m2,n3,C12,ldc,C22,ldc,C22,ldc); - // C11 - FFLAS::fsub(NoField,m2,n3,C12,ldc,C11,ldc,C11,ldc); - // S4 - add(k2,n3,epsilon,B21,ldb,B22,ldb,Y,n3); - // T4 - add(m2,k2,-epsilon,A11,lda,A12,lda,X,k2); - // P4 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C12,ldc,rec-1,epsilon); - // C11 - addscalinf(NoField,m2,n3,C12,ldc,(double)1/epsilon,C11,ldc); - // S9 - add(k2,n3,epsilon,B13,ldb,B12,ldb,Y,n3); - // T9 - add(m2,k2,-epsilon,A22,lda,A21,lda,X,k2); - // P9 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C23,ldc,rec-1,epsilon); - // C22 - FFLAS::faddin(NoField,m2,n3,C23,ldc,C22,ldc); - // S6 - FFLAS::fadd(NoField,k2,n3,B12,ldb,B23,ldb,Y,n3); - // T6 - add(m2,k2,epsilon,A22,lda,A11,lda,X,k2); - // P6 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C13,ldc,rec-1,epsilon); - // C21 - FFLAS::faddin(NoField,m2,n3,C13,ldc,C12,ldc); - // C32 - FFLAS::faddin(NoField,m2,n3,C13,ldc,C23,ldc); - // T7 - FFLAS::fadd(NoField,m2,k2,A11,lda,A21,lda,X,k2); - // P7 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,B12,ldb,C13,ldc,rec-1,epsilon); - // if (epsilon > 1 && rec == 2) { FFLAS::finit(G,m2,n3,C31,ldc);} - // C32 - FFLAS::fsubin(NoField,m2,n3,C13,ldc,C23,ldc); - // S3 - add(k2,n3,epsilon,B13,ldb,B23,ldb,Y,n3); - // T3 - add(m2,k2,epsilon,A12,lda,A11,lda,X,k2); - // P3 - gemm_bini_223_mem(F,m2,n3,k2,X,k2,Y,n3,C13,ldc,rec-1,epsilon); - FFLAS::fflas_delete( Y ); - FFLAS::fflas_delete( X ); - // C21 - FFLAS::fsubin(NoField,m2,n3,C13,ldc,C12,ldc); - // P8 - Y = FFLAS::fflas_new(m2*n3); - gemm_bini_223_mem(F,m2,n3,k2,A11,lda,B23,ldb,Y,n3,rec-1,epsilon); - // C31 - subscalinf(NoField,m2,n3,Y,n3,(double)1/epsilon,C13,ldc); - // C32 - subscalinf(NoField,m2,n3,Y,n3,(double)1/epsilon,C23,ldc); - FFLAS::fflas_delete( Y ); - - - return C; - - } -#endif - - -} // Rec -} // Protected -} // FFLAS - -namespace FFLAS { namespace Protected { - - template - typename Field::Element * - gemm_bini_p(const Field &F - , const size_t m - , const size_t n - , const size_t k - , const typename Field::Element *A - , const size_t lda - , const typename Field::Element *B - , const size_t ldb - , typename Field::Element *C - , const size_t ldc - , int rec - , size_t algo - ) - { - - assert(k/6*6==k); // k divisible par 6 - assert(n/6*6==n); // n divisible par 6 - assert(m/6*6==m); // m divisible par 6 - - // e-formule - double epsilon = (double) F.characteristic() ; - switch(algo) { - case 0 : - Rec::gemm_bini_322_mem(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - FFLAS::finit_fuzzy(F,m,n,C,ldc); - // FFLAS::finit(F,m,n,C,ldc); - break; - case 1 : - Rec::gemm_bini_322_0(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - FFLAS::finit_fuzzy(F,m,n,C,ldc); - // FFLAS::finit(F,m,n,C,ldc); - break; - case 2 : - Rec::gemm_bini_322_2(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - FFLAS::finit_fuzzy(F,m,n,C,ldc); - break; - case 3 : - Rec::gemm_bini_223_mem(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - FFLAS::finit_fuzzy(F,m,n,C,ldc); - // FFLAS::finit(F,m,n,C,ldc); - break; - case 4 : - Rec::gemm_bini_232_2(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - FFLAS::finit_fuzzy(F,m,n,C,ldc); - break; - case 5 : - Rec::gemm_bini_232_3(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - FFLAS::finit_fuzzy(F,m,n,C,ldc); - break; -#if 0 - case 8 : { - double epsilon2 = sqrt((double)epsilon); - std::cout << epsilon2 << std::endl; - Rec::gemm_bini_322_sqrt(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon2); - // FFLAS::finit_fuzzy(F,m,n,C,ldc); - for(size_t i = 0 ; i < m ; ++i) { - for(size_t j = 0 ; j < n ; ++j) - C[i*ldc+j] = rint(fmod(C[i*ldc+j],epsilon2)); - } - break; - } -#endif - default : - std::cout << " not an algo :" << algo << std::endl;; - exit(-1); - } - - - - return C; - - } - - template - typename Field::Element * - gemm_bini_e(const Field &F - , const size_t m - , const size_t n - , const size_t k - , const typename Field::Element *A - , const size_t lda - , const typename Field::Element *B - , const size_t ldb - , typename Field::Element *C - , const size_t ldc - , int rec - , size_t algo - ) - { - - assert(k/2*2==k); // k divisible par 2 - assert(n/2*2==n); // n divisible par 2 - assert(m/3*3==m); // m divisible par 3 - - // e-formule - double epsilon = 1./(1<<27); - switch(algo) { - case 0 : - Rec::gemm_bini_322_mem(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - break; - case 1 : - Rec::gemm_bini_322_0(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - break; - case 2 : - Rec::gemm_bini_322_2(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - break; - case 3 : - Rec::gemm_bini_223_mem(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - break; - case 4 : - Rec::gemm_bini_232_2(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - break; - case 5 : - Rec::gemm_bini_232_3(F,m,n,k,A,lda,B,ldb,C,ldc,rec,epsilon); - break; - default : - std::cout << " not an algo :" << algo << std::endl;; - exit(-1); - } - - - // vire les e. - // FFLAS::finit_fuzzy(F,m,n,C,ldc); - FFLAS::finit_fuzzy(F,m,n,C,ldc); - - return C; - - } - - template - typename Field::Element * - gemm_compress(const Field &F - , const size_t m - , const size_t n - , const size_t k - , const typename Field::Element *A - , const size_t lda - , const typename Field::Element *B - , const size_t ldb - , typename Field::Element *C - , const size_t ldc - , int rec - , size_t algo - ) - { - - assert(k/6*6==k); // k divisible par 6 - assert(n/6*6==n); // n divisible par 6 - assert(m/6*6==m); // m divisible par 6 - - switch(algo) { - case 0 : - fgemm_compressed(F,(int)m,(int)n,(int)k,A,(int)lda,B,(int)ldb,C,(int)ldc); - FFLAS::freduce(F,m,n,C,ldc); - break; - case 1 : - fgemm_compressed(F,(int)m,(int)n,(int)k,A,(int)lda,B,(int)ldb,C,(int)ldc); - FFLAS::freduce(F,m,n,C,ldc); - break; - default : - std::cout << " not an algo :" << algo << std::endl;; - exit(-1); - } - - - - return C; - - } - -} // Protected -} // FFLAS - -template -void check_equal(const Field & F,int m,int n, - typename Field::Element * D,int ldd, - typename Field::Element * E,int lde, - const char * nomalgo, const char * madescr, int & ok_p) -{ - int faux = 0 ; - for (int i = 0 ; i < m ; ++i) { - for (int j = 0 ; j < n ; ++j) { - if (!F.areEqual(D[i*ldd+j],E[i*lde+j])) { - ++faux ; - } - } - } - if (faux) { - std::cout << nomalgo << " " << madescr << " : bad/all = " << faux << '/' << m*n << " ~~ " << (double)faux/(double)(m*n) << std::endl; - } - else ok_p ++ ; - - -#if 1 - if (faux && (n<20)) { - std::cout << "OK" << std::endl; - for (int i = 0 ; i < m ; ++i) { - for (int j = 0 ; j < n ; ++j) - std::cout << D[i*ldd+j] << ' '; - std::cout << std::endl; - } - std::cout << "KO" << std::endl; - for (int i = 0 ; i < m ; ++i) { - for (int j = 0 ; j < n ; ++j) - std::cout << E[i*lde+j] << ' '; - std::cout << std::endl; - } - - - std::cout << "Diff" << std::endl; - for (int i = 0 ; i < m ; ++i) { - for (int j = 0 ; j < n ; ++j) - std::cout << D[i*ldd+j]-E[i*lde+j] << ' '; - std::cout << std::endl; - } - } -#endif -} - - -template -void test_algos(const Field &F, int m, int n, int k - , const typename Field::Element * A, int lda - , const typename Field::Element * B, int ldb - , int r - , time_v & tim_k, time_v & tim_e , time_v & tim_p - , int_v & ok_k, int_v & ok_e, int_v & ok_p - , FFLAS::Timer & tim_wd, int & nb_wd - , bool with_e - , bool with_k - ) -{ - FFLAS::Timer tmp ; - typedef typename Field::Element Element; - - Element * D = FFLAS::fflas_new(m*n); - Element * C = FFLAS::fflas_new(m*n); - - tmp.clear();tmp.start(); - fgemm(F,FFLAS::FflasNoTrans,FFLAS::FflasNoTrans, - m,n,k, 1, A,k, B,n, 0, D, n); - tmp.stop(); tim_wd += tmp ; nb_wd ++; - - /* bini_p */ - if (with_e) { - for (int algo = 0 ; algo < algos ; ++algo) { - tmp.clear();tmp.start(); - FFLAS::Protected::gemm_bini_e(F,m,n,k,A,k,B,n,C,n,r,selec[algo]); - tmp.stop(); tim_e[algo] += tmp ; - - /* checking */ - check_equal(F,m,n,D,n,C,n,"bini_e",descr[algo],ok_e[algo]) ; - } - } - - /* compress */ - if (with_k && std::is_same::category,FFLAS::FieldCategories::ModularTag>::value && (! FieldTraits::balanced)) { - for (int algo = 0 ; algo < algos_k ; ++algo) { - tmp.clear();tmp.start(); - FFLAS::Protected::gemm_compress(F,m,n,k,A,k,B,n,C,n,r,selec_k[algo]); - tmp.stop(); tim_k[algo] += tmp ; - - /* checking */ - check_equal(F,m,n,D,n,C,n,"compress",descr_k[algo],ok_k[algo]) ; - - - } - } - - /* bini_p */ - for (int algo = 0 ; algo < algos ; ++algo) { - tmp.clear();tmp.start(); - FFLAS::Protected::gemm_bini_p(F,m,n,k,A,k,B,n,C,n,r,selec[algo]); - tmp.stop(); tim_p[algo] += tmp ; - - /* checking */ - check_equal(F,m,n,D,n,C,n,"bini_p",descr[algo],ok_p[algo]) ; - - - } - - FFLAS::fflas_delete(C); - FFLAS::fflas_delete(D); -} - -template -struct changeField { - typedef T other ; -}; - -template<> -struct changeField > { - typedef Givaro::Modular other; -}; - -template<> -struct changeField > { - typedef ModularBalanced other; -}; - -double descrip(int algo, int_v & ok_e, time_v & tim_e, int iters, const char ** madescr, const char * nom) -{ - int min_e = -1 ; - double bini_e = -1 ; - for (int i = 0 ; i < algo ; ++i){ - if (ok_e[i] == (int)iters) { - double bini1 = tim_e[i].usertime()/(double)ok_e[i] ; - if (bini_e < 0) { - bini_e = bini1; - min_e = (int) i ; - } - else if (bini1 < bini_e) { - min_e = (int)i ; - bini_e = bini1 ; - } - } - } - for (int i = 0 ; i < algo ; ++i){ - if (ok_e[i] == (int)iters) { - double bini1 = tim_e[i].usertime()/(double)ok_e[i] ; - std::cout << nom << " ( " << madescr[i] << " ) : " ; - if ((int)i == min_e) std::cout << " * " ; - else std::cout << " "; - std::cout << bini1 << 's'<< std::endl; - } - } - - return bini_e ; -} - - -template -void test(int m, int k, int n, int p, int r, bool with_e, bool with_k, int iters = 4, uint64_t seed=0) -{ - - typedef typename Field::Element Element; - - Element * A = FFLAS::fflas_new(m*k); - Element * B = FFLAS::fflas_new(n*k); - - - Field F(p); - typename Field::RandIter G(F,seed); - F.write(std::cout<< " * Field " ) << std::endl; - - typedef typename changeField::other Field_f ; - typedef typename Field_f::Element Element_f ; - Field_f F_f(p); - Element_f * A_f = FFLAS::fflas_new(m*k); - Element_f * B_f = FFLAS::fflas_new(n*k); - Element_f * C_f = FFLAS::fflas_new(m*n); - -#if defined(NOTRANDOM) - int i0 ; - int j0 ; - Element p2 ; F.init(p2,(int)F.mOne/2); - std::cout << p2 << std::endl; -#warning "not random" - for (int i = 0 ; i < m ; ++i) - for (int j = 0 ; j < k ; ++j) { - i0 = i/(m/3); - j0 = j/(k/2); - if (i0 == 0 and j0 == 0) A[i*k+j] = F.mOne ; - else if (i0 == 0 and j0 == 1) A[i*k+j] = F.zero ; - else if (i0 == 1 and j0 == 0) A[i*k+j] = F.mOne ; - else if (i0 == 1 and j0 == 1) A[i*k+j] = F.mOne ; - else if (i0 == 2 and j0 == 0) A[i*k+j] = F.mOne ; - else if (i0 == 2 and j0 == 1) A[i*k+j] = F.mOne ; - else A[i*k+j] = F.mOne ; - } - for (int i = 0 ; i < k ; ++i) - for (int j = 0 ; j < n ; ++j) { - i0 = i/(k/2); - j0 = j/(n/2); - if (i0 == 0 and j0 == 0) B[i*n+j] = F.mOne ; - else if (i0 == 0 and j0 == 1) B[i*n+j] = F.mOne ; - else if (i0 == 1 and j0 == 0) B[i*n+j] = F.mOne ; - else if (i0 == 1 and j0 == 1) B[i*n+j] = F.zero ; - else B[i*n+j] = F.mOne ; - - } -#endif - - time_v tim_e(algos), tim_p(algos), tim_k(algos_k); - FFLAS::Timer tim_wd; tim_wd.clear(); - FFLAS::Timer tim_wf; tim_wf.clear(); - FFLAS::Timer tmp; - for (int i = 0 ; i < algos ; ++i) { - tim_e[i].clear(); - tim_p[i].clear(); - } - for (int i = 0 ; i < algos_k ; ++i) { - tim_k[i].clear(); - } - - int_v ok_p(algos,0), ok_e(algos,0), ok_k(algos_k,0); - int nb_wd = 0 , nb_wf = 0 ; - - for (int b = 0 ; b < iters ; ++b) { - std::cout << "iter " << b+1 << " of " << iters << std::endl; -#if not defined(NOTRANDOM) - FFPACK::RandomMatrix(F, m, k, A, k, G); - FFPACK::RandomMatrix(F, k, n, B, n, G); -#endif - FFLAS::finit(F_f,m,k,A,k,A_f,k); - FFLAS::finit(F_f,k,n,B,n,B_f,n); - - tmp.clear();tmp.start(); - fgemm(F_f,FFLAS::FflasNoTrans,FFLAS::FflasNoTrans, - m,n,k, 1, A_f,k, B_f,n, 0, C_f, n); - tmp.stop(); tim_wf += tmp ; nb_wf ++ ; - - test_algos(F,m,n,k,A,k,B,n,r, - tim_k,tim_e,tim_p, - ok_k,ok_e,ok_p, - tim_wd,nb_wd, - with_e,with_k); - } - std::cout << std::endl << "results" << std::endl; - - double bini_e = descrip(algos,ok_e,tim_e,iters,descr,"Bini_e"); - double bini_p = descrip(algos,ok_p,tim_p,iters,descr,"Bini_p"); - double bini_k = descrip(algos_k,ok_k,tim_k,iters,descr_k,"Bini_k"); - - - double t_wd = tim_wd.usertime()/(double)(nb_wd); - double t_wf = tim_wf.usertime()/(double)(nb_wf); - - std::cout << "Wino d : " << t_wd << 's'<< std::endl; - std::cout << "Wino f : " << t_wf << 's'<< std::endl; - double wino = std::min(t_wd,t_wf) ; - if (bini_e>=0) - std::cout << "Gain e: " << ((bini_e-wino)/wino)*100 << '%' << std::endl; - if (bini_p>=0) - std::cout << "Gain p: " << ((bini_p-wino)/wino)*100 << '%' << std::endl; - if (bini_k>=0) - std::cout << "Gain k: " << ((bini_k-wino)/wino)*100 << '%' << std::endl; - - - - - FFLAS::fflas_delete( A ); - FFLAS::fflas_delete( B); - - FFLAS::fflas_delete( A_f ); - FFLAS::fflas_delete( B_f); - FFLAS::fflas_delete( C_f); -} - - - -int main(int ac, char **av) { - static int m = 36 ; - static int n = 12 ; - static int k = 18 ; - static int p = 101; - bool eps = false ; - bool kom = false ; - int r = 1 ; - uint64_t seed = getSeed(); - int iters = 4; - - static Argument as[] = { - { 'p', "-p P", "Set the field characteristic.", TYPE_INT , &p }, - { 'n', "-n N", "Set the number of cols in C.", TYPE_INT , &n }, - { 'm', "-m N", "Set the number of rows in C.", TYPE_INT , &m }, - { 'k', "-k N", "Set the number of rows in B.", TYPE_INT , &k }, - { 'r', "-k N", "Set the recursive number Bini.", TYPE_INT , &r }, - { 'i', "-i N", "Set the numebr of iterations.", TYPE_INT , &iters }, - { 's', "-s N", "Set the seed .", TYPE_UINT64 , &seed }, - { 'e', "-e " , "epsilon .", TYPE_NONE , &eps }, - { 'c', "-c " , "compress .", TYPE_NONE , &kom}, - END_OF_ARGUMENTS - }; - FFLAS::parseArguments(ac,av,as); - - srand(seed); - srand48(seed); - - std::cout << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" << std::endl; - std::cout << "size: " << m << ',' << k << ',' << n << std::endl; - std::cout << "mod : " << p << std::endl; - std::cout << "rec : " << r << std::endl; - std::cout << "seed: " << seed << std::endl; - std::cout << "thre: " << TRE << std::endl; - std::cout << "=====================================================" << std::endl; - test > (m,k,n,p,r,eps,kom,iters,seed); - std::cout << "=====================================================" << std::endl; - test > (m,k,n,p,r,eps,kom,iters,seed); - std::cout << "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << std::endl; - - return 0; -} -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-frobenius.C b/deps/fflas-ffpack/tests/test-frobenius.C deleted file mode 100644 index 0149c4ff5..000000000 --- a/deps/fflas-ffpack/tests/test-frobenius.C +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) FFLAS-FFPACK - * Written by Clément Pernet - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - - -//-------------------------------------------------------------------------- -// Test for the krylov-elimination -//-------------------------------------------------------------------------- -// usage: test-krylov-elim p A, to compute the rank profile of the (n+m)xn matrix B -// formed by the n identity vectors and the mxn matrix A over Z/pZ -//------------------------------------------------------------------------- - -//------------------------------------------------------------------------- - -#include -#include -#include -#include -#include "fflas-ffpack/utils/fflas_io.h" -#include "fflas-ffpack/utils/timer.h" -using namespace std; -#include "givaro/modular.h" -#include "fflas-ffpack/ffpack/ffpack.h" - - -using namespace FFPACK; -typedef Givaro::Modular Field; - -template -std::ostream& printvect(std::ostream& o, vector& vect){ - for(size_t i=0; i < vect.size()-1; ++i) - o << vect[i] << " " ; - return o << vect[vect.size()-1] << std::endl; -} - -int main(int argc, char** argv){ - - size_t m,n; - cout< "< > frobForm; - FFLAS::Timer tim; - tim.clear(); - tim.start(); - FFPACK::CharpolyArithProg (F, frobForm, n, A, n, c); - tim.stop(); - std::list >::iterator it = frobForm.begin(); - while(it != frobForm.end()){ - printvect (cout, *(it++)); - } - cerr<s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-fspmm-dlp.C b/deps/fflas-ffpack/tests/test-fspmm-dlp.C deleted file mode 100644 index 0e2648c2c..000000000 --- a/deps/fflas-ffpack/tests/test-fspmm-dlp.C +++ /dev/null @@ -1,310 +0,0 @@ -/* Copyright (c) FFLAS-FFPACK - * Written by Bastien Vialla - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - */ - -#define __DLP_CHALLENGE - -#include -#include -#include -#include -#include - -#include "gmpxx.h" -#include -#include -#include -#include -#include -#include - -#include "fflas-ffpack/fflas/fflas_sparse.h" -#include "fflas-ffpack/utils/args-parser.h" -#include "fflas-ffpack/field/rns-integer-mod.h" -#include "fflas-ffpack/fflas/fflas_sparse/read_sparse.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/flimits.h" - -#ifdef __FFLASFFPACK_USE_OPENMP -typedef FFLAS::OMPTimer TTimer; -#else -typedef FFLAS::Timer TTimer; -#endif - -using namespace std; -using namespace FFLAS; -using namespace Givaro; - -using Data = std::vector>>; -using Coo = typename Data::value_type; - -/******************************************************************************************************************* - * - * Utility functions: sms reader and random field - * - *******************************************************************************************************************/ - -void readMat(string path, index_t *& row, index_t *& col, double *&val, index_t &rowdim, index_t &coldim, uint64_t & nnz){ - std::ifstream file(path, std::ios::out); - std::string line, nnz_c; - std::getline(file, line); - std::istringstream(line) >> rowdim >> coldim >> nnz_c; - Data mat; - int64_t r, c, v; - while(std::getline(file, line)){ - std::istringstream(line) >> r >> c >> v; - if(r!=0) - mat.emplace_back(v, r-1,c-1); - } - std::sort(mat.begin(), mat.end(), - [](Coo &a, Coo &b){ - return (a.row < b.row) || ((a.row == b.row) && (a.col < b.col)); - ;}); - mat.shrink_to_fit(); - nnz = mat.size(); - val = fflas_new(nnz, Alignment::CACHE_LINE); - col = fflas_new(nnz, Alignment::CACHE_LINE); - row = fflas_new(nnz, Alignment::CACHE_LINE); - for(size_t i = 0 ; i < nnz ; ++i){ - val[i] = mat[i].val; - col[i] = mat[i].col; - row[i] = mat[i].row; - } -} - -/*************************************************************************************************************/ - -int main(int argc, char **argv) { - using Field = Modular; - using FieldMat = ZRing; - using FieldComp = FFPACK::RNSIntegerMod; - using SparseMatrix = Sparse; - uint64_t seed = getSeed(); - - Integer q = -1; - int b = 128; - int blockSize = 1; - std::string matrixFile = ""; - int nIter = 100; - - static Argument as[] = { - { 'q', "-q Q", "Set the field characteristic (-1 for random).", TYPE_INTEGER , &q }, - { 'b', "-b B", "Set the bitsize of the random characteristic.", TYPE_INT , &b }, - { 'k', "-k K", "Set the size of the block (1 by default).", TYPE_INT, &blockSize }, - { 'n', "-n N", "Number of iterations (1 by default).", TYPE_INT, &nIter }, - { 'f', "-f FILE", "Set matrix file.", TYPE_STR, &matrixFile }, - { 's', "-s seed", "Set seed for the random generator", TYPE_INT, &seed }, - END_OF_ARGUMENTS }; - - parseArguments(argc, argv, as); - - // Construct Givaro::Integer field - Field *F= chooseField(q,b,seed); - if (F==nullptr) exit(0); - Integer p; - F->cardinality(p); - cout << "Prime p: " << p << endl; - - // Pointers for the matrix - index_t *row = nullptr, *col = nullptr; - typename FieldMat::Element_ptr dat; - index_t rowdim, coldim; - uint64_t nnz; - // Field associate to the matrix - FieldMat Fword; - - // Read the matrix - readMat(matrixFile, row, col, dat, rowdim, coldim, nnz); - - vector rows(rowdim, 0); - for(size_t i = 0 ; i < nnz ; ++i) - rows[row[i]]++; - for(size_t i = 0 ; i < 20 ; ++i) - cout << "#rows with "< x(coldim, 1), y(rowdim, 0); - - cout.precision(20); - - // Compute the bigger row - fspmv(Fword, A, x.data(), 0, y.data()); - for(auto &x: y){ - if(x < 0){ - x = -x; - } - } - double maxSum = *(std::max_element(y.begin(), y.end())); - cout << "maxSum: " << maxSum << endl; - - // Compute the bitsize of the RNS primes - size_t primeBitsize = 53 - Integer(maxSum).bitsize()-1; - cout << "primeBitsize: " << primeBitsize << endl; - // construct RNS - // primeBitsize = 23; - FFPACK::rns_double_extended RNS(Integer(maxSum)*p, primeBitsize, true, 0); - size_t rnsSize = RNS._size; - cout << "M: " << RNS._M << endl; - cout << "RNS basis size: " << rnsSize << endl; - cout << "Rns basis: "; - for(auto&x:RNS._basis){ - cout << x << " "; - } - cout << endl; - cout << "RNS Mi: " << endl; - for(auto &x : RNS._Mi){ - cout << x << " "; - } - cout << endl; - cout << "RNS MMi: " << endl; - for(auto &x : RNS._MMi){ - cout << x << " "; - } - cout << endl; - // construct RNS field - FieldComp Frns(p,RNS); - - std::vector X(coldim*blockSize), Y(rowdim*blockSize, 0); - - // Fill X with random values - for(auto &x: X){ - Givaro::Integer::random_exact_2exp(x,b); - F->init(x, x); - } - - size_t ld = 0; - Integer maxRep = Integer(maxSum)*rnsSize*p; - while(maxRep.bitsize() < RNS._M.bitsize()){ - maxRep *= Integer(maxSum); - ld++; - } - ld -= 1; - cout << "Spmm by modp: " << ld << endl; - - double* Xrns = fflas_new(coldim*blockSize*rnsSize, Alignment::CACHE_LINE); - double* Yrns = fflas_new(rowdim*blockSize*rnsSize, Alignment::CACHE_LINE); - - // Transform X in RNS - RNS.init(coldim*blockSize, Xrns, X.data(), 1); - - cout << endl; - TTimer Tspmm; - TTimer Tmodp; - TTimer Ttotal; - double spmmTime = 0, modpTime = 0; - bool bb = true; - Ttotal.start(); - for(size_t kk = 1 ; kk <= nIter ; ++kk){ - // perform Yrns = A.Xrns + beta.Yrns over ZZ - Tspmm.start(); - if(bb){ - pfspmm(Fword, A, blockSize*rnsSize, Xrns, blockSize*rnsSize, 0, Yrns, blockSize*rnsSize); - RNS.reduce(rowdim*blockSize, Yrns, 1, true); - // reduce Yrns wrt the RNS basis - Tspmm.stop(); - spmmTime += Tspmm.usertime(); - - cout << "after spmm:" << endl; - for(size_t i = 0, end = (Y.size()>20)?20:Y.size() ; i < end ; ++i){ - cout << Yrns[i] << " "; - } - cout << endl; - bb = !bb; - // if(kk%ld == 0){ - Tmodp.start(); - Frns.reduce_modp_rnsmajor_scal_quad(rowdim*blockSize, FFPACK::rns_double_elt_ptr(Yrns, 1)); - Tmodp.stop(); - modpTime += Tmodp.usertime(); - cout << "after modp:" << endl; - for(size_t i = 0, end = (Y.size()>20)?20:Y.size() ; i < end ; ++i){ - cout << Yrns[i] << " "; - } - cout << endl; - // } - }else{ - fspmm(Fword, A, blockSize*rnsSize, Yrns, blockSize*rnsSize, 0, Xrns, blockSize*rnsSize); - RNS.reduce(rowdim*blockSize, Xrns, 1, true); - // reduce Yrns wrt the RNS basis - Tspmm.stop(); - spmmTime += Tspmm.usertime(); - bb = !bb; - for(size_t i = 0, end = (Y.size()>20)?20:Y.size() ; i < end ; ++i){ - cout << Xrns[i] << " "; - } - cout << endl; - // if(kk%ld == 0){ - Tmodp.start(); - Frns.reduce_modp_rnsmajor_scal_quad(rowdim*blockSize, FFPACK::rns_double_elt_ptr(Xrns, 1)); - Tmodp.stop(); - modpTime += Tmodp.usertime(); - // } - cout << "after modp:" << endl; - for(size_t i = 0, end = (Y.size()>20)?20:Y.size() ; i < end ; ++i){ - cout << Xrns[i] << " "; - } - cout << endl; - } - } - // if(bb && nIter%ld != 0){ - // Tmodp.start(); - // Frns.reduce_modp_rnsmajor_scal_quad(rowdim*blockSize, FFPACK::rns_double_elt_ptr(Yrns, 1)); - // Tmodp.stop(); - // modpTime += Tmodp.usertime(); - // }else if(!bb && nIter%ld != 0){ - // Tmodp.start(); - // Frns.reduce_modp_rnsmajor_scal_quad(rowdim*blockSize, FFPACK::rns_double_elt_ptr(Xrns, 1)); - // Tmodp.stop(); - // modpTime += Tmodp.usertime(); - // } - - // Reconstruct Y from Yrns - RNS.convert(rowdim*blockSize, Y.data(), Yrns); - Ttotal.stop(); - for(size_t i = 0 ; i < rowdim*blockSize ; ++i){ - if(Y[i] < 0){ - Integer q = -Y[i] / p; - Y[i] = p - (-Y[i] - p*q); - } - Y[i] %= p; - } - cout << "Y res:" << endl; - for(size_t i = 0, end = (Y.size()>20)?20:Y.size() ; i < end ; ++i){ - cout << Y[i] << " "; - } - cout << endl; - cout << nIter << " iterations in " << Ttotal << endl; - cout << "spmm: " << spmmTime << endl; - cout << "modp: " << modpTime << endl; - - fflas_delete(Xrns); - fflas_delete(Yrns); - - return 0; -} - -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-fspmm-recint.C b/deps/fflas-ffpack/tests/test-fspmm-recint.C deleted file mode 100644 index 43629a4d5..000000000 --- a/deps/fflas-ffpack/tests/test-fspmm-recint.C +++ /dev/null @@ -1,128 +0,0 @@ -/* Copyright (c) FFLAS-FFPACK - * Written by Bastien Vialla - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - */ - -#define __DLP_CHALLENGE - -#include -#include -#include -#include -#include - -#include "gmpxx.h" -#include -#include -#include -#include -#include -#include - - -#include "fflas-ffpack/fflas/fflas_sparse.h" -#include "fflas-ffpack/utils/args-parser.h" -#include "fflas-ffpack/field/rns-integer-mod.h" -#include "fflas-ffpack/fflas/fflas_sparse/read_sparse.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/test-utils.h" -#include "fflas-ffpack/utils/flimits.h" - -#ifdef __FFLASFFPACK_USE_OPENMP -typedef FFLAS::OMPTimer TTimer; -#else -typedef FFLAS::Timer TTimer; -#endif - -using namespace RecInt; -using namespace std; -using namespace FFLAS; -using namespace Givaro; - - -int main(int argc, char **argv) { - using Field = Modular; - using FieldMat = ZRing; - using FieldComp = FFPACK::RNSIntegerMod; - using FieldElement = RecInt::rmint<7>; - using FieldRec = ZRing; - using SparseMatrix = FFLAS::Sparse; - - uint64_t seed = getSeed(); - Integer q = -1; - int b = 128; - int blockSize = 1; - std::string matrixFile = "data/mat11.sms"; - int nIter = 100; - - static Argument as[] = { - { 'q', "-q Q", "Set the field characteristic (-1 for random).", TYPE_INTEGER , &q }, - { 'b', "-b B", "Set the bitsize of the random characteristic.", TYPE_INT , &b }, - { 'k', "-k K", "Set the size of the block (1 by default).", TYPE_INT, &blockSize }, - { 'n', "-n N", "Set the size of the block (1 by default).", TYPE_INT, &nIter }, - { 'f', "-f FILE", "Set matrix file.", TYPE_STR, &matrixFile }, - { 's', "-s seed", "Set seed for the random generator", TYPE_INT, &seed }, - END_OF_ARGUMENTS }; - - FFLAS::parseArguments(argc, argv, as); - - // Construct Givaro::Integer field - Field *F= chooseField(q,b,seed); - if (F==nullptr) exit(0); - Integer p; - F->cardinality(p); - cout << "Prime p: " << p << endl; - - RecInt::ruint<7> pRec; - // RecInt::mpz_to_ruint(pRec, FieldElement(p)); - FieldElement::init_module(ruint<7>(p)); - FieldRec Frec; - // Pointers for the matrix - index_t *row = nullptr, *col = nullptr; - typename FieldRec::Element_ptr dat; - index_t rowdim, coldim; - uint64_t nnz; - - // Read the matrix - readSmsFormat(matrixFile, Frec, row, col, dat, rowdim, coldim, nnz); - vector rowCoo(nnz, 0); - for(size_t i = 0 ; i < rowdim ; ++i){ - for(size_t j = row[i] ; j < row[i+1] ; ++j){ - rowCoo[j] = i; - } - } - - // Build the matrix - SparseMatrix A; - FFLAS::sparse_init(Frec, A, rowCoo.data(), col, dat, rowdim, coldim, nnz); - - FFLAS::fflas_delete(row); - FFLAS::fflas_delete(col); - FFLAS::fflas_delete(dat); - rowCoo.resize(0); - - vector x(coldim*blockSize, 1), y(rowdim*blockSize, 0); - - pfspmm(Frec, A, blockSize, x.data(), blockSize, 0, y.data(), blockSize); - - return 0; -} - -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-fullranksubmatrix.C b/deps/fflas-ffpack/tests/test-fullranksubmatrix.C deleted file mode 100644 index 61cbca730..000000000 --- a/deps/fflas-ffpack/tests/test-fullranksubmatrix.C +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (C) FFLAS-FFPACK - * Written by Clément Pernet - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - - -//-------------------------------------------------------------------------- -// Test for rank -// -//-------------------------------------------------------------------------- -// Clement Pernet -//------------------------------------------------------------------------- - -#include -#include -#include "fflas-ffpack/field/modular-balanced.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/fflas_io.h" -#include "fflas-ffpack/ffpack/ffpack.h" - - - -using namespace std; -using namespace FFPACK; - -typedef Givaro::Modular Field; - -int main(int argc, char** argv){ - - int n,m; - cerr< <" - <s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-igemm.C b/deps/fflas-ffpack/tests/test-igemm.C deleted file mode 100644 index 2e44e6e0b..000000000 --- a/deps/fflas-ffpack/tests/test-igemm.C +++ /dev/null @@ -1,372 +0,0 @@ -/* - * Copyright (C) the FFLAS-FFPACK group - * Written by Clément Pernet - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - -//#define SIMD_INT - -#include "fflas-ffpack/fflas-ffpack.h" -#include "fflas-ffpack/fflas/fflas_igemm/igemm.h" -#include "fflas-ffpack/utils/fflas_io.h" -#include "fflas-ffpack/utils/args-parser.h" -#include "fflas-ffpack/utils/timer.h" - -#include - -// COL_MAJOR true not supported in test. To be updated. -#define COL_MAJOR false -#define LEAD_GEN true -#define DISPLAY false -#define TRUST_FGEMM false - -using namespace FFLAS; - -int test_igemm(size_t m, size_t n, size_t k, enum FFLAS_TRANSPOSE tA, enum FFLAS_TRANSPOSE tB, int a_scal, int b_scal, bool timing) -{ - - - FFLAS::Timer tim; - - srand((unsigned int)time(NULL)); - typedef Givaro::Modular IField ; - IField Z(1_ui64<<63); - - size_t ra = (tA==FflasNoTrans) ? m : k ; - size_t ca = (tA==FflasNoTrans) ? k : m ; - size_t rb = (tB==FflasNoTrans) ? k : n; - size_t cb = (tB==FflasNoTrans) ? n : k; - - size_t lda = ca ; - size_t ldb = cb ; // n - size_t ldc = n ; // n - -#if COL_MAJOR - size_t ldA = m;//+rand() % 3 ; // m - size_t ldB = k;//+rand() % 3 ; // k - size_t ldC = m;//+rand() % 3 ; // m -#else - size_t ldA = ca ; // k - size_t ldB = cb ; // n - size_t ldC = n ; // n -#endif - -#if LEAD_GEN - lda += rand() % 5; - ldb += rand() % 5; - ldc += rand() % 5; - ldA += rand() % 5; - ldB += rand() % 5; - ldC += rand() % 5; -#endif - - - int seed=0; - typename IField::RandIter Rand(Z,seed); - // typename IField::RandIter Rand(Z,seed); - - IField::Element_ptr A,B,C,D; - C= FFLAS::fflas_new(Z,m,ldc); - D= FFLAS::fflas_new(Z,m,n); - A= FFLAS::fflas_new(Z,ra,lda); - B= FFLAS::fflas_new(Z,rb,ldb) ; - - for (size_t i=0;i FField ; - FField F ; - - FField::Element_ptr Ci,Ai,Bi; -#if COL_MAJOR - Ci= FFLAS::fflas_new(F,ldC,n); - Ai= FFLAS::fflas_new(F,ldA,k); - Bi= FFLAS::fflas_new(F,ldB,n); - - for (size_t i=0;i G(65537); - Givaro::ZRing G; - double af, bf ; - G.init(af, alpha); - G.init(bf, beta); - - double *Cf,*Af,*Bf; - Cf= FFLAS::fflas_new(G,m,ldC); - Af= FFLAS::fflas_new(G,ra,ldA); - Bf= FFLAS::fflas_new(G,rb,ldB); - - for (size_t i=0;is,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-invert.C b/deps/fflas-ffpack/tests/test-invert.C deleted file mode 100644 index 3de588072..000000000 --- a/deps/fflas-ffpack/tests/test-invert.C +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) the FFLAS-FFPACK group - * Written by Clément Pernet - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - -#define ENABLE_ALL_CHECKINGS 1 - -#define __FFLASFFPACK_SEQUENTIAL - -#include "fflas-ffpack/fflas-ffpack-config.h" - -#include -#include -#include -#include - -#include "fflas-ffpack/ffpack/ffpack.h" -#include "fflas-ffpack/utils/args-parser.h" -#include "fflas-ffpack/utils/test-utils.h" -#include -#include - - -using namespace std; -using namespace FFLAS; -using namespace FFPACK; -using Givaro::Modular; -using Givaro::ModularBalanced; - -template -bool run_with_field (Givaro::Integer q, size_t b, size_t n, size_t iters, uint64_t seed){ - bool ok = true ; - int nbit=(int)iters; - while (ok && nbit){ - Field* F= chooseField(q,b,seed); - if (F==nullptr) - return true; - - cout<<"Checking with ";F->write(cout)<one, A, lda, X, ldx, F->mOne, Y, n); - - if (! fiszero(*F,n,n,Y,n)){ - //FFLAS::WriteMatrix (std::cerr<<"Y = "< >(q,b,n,iters,seed); - ok = ok && run_with_field >(q,b,n,iters,seed); - ok = ok && run_with_field >(q,b,n,iters,seed); - ok = ok && run_with_field >(q,b,n,iters,seed); - ok = ok && run_with_field >(q,b,n,iters,seed); - ok = ok && run_with_field >(q,b,n,iters,seed); - ok = ok && run_with_field >(q,b,n,iters,seed); - ok = ok && run_with_field >(q,b,n,iters,seed); - ok = ok && run_with_field >(q,(b?b:512),n/4+1,iters,seed); - } while (loop && ok); - - return !ok ; -} -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-krylov-elim.C b/deps/fflas-ffpack/tests/test-krylov-elim.C deleted file mode 100644 index 74750df58..000000000 --- a/deps/fflas-ffpack/tests/test-krylov-elim.C +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) FFLAS-FFPACK - * Written by Clément Pernet - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - - -//-------------------------------------------------------------------------- -// Test for the krylov-elimination -//-------------------------------------------------------------------------- -// usage: test-krylov-elim p A, to compute the rank profile of the (n+m)xn matrix B -// formed by the n identity vectors and the mxn matrix A over Z/pZ -//------------------------------------------------------------------------- - -//------------------------------------------------------------------------- - -#include -#include "fflas-ffpack/utils/fflas_io.h" -#include "fflas-ffpack/utils/timer.h" -using namespace std; -#include "givaro/modular-balanced.h" -#include "fflas-ffpack/ffpack/ffpack.h" - - -using namespace FFPACK; -typedef Givaro::Modular Field; - -template -std::ostream& printvect(std::ostream& o, T* vect, size_t dim) -{ - for(size_t i=0; i "<((m+n)*n); - for (size_t i=0; i<(n+m)*n;++i) *(B+i)=0; - - size_t deg = (n-1)/m+1; - size_t curr_row = 0; - size_t it_idx = 0; - size_t bk_idx = 0; - for (size_t i=0; is,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-paladin-splitter.C b/deps/fflas-ffpack/tests/test-paladin-splitter.C deleted file mode 100644 index 58e177a33..000000000 --- a/deps/fflas-ffpack/tests/test-paladin-splitter.C +++ /dev/null @@ -1,265 +0,0 @@ -/* - * Copyright (C) the FFLAS-FFPACK group - * Written by Ziad Sultan - * - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - - -//#define __FFLASFFPACK_FORCE_SEQ - -#include "fflas-ffpack/fflas-ffpack-config.h" -#include -#include -#include -#include -#include -#include -#include - -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/fflas/fflas.h" - -#include "fflas-ffpack/utils/args-parser.h" -#include "fflas-ffpack/utils/test-utils.h" - -typedef Givaro::ModularBalanced Field; - -using namespace FFLAS; -template -bool tmain(int argc, char** argv, std::string printStrat) -{ - - std::cerr << "tmain: " << printStrat << std::endl; - - - size_t n = 2000; - bool p = true; - size_t iters = 3; - int64_t q = 131071 ; - bool dataPar = true; - int proc = MAX_THREADS; - uint64_t seed=getSeed(); - int strat = 1; - - Argument as[] = { - { 'n', "-n N", "Set the dimension of the matrix.", TYPE_INT , &n }, - { 'i', "-i N", "Set number of repetitions.", TYPE_INT , &iters }, - { 't', "-t N", "Set number of processors.", TYPE_INT , &proc }, - { 'u', "-u N", "Set the strategy parameter using t: 1 for (t, BLOCK, THREADS), 2 for (t, BLOCK, GRAIN), 3 for (t, BLOCK, FIXED), 4 for (t, ROW, THREADS), 5 for (t, ROW, GRAIN), 6 for (t, ROW, FIXED), 7 for (t, COLUMN, THREADS), 8 for (t, COLUMN, GRAIN), 9 for (t, COLUMN, FIXED), 10 for SINGLE strategy.", TYPE_INT , &strat }, - { 'p', "-p Y/N", "run the parallel program using Parallel(Y)/Sequential(N).", TYPE_BOOL , &p }, - { 'd', "-d Y/N", "run the parallel program using data parallelism(Y)/task parallelism(N).", TYPE_BOOL , &dataPar }, - { 's', "-s seed", "Set seed for the random generator", TYPE_INT, &seed }, - END_OF_ARGUMENTS - }; - parseArguments(argc,argv,as); - - size_t m = n; // matrices are square in this test - - Field F(q); - Field::RandIter G(F,seed); - - // Allocate matrices - typename Field::Element_ptr A = fflas_new (F, m, n); - typename Field::Element_ptr B = fflas_new (F, m, n); - typename Field::Element_ptr C = fflas_new (F, m, n); - typename Field::Element_ptr Acop = fflas_new (F, m, n); - - - auto CUTTER = SPLITTER(proc, CutStrat, StratParam); - - // initialize - if(dataPar){ - PARFOR1D(i, m, CUTTER, - for (size_t j=0; j<(size_t)n; ++j) - G.random (*(A+i*n+j)); - ); - - PARFOR1D(i, m, CUTTER, - for (size_t j=0; j<(size_t)n; ++j) - G.random (*(B+i*n+j)); - ); - - PARFOR1D(i, m, CUTTER, - for (size_t j=0; j<(size_t)n; ++j) - G.random (*(C+i*n+j)); - ); - } - else{ // initialize with tasks using FORBLOCK1D - PAR_BLOCK{ - SYNCH_GROUP( - FORBLOCK1D(itt, m*n, CUTTER, - TASK(MODE(WRITE(A)), - for(size_t i=itt.begin(); i!=itt.end(); ++i) - G.random (*(A+i));); - - TASK(MODE(WRITE(B)), - for(size_t i=itt.begin(); i!=itt.end(); ++i) - G.random (*(B+i));); - - TASK(MODE(WRITE(C)), - for(size_t i=itt.begin(); i!=itt.end(); ++i) - G.random (*(C+i));); - );// end of FORBLOCK1D - );// end of SYNCH_GROUP - }// end of PAR_BLOCK - } - - // copy A for verification - fassign(F,m,n,A,n,Acop,n); - - // time - Timer chrono; - double *time=new double[iters]; - - // parallel add using PARFOR1D - for (size_t it=0;it<=iters;++it){ - chrono.clear(); - if (it) chrono.start(); - - if(dataPar){ - - PARFOR1D(i, m, CUTTER, - for (size_t j=0; j<(size_t)n; ++j) - A[i*n+j] = B[i*n+j] + C[i*n+j]; - ); - } - else{ - PAR_BLOCK{ - FORBLOCK1D(itt, m*n, CUTTER, - TASK(MODE(READ(B,C) WRITE(A)), - for(size_t i=itt.begin(); i!=itt.end(); ++i) - A[i] = B[i] + C[i]; - ); - ); - } - } - - - if (it) {chrono.stop(); time[it-1]=chrono.realtime();} - - } - std::sort(time, time+iters); - double meantime = time[iters/2]; - delete[] time; - - // sequential add - chrono.clear(); - chrono.start(); - for(size_t i=0; i(argc,argv,std::string("BLOCK, THREADS")); - case 2: fail |= tmain(argc,argv,std::string("BLOCK, GRAIN")); - case 3: fail |= tmain(argc,argv,std::string("BLOCK, FIXED")); - case 4: fail |= tmain(argc,argv,std::string("ROW, THREADS")); - case 5: fail |= tmain(argc,argv,std::string("ROW, GRAIN")); - case 6: fail |= tmain(argc,argv,std::string("ROW, FIXED")); - case 7: fail |= tmain(argc,argv,std::string("COLUMN, THREADS")); - case 8: fail |= tmain(argc,argv,std::string("COLUMN, GRAIN")); - case 9: fail |= tmain(argc,argv,std::string("COLUMN, FIXED")); - case 10: fail |= tmain(argc,argv,std::string("SINGLE, THREADS")); - } - - return fail; -} -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-paladin-task.C b/deps/fflas-ffpack/tests/test-paladin-task.C deleted file mode 100644 index 22f22050d..000000000 --- a/deps/fflas-ffpack/tests/test-paladin-task.C +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (C) the FFLAS-FFPACK group - * Written by Ziad Sultan - * - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - -#undef __FFLASFFPACK_USE_OPENMP -#define __FFLASFFPACK_USE_TBB - -#include -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/fflas/fflas.h" -#include "fflas-ffpack/utils/args-parser.h" - - - -size_t add(const size_t x, const size_t y) -{ - return x+y; - -} - -size_t seq_fib(size_t n) { - if (n < 2) - return n; - else - return seq_fib(n-1) + seq_fib(n-2); -} - -size_t par_fib(const size_t n, const size_t cutoff) -{ - - size_t x=0, y=0, z=0; - // if (n < 2) - // return n; - if (n < cutoff) // The bigger the cutoff the bigger is the parallel speed-up - return seq_fib(n); - else{ - SYNCH_GROUP( - TASK(MODE(READ(n) WRITE(x) CONSTREFERENCE(x)), - x = par_fib(n-1, cutoff); - ); - - TASK(MODE(READ(n) WRITE(y) CONSTREFERENCE(y)), - y = par_fib(n-2, cutoff); - ); - - CHECK_DEPENDENCIES; - - TASK(MODE(READ(x,y) WRITE(z) CONSTREFERENCE(z,x,y)), - z=add(x,y); - ); - );//end SYNCH_GROUP - return z; - } -} - - -int main(int argc, char** argv) -{ - - size_t n = 20; - bool p = true; - size_t iters = 3; - size_t cutoff = 2; - // int64_t q = 131071 ; - // int proc = MAX_THREADS; - - Argument as[] = { - { 'n', "-n N", "Set the nth number of fibonacci to compute", TYPE_INT , &n }, - { 'c', "-c N", "Set the Cutoff at which the sequential base case is called (the bigger the cuttof is the better is the parallel speed-up)", TYPE_INT , &cutoff }, - { 'i', "-i N", "Set number of repetitions.", TYPE_INT , &iters }, - { 'p', "-p Y/N", "run the parallel program using Parallel(Y)/Sequential(N).", TYPE_BOOL , &p }, - END_OF_ARGUMENTS - }; - FFLAS::parseArguments(argc,argv,as); - // { 't', "-t N", "Set number of processors.", TYPE_INT , &proc }, - - size_t f=0; - - - // time - FFLAS::Timer chrono; - double *time=new double[iters]; - - // parallel add using PARFOR1D - for (size_t it=0;it<=iters;++it){ - chrono.clear(); - if (it) chrono.start(); - - if(p){ - PAR_BLOCK{ - f=par_fib(n, cutoff); - }// end of PAR_BLOCK - } - else - f=seq_fib(n); - if (it) {chrono.stop(); time[it-1]=chrono.realtime();} - } - - std::sort(time, time+iters); - double meantime = time[iters/2]; - delete[] time; - - // sequential add - chrono.clear(); - chrono.start(); - size_t l=seq_fib(n); - chrono.stop(); - double timeseq = chrono.realtime(); - - - // verification of the parallel result - if (f!=l) - std::cout<<"FAIL: Par_Fib("<s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-pfgemm-DSL.C b/deps/fflas-ffpack/tests/test-pfgemm-DSL.C deleted file mode 100644 index 341e7179f..000000000 --- a/deps/fflas-ffpack/tests/test-pfgemm-DSL.C +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (C) FFLAS-FFPACK - * Written by Ziad Sultan - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - - -//-------------------------------------------------------------------------- -// DSL test for pfgemm -// -//-------------------------------------------------------------------------- -// Ziad Sultan -//------------------------------------------------------------------------- -/* -*/ -#define NEWWINO -#ifndef TIME -#define TIME 1 -#endif - -#define __FFLASFFPACK_DEBUG 1 -#include -#include -using namespace std; - -#define __FFLASFFPACK_USE_OPENMP -//#define __FFLASFFPACK_USE_KAAPI - -//#define __FFLASFFPACK_FORCE_SEQ - - -#include "givaro/modular.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/fflas_io.h" -#include "fflas-ffpack/fflas/fflas.h" -#include "time.h" - -/* -#ifdef __FFLASFFPACK_USE_KAAPI -#include -#endif - -#ifdef __FFLASFFPACK_USE_OPENMP -#include -#endif -*/ - - -using namespace FFPACK; - -typedef Givaro::Modular Field; -//typedef Givaro::Modular Field; -//typedef ModularBalanced Field; -//typedef ModularBalanced Field; -//typedef Givaro::Modular Field; - -BEGIN_PARALLEL_MAIN(int argc, char** argv) -{ - - if (argc != 8) { - cerr<<"Testing pfgemm with : test-fgemm-DSL

" - <::category, - FFLAS::ParSeqHelper::Parallel> pWH (F, nbw, PSH); - for(int i = 0;i(m*n); - clock_gettime(CLOCK_REALTIME, &t0); - - //PAR_INSTR{ - - FFLAS::fgemm(F, ta, tb,m,n,k,alpha, A,lda, B,ldb, - beta,C,n, pWH); - //} - BARRIER; - clock_gettime(CLOCK_REALTIME, &t1); - delay = (double)(t1.tv_sec-t0.tv_sec)+(double)(t1.tv_nsec-t0.tv_nsec)/1000000000; - - if (i) - t_total+=delay; - - } - avrg = t_total/(nbit-1); - -#if TIME - - double mflops = (2.0*(m*k-((!F.isZero(beta))?m:0))/1000000.0)*n/avrg; - - cerr<(m*n); - for (int i=0; is,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-pluq.C b/deps/fflas-ffpack/tests/test-pluq.C deleted file mode 100644 index 66c6b1951..000000000 --- a/deps/fflas-ffpack/tests/test-pluq.C +++ /dev/null @@ -1,270 +0,0 @@ -/* - * Copyright (C) 2015 the FFLAS-FFPACK group - * Written by - * - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - * - */ - -//-------------------------------------------------------------------------- -// Test for the lqup factorisation -//-------------------------------------------------------------------------- -// usage: test-lqup p A n, for n lqup factorization -// of A over Z/pZ -//------------------------------------------------------------------------- - -//------------------------------------------------------------------------- -#define __FFLAS__TRSM_READONLY -// Debug option 0: no debug -// 1: check A = LQUP -//------------------------------------------------------------------------- - -#define ENABLE_ALL_CHECKINGS 1 -//#include "omp.h" -#define __FFPACK_LUDIVINE_CUTOFF 60 -#include -#include -#include -#include "fflas-ffpack/utils/fflas_io.h" -#include "fflas-ffpack/utils/timer.h" -#include "givaro/modular-integer.h" -#include "fflas-ffpack/ffpack/ffpack.h" -#include "fflas-ffpack/utils/test-utils.h" -#include "fflas-ffpack/fflas-ffpack-config.h" -using namespace std; -using namespace FFPACK; - - -typedef Givaro::Modular Field; - - -int main(int argc, char** argv){ - //cerr< "<(maxP); - size_t *Q = FFLAS::fflas_new(maxQ); - - //FFLAS::WriteMatrix (cerr<<"A = "<(R); - CRP = FFLAS::fflas_new(R); - // RankProfilesFromPLUQ(RRP, CRP, P, Q, m, n, R); - } - // cerr<<"Row Rank Profile = "; - // for (size_t i=0;i(m*n); - Field::Element * L, *U; - L = FFLAS::fflas_new(m*R); - U = FFLAS::fflas_new(R*n); - - for (size_t i=0; is,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-ppluq.C b/deps/fflas-ffpack/tests/test-ppluq.C deleted file mode 100644 index c2557730d..000000000 --- a/deps/fflas-ffpack/tests/test-ppluq.C +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Copyright (C) 2015 the FFLAS-FFPACK group - * Written by - * - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - * - */ - - -/* - ******************************************************* - Parallel PLUQ quad recurisve with OpenMP - ******************************************************* - - g++ -D__FFLASFFPACK_HAVE_CBLAS -Wall -g -fopenmp -O3 -march=native -mavx -I/home/sultan/soft/fflas-ffpack/ -I/usr/local/soft/givaro-3.7.1/include test-ppluq.C -L/home/pernet/Logiciels/ATLAS_1TH/lib -lcblas -latlas -L/usr/local/soft/givaro-3.7.1/lib -lgivaro -lm -lrt -Wl,-rpath -Wl,/usr/local/soft/givaro-3.7.1/lib -o test-ppluq - */ - -#include -#include -#include -#include -//#include "omp.h" - -#define __FFLASFFPACK_USE_OPENMP - -#define __FFLAS__TRSM_READONLY -#define __PFTRSM_FOR_PLUQ -#include "fflas-ffpack/utils/fflas_io.h" -#include -//#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/ffpack/ffpack.h" -#include "fflas-ffpack/fflas-ffpack.h" -#include "fflas-ffpack/fflas/fflas.h" -#include "sys/time.h" - -//#define BASECASE_K 256 -#include "fflas-ffpack/utils/test-utils.h" -//#include "fflas-ffpack/ffpack/parallel.h" - -using namespace std; -using namespace FFLAS; -using namespace FFPACK; -#ifndef MODULO -#define MODULO 1 -#endif - -#if(MODULO==1) -typedef Givaro::Modular Field; -#else -typedef Givaro::ZRing Field; -#endif - -#ifndef __FFLASFFPACK_DEBUG -#define __FFLASFFPACK_DEBUG 1 -#endif - -#ifndef SEQ -#define SEQ 1 -#endif - -void verification_PLUQ(const Field & F, typename Field::Element * B, typename Field::Element * A, - size_t * P, size_t * Q, size_t m, size_t n, size_t R) -{ - - Field::Element * X = FFLAS::fflas_new(m*n); - Field::Element * L, *U; - L = FFLAS::fflas_new(m*R); - U = FFLAS::fflas_new(R*n); - ParSeqHelper::Parallel H; - - PARFOR1D (i,m*R, H, { F.init(L[i]); F.assign(L[i], F.zero); } ); - PARFOR1D (i,m*R, H, { F.init(U[i]); F.assign(U[i], F.zero); } ); - PARFOR1D (i,m*n, H, { F.init(X[i]); F.assign(X[i], F.zero); } ); - - - PARFOR1D (i,R, H, - for (size_t j=0; j 6){ - std::cerr<<"usage : PLUQ-rec-omp

"<

"<1 ? atoi( argv[1] ) : 1009); - - m = (argc>2 ? atoi( argv[2] ) : 1024); - n = (argc>3 ? atoi( argv[3] ) : 1024); - // r = atoi( argv[4] ); - nbf = (argc>4 ? atoi( argv[4] ) : 1); - - // size_t lda = n; - - // random seed - // ifstream f("/dev/urandom"); - // size_t seed1, seed2, seed3,seed4; - // f.read(reinterpret_cast(&seed1), sizeof(seed1)); - // f.read(reinterpret_cast(&seed2), sizeof(seed2)); - // f.read(reinterpret_cast(&seed3), sizeof(seed3)); - // f.read(reinterpret_cast(&seed4), sizeof(seed4)); - - // seed1=10;seed2=12; - // seed3=13;seed4=14; - - enum FFLAS::FFLAS_DIAG diag = FFLAS::FflasNonUnit; - size_t R; - size_t RR; - - const Field F((double)p); - // Field::RandIter G(F, seed1); - - // Field::Element * U = FFLAS::fflas_new(n*n); - - ParSeqHelper::Parallel H; - - typename Field::Element* Acop; - if (argc > 5) { - FFLAS::ReadMatrix (argv[5],F,m,n,Acop,FFLAS::FflasAuto); - } else { - Field::RandIter G(F); - Acop = FFLAS::fflas_new(m*n); - PARFOR1D(i,(size_t)m, H, - for (size_t j=0; j<(size_t)n; ++j) - G.random (*(Acop+i*n+j)); - ); - - } - - // FFLAS::fflas_new(n*m); - Field::Element* A = FFLAS::fflas_new(n*m); - Field::Element* A2 = FFLAS::fflas_new(n*m); -#if __FFLASFFPACK_DEBUG - Field::Element* Adebug = FFLAS::fflas_new(n*m); - Field::Element* Adebug2 = FFLAS::fflas_new(n*m); -#endif - // std::vector Index_P(r); - - // U = construct_U(F,G, n, r, Index_P, seed4, seed3); - // A = construct_L(F,G, m, r, Index_P, seed2); - // M_randgen(F, A, U, r, m, n); - // size_t taille=m*n; - // for(size_t i=0; i(maxP); - size_t *Q = FFLAS::fflas_new(maxQ); - - size_t *P2 = FFLAS::fflas_new(maxP); - size_t *Q2 = FFLAS::fflas_new(maxQ); - - PARFOR1D(i, (size_t)m, H, - for (size_t j=0; j<(size_t)n; ++j) { - *(A+i*n+j) = *(Acop+i*n+j) ; - *(A2+i*n+j) = *(Acop+i*n+j) ; -#if __FFLASFFPACK_DEBUG - *(Adebug+i*n+j) = *(Acop+i*n+j) ; - *(Adebug2+i*n+j) = *(Acop+i*n+j) ; -#endif - } - ); - - - - for ( int i=0;i(maxP); - size_t * QQ = FFLAS::fflas_new(maxQ); - for (size_t j=0;js,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-sparse.C b/deps/fflas-ffpack/tests/test-sparse.C deleted file mode 100644 index b817dde58..000000000 --- a/deps/fflas-ffpack/tests/test-sparse.C +++ /dev/null @@ -1,391 +0,0 @@ -/* Copyright (C) 2014 FFLAS-FFPACK - * Written by : Bastien Vialla - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - */ - -#include "fflas-ffpack/fflas/fflas.h" -#include "fflas-ffpack/fflas/fflas_sparse.h" -#include "fflas-ffpack/utils/args-parser.h" -#include "givaro/modular-double.h" -#include "givaro/zring.h" - -#include -#include -#include -#include -#include -#include -#include -#include -// #include - -#include - -using namespace FFLAS; -using namespace FFPACK; -using namespace std; -using namespace Givaro; - -template T from_string(std::string const & s) { - std::stringstream ss(s); - T result; - ss >> result; // TODO handle errors - return result; -} - - - -template void testEq(PtrT y1, PtrT y2, uint64_t n) { - for (uint64_t i = 0; i < n; ++i) { - if (y1[i] != y2[i]) { - cout << "Error " << i << endl; - cout << y1[i] << " != " << y2[i] << endl; - break; - } - } -} - -template -void test_spmv(const Field &F, IndexT *row, IndexT *col, - typename Field::Element_ptr dat, index_t rowdim, index_t coldim, - uint64_t nnz, typename Field::Element_ptr x, - typename Field::Element_ptr y, typename Field::Element beta) { - MatT matrix; - sparse_init(F, matrix, row, col, dat, rowdim, coldim, nnz); - fspmv(F, matrix, x, 1, y); - sparse_delete(matrix); -} - -template -void -test_spmv_sell(const Field &F, IndexT *row, IndexT *col, - typename Field::Element_ptr dat, index_t rowdim, index_t coldim, - uint64_t nnz, Sparse &matrix, - typename Field::Element_ptr x, typename Field::Element_ptr y, - typename Field::Element beta) { - sparse_init(F, matrix, row, col, dat, rowdim, coldim, nnz); - fspmv(F, matrix, x, 1, y); - auto tmp = fflas_new(F, rowdim); - for (size_t i = 0; i < rowdim; ++i) { - tmp[i] = y[matrix.perm[i]]; - } - for (size_t i = 0; i < rowdim; ++i) { - y[i] = tmp[i]; - } - sparse_delete(matrix); - fflas_delete(tmp); -} - -template -void test_spmm(const Field &F, IndexT *row, IndexT *col, - typename Field::Element_ptr dat, index_t rowdim, index_t coldim, - uint64_t nnz, int blockSize, typename Field::Element_ptr x, - int ldx, typename Field::Element_ptr y, int ldy, - typename Field::Element beta) { - MatT matrix; - sparse_init(F, matrix, row, col, dat, rowdim, coldim, nnz); - fspmm(F, matrix, blockSize, x, ldx, beta, y, ldy); - sparse_delete(matrix); -} -#if 0 -template -void test_pspmm(const Field &F, IndexT *row, IndexT *col, - typename Field::Element_ptr dat, index_t rowdim, index_t coldim, - uint64_t nnz, int blockSize, typename Field::Element_ptr x, - int ldx, typename Field::Element_ptr y, int ldy, - typename Field::Element beta) { - MatT matrix; - sparse_init(F, matrix, row, col, dat, rowdim, coldim, nnz); - pfspmm(F, matrix, blockSize, x, ldx, beta, y, ldy); - sparse_delete(matrix); -} - -template -void test_pspmv(const Field &F, IndexT *row, IndexT *col, - typename Field::Element_ptr dat, index_t rowdim, index_t coldim, - uint64_t nnz, typename Field::Element_ptr x, - typename Field::Element_ptr y, typename Field::Element beta) { - MatT matrix; - sparse_init(F, matrix, row, col, dat, rowdim, coldim, nnz); - pfspmv(F, matrix, x, 1, y); - sparse_delete(matrix); -} - -template -void -test_pspmv_sell(const Field &F, IndexT *row, IndexT *col, - typename Field::Element_ptr dat, index_t rowdim, index_t coldim, - uint64_t nnz, Sparse &matrix, - typename Field::Element_ptr x, typename Field::Element_ptr y, - typename Field::Element beta) { - sparse_init(F, matrix, row, col, dat, rowdim, coldim, nnz); - pfspmv(F, matrix, x, 1, y); - auto tmp = fflas_new(F, rowdim, 1); - for (size_t i = 0; i < rowdim; ++i) { - tmp[i] = y[matrix.perm[i]]; - } - for (size_t i = 0; i < rowdim; ++i) { - y[i] = tmp[i]; - } - sparse_delete(matrix); - fflas_delete(tmp); -} -#endif - -int main(int argc, char **argv) { - using Field = Modular; - - Field F(101); - std::string path; - - index_t *row = nullptr, *col = nullptr; - typename Field::Element_ptr dat; - - index_t rowdim, coldim; - uint64_t nnz; - - if(argc > 1) - path = argv[1]; - - // path = "data/mat11.sms"; - index_t * st = nullptr ; - readSmsFormat(path, F, row, col, dat, rowdim, coldim, nnz); - row = fflas_new(nnz); - for (index_t j = 0 ; j < rowdim ; ++j) { - for (index_t k = row[j] ; k < row[j+1] ; ++k) - row[k] = j ; - } - - - auto x = fflas_new(F, coldim, Alignment::CACHE_LINE); - auto y = fflas_new(F, rowdim, Alignment::CACHE_LINE); - auto y1 = fflas_new(F, rowdim, Alignment::CACHE_LINE); - - for (size_t i = 0; i < coldim; ++i) { - x[i] = 1; - } - - for (size_t i = 0; i < rowdim; ++i) { - y[i] = 0; - y1[i] = 0; - } - - /************************************************************************************ - * - * SPMV - * - *************************************************************************************/ - cout << "=== spmv ===" << endl; - - test_spmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y, 1); - cout << "CSR: OK" << endl; - - test_spmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y1, 1); - - // for(size_t i = 0 ; i < 10 ; ++i) - // { - // cout << y[i] << " "; - // } - // cout << endl; - - // for(size_t i = 0 ; i < 10 ; ++i) - // { - // cout << y1[i] << " "; - // } - // cout << endl; - - cout << "CSR_ZO: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - test_spmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y1, 1); - - cout << "COO: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - test_spmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y1, 1); - - cout << "ELL: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - test_spmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y1, 1); - - cout << "ELL_simd: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - test_spmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y1, 1); - - cout << "CSR_HYB: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - test_spmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y1, 1); - - cout << "HYB_ZO: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - Sparse A; - test_spmv_sell(F, row, col, dat, rowdim, coldim, nnz, A, x, y1, 1); - - cout << "SELL: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - /************************************************************************************ - * - * pSPMV - * - *************************************************************************************/ -#if 0 - cout << "=== pspmv ===" << endl; - - test_pspmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y1, 1); - cout << "CSR: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - test_pspmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y1, 1); - - cout << "ELL: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - test_pspmv>( - F, row, col, dat, rowdim, coldim, nnz, x, y1, 1); - - cout << "ELL_simd: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - test_pspmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y1, 1); - - cout << "CSR_HYB: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - test_pspmv>(F, row, col, dat, rowdim, - coldim, nnz, x, y1, 1); - - cout << "HYB_ZO: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } - - Sparse A1; - test_pspmv_sell(F, row, col, dat, rowdim, coldim, nnz, A1, x, y1, 1); - - cout << "SELL: " << ((std::equal(y, y + rowdim, y1)) ? "OK" : "ERROR") - << endl; - - for (size_t i = 0; i < rowdim; ++i) { - y1[i] = 0; - } -#endif - // // test_spmm>(F, row, col, dat, - // rowdim, - // coldim, nnz, 1, x, 1, y, 1, 1); - // // test_pspmm>(F, row, col, dat, - // rowdim, - // coldim, nnz, 1, x, 1, y, 1, 1); - // // test_spmm>(F, row, col, dat, - // rowdim, coldim, nnz, 1, x, 1, y, 1, 1); - // // test_spmm>(F, row, col, dat, - // rowdim, - // coldim, nnz, 1, x, 1, y, 1, 1); - // // test_spmv>(F, row, col, dat, - // rowdim, coldim, nnz, x, y1, 1); - - // for(size_t i = 0 ; i < 11 ; ++i) - // { - // cout << y[i] << " "; - // } - // cout << endl; - - // for(size_t i = 0 ; i < 11 ; ++i) - // { - // cout << y1[i] << " "; - // } - // cout << endl; - - // auto bb = std::equal(y, y+rowdim, y1); - - // cout << ((bb) ? "CORRECT" : "ERROR") << endl; - - // if(!bb) - // testEq(y, y1, rowdim); - - fflas_delete(x); - fflas_delete(y); - fflas_delete(y1); - - return 0; -} -/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/test-sss.C b/deps/fflas-ffpack/tests/test-sss.C deleted file mode 100644 index a0c9ac255..000000000 --- a/deps/fflas-ffpack/tests/test-sss.C +++ /dev/null @@ -1,378 +0,0 @@ -/* - * Copyright (C) the FFLAS-FFPACK group - * Written by Hippolyte Signargout (hippolyte.signargout@ens-lyon.fr) - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - - -//------------------------------------------------------------------------- -// Test suite for the Quasi-Separable matrices in SSS format -//------------------------------------------------------------------------- - -/* Structure taken from test-quasisep.C */ -#define __FFLASFFPACK_PLUQ_THRESHOLD 5 // Recursive vs iterative PLUQ threshold (default 256) - -#include "fflas-ffpack/fflas-ffpack-config.h" -#include -#include -#include - -#include "fflas-ffpack/fflas/fflas.h" -#include "fflas-ffpack/ffpack/ffpack.h" -#include "fflas-ffpack/utils/test-utils.h" - -#include "fflas-ffpack/utils/args-parser.h" - -#include - -#define BRUHATGEN false /* true for the compression test to be executed on a QS matrix given by - RandomLTQSMatrixWithRankandQSorder - false to avoid the random generator */ - -using namespace std; -using namespace FFPACK; -using namespace FFLAS; - -/** \brief test equality between matrix reconstructed by SSSToDense and applied to identity with productSSSxTS */ -template -bool test_reconstruction_compatibility (const Field & F, size_t n, size_t s, - typename Field::ConstElement_ptr P, size_t ldp, - typename Field::ConstElement_ptr Q, size_t ldq, - typename Field::ConstElement_ptr R, size_t ldr, - typename Field::ConstElement_ptr U, size_t ldu, - typename Field::ConstElement_ptr V, size_t ldv, - typename Field::ConstElement_ptr W, size_t ldw, - typename Field::ConstElement_ptr D, size_t ldd) -{ - typename Field::Element_ptr rec = fflas_new (F, n, n); - typename Field::Element_ptr app = fflas_new (F, n, n); - typename Field::Element_ptr Id = fflas_new (F, n, n); - fidentity (F, n, n, Id, n); - - SSSToDense (F, n, s, P, ldp, Q, ldq, R, ldr, U, ldu, V, ldv, W, ldw, - D, ldd, rec, n); - productSSSxTS (F, n, n, s, F.one, P, ldp, Q, ldq, R, ldr, U, ldu, V, ldv, W, ldw, D, ldd, - Id, n, F.zero, app, n); - - bool ok = fequal (F, n, n, rec, n, app, n); - - if ( !ok ) - { - std::cout << std::endl << "ERROR: different results for reconstruction and application to identity "< Field; -//typedef ModularBalanced Field; -typedef Givaro::Modular Field; -//typedef Givaro::Modular Field; -//typedef Givaro::Modular Field; //-> bug avec w>=1 (olddynamic pealing) -//typedef Givaro::Modular Field; -//typedef GFqDom Field; - -int main(int argc, char** argv){ - FFLAS::Timer tim; - IntPrimeDom IPD; - Field::Element alpha, beta; - long p; - size_t M, K, N, Wino; - bool keepon = true; - Integer _p,tmp; - cerr< 1 ) - TMAXM = atoi(argv[1]); - if (argc > 2 ) - PRIMESIZE = atoi(argv[2]); - if (argc > 3 ) - WINOMAX = atoi(argv[3]); - if (argc > 4 ) - TMAXK = atoi(argv[4]); - else - TMAXK = TMAXM; - if (argc > 5 ) - TMAXN = atoi(argv[5]); - else - TMAXN = TMAXM; - - - enum FFLAS::FFLAS_TRANSPOSE ta, tb; - size_t lda,ldb; - Field::Element * A; - Field::Element * B; - Field::Element * C, *Cbis, *Cter; - - while (keepon){ - srandom(_p); - do{ - // max = Integer::random(2); - _p = random();//max % (2<<30); - IPD.prevprime( tmp, (_p% (1< RnValue( F, RValue ); - - - do{ - M = (size_t) random() % TMAXM; - K = (size_t) random() % TMAXK; - N = (size_t) random() % TMAXN; - Wino = random() % WINOMAX; - } while (!( (K>>Wino > 0) && (M>>Wino > 0) && (N>>Wino > 0) )); - - if (random()%2){ - ta = FFLAS::FflasTrans; - lda = M; - } - else{ - ta = FFLAS::FflasNoTrans; - lda = K; - } - if (random()%2){ - tb = FFLAS::FflasTrans; - ldb = K; - } - else{ - tb = FFLAS::FflasNoTrans; - ldb = N; - } - - A = FFLAS::fflas_new(M*K); - B = FFLAS::fflas_new(K*N); - C = FFLAS::fflas_new(M*N); - Cbis = FFLAS::fflas_new(M*N); - Cter = FFLAS::fflas_new(M*N); - - for( size_t i = 0; i < M*K; ++i ) - RValue.random( *(A+i) ); - for( size_t i = 0; i < K*N; ++i ) - RValue.random( *(B+i) ); - for( size_t i = 0; i < M*N; ++i ) - *(Cter+i) = *(Cbis+i)= RValue.random( *(C+i) ); - - RValue.random( alpha ); - RValue.random( beta ); - - cout <<"p = "<<(size_t)p<<" M = "< WH (F,Wino,FFLAS::ParSeqHelper::Sequential()); - FFLAS::fgemm (F, ta, tb, M, N, K, alpha, A, lda, B, ldb, beta, C, N, WH); - tim.stop(); - - // for (int j = 0; j < n; ++j ){ - // FFLAS::fgemv( F, FFLAS::FflasNoTrans, m, k, alpha, A, k, B+j, n, beta, Cbis+j, n); - // for (int i=0; is,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/testeur_ftrsm.C b/deps/fflas-ffpack/tests/testeur_ftrsm.C deleted file mode 100644 index 7f760eec1..000000000 --- a/deps/fflas-ffpack/tests/testeur_ftrsm.C +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Copyright (C) 2007 FFLAS-FFPACK - * Written by Clément Pernet - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - -//-------------------------------------------------------------------------- -// Sanity check for ftrsm and ftrmm -// -//-------------------------------------------------------------------------- - -#include -#include -#include "givaro/modular-balanced.h" -//#include "fflas-ffpack/field/modular-int.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/fflas_io.h" -#include "fflas-ffpack/fflas/fflas.h" -#include "givaro/givintprime.h" - -using namespace std; -using namespace FFPACK; - -//typedef Givaro::Modular Field; -//typedef Givaro::Modular Field; -typedef ModularBalanced Field; - -int main(int argc, char** argv){ - - - FFLAS::Timer tim; - Givaro::IntPrimeDom IPD; - uint64_t p; - size_t M, N, K ; - bool keepon = true; - Givaro::Integer _p,tmp; - cerr< 1 ) - TMAX = atoi(argv[1]); - if (argc > 2 ) - PRIMESIZE = atoi(argv[2]); - - FFLAS::FFLAS_TRANSPOSE trans; - FFLAS::FFLAS_SIDE side; - FFLAS::FFLAS_UPLO uplo; - FFLAS::FFLAS_DIAG diag; - size_t lda, ldb; - - Field::Element * A, *Abis, *B,* Bbis; - Field::Element alpha; - - while (keepon){ - srandom(_p); - do{ - // max = Integer::random(2); - _p = random();//max % (2<<30); - IPD.prevprime( tmp, (_p% (1<(K*K); - B = FFLAS::fflas_new(M*N); - Abis = FFLAS::fflas_new(K*K); - Bbis = FFLAS::fflas_new(M*N); - for (size_t i = 0; i < M; ++i) - for (size_t j = 0; j < N; ++j){ - RValue.random (*(B + i*N + j)); - *(Bbis + i*N + j) = *(B + i*N + j); - } - for (size_t i = 0; i < K; ++i) - for (size_t j = 0; j < K; ++j) - *(Abis + i*K + j) = RValue.random (*(A + i*K + j)); - for (size_t i = 0; i < K; ++i){ - while (F.isZero(RValue.random (*(A + i*(K+1))))); - *(Abis + i*(K +1)) = *(A + i*(K+1)); - } - - cout <<"p = "<<(size_t)p - <<" M = "<s,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/fflas-ffpack/tests/testeur_lqup.C b/deps/fflas-ffpack/tests/testeur_lqup.C deleted file mode 100644 index 5c63cd127..000000000 --- a/deps/fflas-ffpack/tests/testeur_lqup.C +++ /dev/null @@ -1,311 +0,0 @@ -/* - * Copyright (C) FFLAS-FFPACK - * Written by Clément Pernet - * This file is Free Software and part of FFLAS-FFPACK. - * - * ========LICENCE======== - * This file is part of the library FFLAS-FFPACK. - * - * FFLAS-FFPACK is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * ========LICENCE======== - *. - */ - -//-------------------------------------------------------------------------- -// Test for the lqup decomposition -// -//-------------------------------------------------------------------------- -// Clement Pernet -//------------------------------------------------------------------------- - -#include -#include -using namespace std; -//#include "fflas-ffpack/field/modular-int.h" -//#include "fflas-ffpack/field/modular-positive.h" -#include "givaro/modular-balanced.h" -#include "fflas-ffpack/utils/timer.h" -#include "fflas-ffpack/utils/fflas_io.h" -#include "fflas-ffpack/ffpack/ffpack.h" -#include "givaro/givintprime.h" - - -using namespace FFPACK; - -//typedef Givaro::Modular Field; -typedef ModularBalanced Field; -//typedef Givaro::Modular Field; -//typedef ModularBalanced Field; -//typedef Givaro::Modular Field; -//typedef GivaroZpz Field; -//typedef GivaroGfq Field; - -int main(int argc, char** argv){ - FFLAS::Timer tim; - Givaro::IntPrimeDom IPD; - uint64_t p; - size_t M, N ; - bool keepon = true; - Givaro::Integer _p,tmp; - cerr< 1 ) - TMAX = atoi(argv[1]); - if (argc > 2 ) - PRIMESIZE = atoi(argv[2]); - - FFLAS::FFLAS_TRANSPOSE ta; - FFLAS::FFLAS_DIAG diag; - size_t lda; - - Field::Element * A, *Abis, *X,* U, *L; - size_t *P, *Q; - while (keepon){ - srandom(_p); - do{ - // max = Integer::random(2); - _p = random();//max % (2<<30); - IPD.prevprime( tmp, (_p% (1<(M*N); - U = FFLAS::fflas_new(N*N); - P = FFLAS::fflas_new(M); - Q = FFLAS::fflas_new(N); - for (size_t i=0; i(M*M); - U = FFLAS::fflas_new(M*N); - P = FFLAS::fflas_new(N); - Q = FFLAS::fflas_new(M); - for (size_t i=0; i(M*M); - Field::Element * H = FFLAS::fflas_new(M*N); - size_t t; - do{ - t = (size_t) random() % 10; - } while ((!t)||(t==1)); - for (size_t i=0; is,f0,{0,g0,(0,\:0,t0,+0,=s diff --git a/deps/givaro-4.2.0/src/kernel/integer/random-integer.h b/deps/givaro-4.2.0/src/kernel/integer/random-integer.h index fec2048f8..8bbfe73a5 100644 --- a/deps/givaro-4.2.0/src/kernel/integer/random-integer.h +++ b/deps/givaro-4.2.0/src/kernel/integer/random-integer.h @@ -11,7 +11,7 @@ #include "gmp++/gmp++.h" -#if 0 +#if __cplusplus < 201703L namespace std { template using bool_constant = integral_constant;

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