From 65fa8bb35e90ce841994587db746df29c52dfe1f Mon Sep 17 00:00:00 2001
From: Pierre Esterie <pierre.esterie@inria.fr>
Date: Mon, 18 Mar 2019 13:58:36 +0100
Subject: [PATCH] Major CMake changes to a more modern cmake

---
 CMakeLists.txt                                | 1109 ++++++++---------
 CMakeModules/morse_cmake                      |    2 +-
 CMakeModules/utils.cmake                      |   26 +
 CPackConfig.cmake                             |   21 +
 Contribs/CMakeLists.txt                       |    6 -
 Doc/Doxyfile.in                               |    3 +-
 Examples/CMakeLists.txt                       |  136 +-
 ScalFMMConfig.cmake.in                        |   54 -
 Tests/CMakeLists.txt                          |  174 ++-
 Tests/GroupTree/compareDAGmapping.cpp         |    8 +-
 Tests/GroupTree/testBlockedAlgorithm.cpp      |   44 +-
 Tests/GroupTree/testBlockedAlgorithmDyn.cpp   |   40 +-
 Tests/GroupTree/testBlockedChebyshev.cpp      |   40 +-
 Tests/GroupTree/testBlockedRotation.cpp       |   40 +-
 .../GroupTree/testBlockedRotationCompare.cpp  |   38 +-
 Tests/GroupTree/testBlockedTaylor.cpp         |   40 +-
 Tests/GroupTree/testBlockedTree.cpp           |   48 +-
 Tests/GroupTree/testBlockedUniformCompare.cpp |   40 +-
 Tests/Kernels/DirectAlgorithm.cpp             |   36 +-
 Tests/Kernels/testChebAlgorithm.cpp           |    2 +-
 Tests/Kernels/testFlopsChebAlgorithm.cpp      |   22 +-
 Tests/Kernels/testOmniPath.cpp                |   36 +-
 Tests/Kernels/testP2PEfficency.cpp            |   18 +-
 Tests/Kernels/testRotationAlgorithm.cpp       |   30 +-
 Tests/Kernels/testRotationAlgorithmProc.cpp   |   30 +-
 Tests/Kernels/testRotationPeriodicBench.cpp   |   30 +-
 Tests/Kernels/testSmoothUnifAlgorithm.cpp     |    2 +-
 Tests/Kernels/testSphericalAlgorithm.cpp      |   26 +-
 Tests/Kernels/testSphericalBench.cpp          |   24 +-
 Tests/Kernels/testSphericalBlasAlgorithm.cpp  |   28 +-
 .../testSphericalBlockBlasAlgorithm.cpp       |   28 +-
 Tests/Kernels/testSphericalGalaxyCsv.cpp      |   32 +-
 Tests/Kernels/testSphericalProcAlgorithm.cpp  |   36 +-
 .../testSphericalRotationAlgorithm.cpp        |   26 +-
 Tests/Kernels/testTaylor.cpp                  |   26 +-
 Tests/Kernels/testTaylorKernel.cpp            |   26 +-
 Tests/Kernels/testTaylorSimple.cpp            |   26 +-
 Tests/Kernels/testTsmAlgorithm.cpp            |   26 +-
 Tests/Kernels/testTuneSphericalBlockBlas.cpp  |   26 +-
 Tests/Utils/testBlas.cpp                      |    4 +-
 Tests/Utils/testChebBinaryM2L.cpp             |   12 +-
 Tests/Utils/testChebBinarySymM2L.cpp          |   12 +-
 Tests/Utils/testChebInterpolator.cpp          |   20 +-
 .../testChebInterpolatorExtendedBBox.cpp      |    2 +-
 Tests/Utils/testChebM2Lprecomputation.cpp     |   16 +-
 Tests/Utils/testChebOctree.cpp                |   18 +-
 Tests/Utils/testChebSymmetries.cpp            |   12 +-
 Tests/Utils/testChebTensorProduct.cpp         |   20 +-
 Tests/Utils/testDebug.cpp                     |    4 +-
 Tests/Utils/testFFT.cpp                       |    6 -
 Tests/Utils/testFmmAlgorithm.cpp              |   30 +-
 Tests/Utils/testFmmAlgorithmProcRandom.cpp    |   38 +-
 Tests/Utils/testFmmAlgorithmProcRotation.cpp  |   34 +-
 Tests/Utils/testLapack.cpp                    |    6 +-
 Tests/Utils/testLoader.cpp                    |   22 +-
 Tests/Utils/testLoaderFMATsm.cpp              |   22 +-
 Tests/Utils/testLoaderFMATsmCreate.cpp        |    6 +-
 Tests/Utils/testMemStats.cpp                  |   28 +-
 Tests/Utils/testMpiCsvSaver.cpp               |   22 +-
 Tests/Utils/testOctree.cpp                    |   22 +-
 Tests/Utils/testOctreeFuncteur.cpp            |   22 +-
 Tests/Utils/testOctreeIter.cpp                |   20 +-
 Tests/Utils/testOctreeParallelFuncteur.cpp    |   26 +-
 Tests/Utils/testOctreeRearrangePeriodic.cpp   |   26 +-
 Tests/Utils/testOctreeRearrangeProc.cpp       |   24 +-
 Tests/Utils/testOctreeRearrangeTsm.cpp        |   28 +-
 Tests/Utils/testParameterNames.cpp            |    2 +-
 Tests/Utils/testStatsTree.cpp                 |   24 +-
 Tests/Utils/testTemplateExample.cpp           |    4 +-
 Tests/Utils/testTic.cpp                       |    4 +-
 Tests/Utils/testTreeBuilderThread.cpp         |   24 +-
 Tests/Utils/testTreeIO.cpp                    |   20 +-
 UTests/CMakeLists.txt                         |  172 ++-
 UTests/utestAlignedMemory.cpp                 |    4 +-
 UTests/utestLetTree.cpp                       |    2 +-
 Utils/CMakeLists.txt                          |   78 +-
 .../Adaptive/FAdaptChebKernel.hpp             |    0
 .../Adaptive/FAdaptUnifKernel.hpp             |    0
 .../Adaptive/FAdaptiveSequential.hpp          |    0
 {Src => include}/Adaptive/FAdaptiveStarPU.hpp |    0
 {Src => include}/Adaptive/FAdaptiveTask.hpp   |    0
 {Src => include}/Adaptive/FBox.hpp            |    0
 .../FDistributedAdaptiveTreeBuilder.hpp       |    0
 .../Adaptive/FInOrderNodeIterator.hpp         |    0
 {Src => include}/Adaptive/FNode.hpp           |    0
 {Src => include}/Adaptive/FNodeIterator.hpp   |    0
 .../Adaptive/FNodeIteratorBox.hpp             |    0
 .../Adaptive/FPrePostOrderNodeIterator.hpp    |    0
 {Src => include}/Adaptive/FTimer.hpp          |    0
 {Src => include}/Adaptive/FTree.hpp           |    0
 .../Adaptive/FUnifFlopsKernel.hpp             |    0
 .../Adaptive/FVariadicParticleContainer.hpp   |    0
 {Src => include}/Adaptive/FZCurve.hpp         |    0
 .../Adaptive/UninitNodeMemoryManager.hpp      |    0
 .../Adaptive/UninitialisedMemoryProvider.hpp  |    0
 .../Adaptive/kernel_utilities.hpp             |    0
 .../Adaptive/starpu_node_data_handles.hpp     |    0
 {Src => include}/Arranger/FAbstractMover.hpp  |    0
 .../Arranger/FArrangerPeriodic.hpp            |    0
 .../FBasicParticleContainerIndexedMover.hpp   |    0
 .../Arranger/FBasicParticleContainerMover.hpp |    0
 {Src => include}/Arranger/FOctreeArranger.hpp |    0
 .../Arranger/FOctreeArrangerProc.hpp          |    0
 .../Arranger/FParticleTypedIndexedMover.hpp   |    0
 {Src => include}/CMakeLists.txt               |    0
 {Src => include}/Components/FAbstractCell.hpp |    0
 .../Components/FAbstractKernels.hpp           |    0
 {Src => include}/Components/FAbstractLeaf.hpp |    0
 .../Components/FAbstractParticleContainer.hpp |    0
 .../Components/FAbstractSendable.hpp          |    0
 .../Components/FAbstractSerializable.hpp      |    0
 {Src => include}/Components/FBasicCell.hpp    |    0
 {Src => include}/Components/FBasicKernels.hpp |    0
 .../Components/FBasicParticle.hpp             |    0
 .../Components/FBasicParticleContainer.hpp    |    0
 .../Components/FFmaParticleContainer.hpp      |    0
 {Src => include}/Components/FParticleType.hpp |    0
 .../Components/FSimpleIndexedLeaf.hpp         |    0
 {Src => include}/Components/FSimpleLeaf.hpp   |    0
 {Src => include}/Components/FSymbolicData.hpp |    0
 {Src => include}/Components/FTestCell.hpp     |    0
 {Src => include}/Components/FTestKernels.hpp  |    0
 .../Components/FTestParticleContainer.hpp     |    0
 {Src => include}/Components/FTypedLeaf.hpp    |    0
 .../Containers/FAbstractBuffer.hpp            |    0
 .../Containers/FBlockAllocator.hpp            |    0
 {Src => include}/Containers/FBoolArray.hpp    |    0
 {Src => include}/Containers/FBufferReader.hpp |    0
 {Src => include}/Containers/FBufferWriter.hpp |    0
 .../Containers/FCoordinateComputer.hpp        |    0
 {Src => include}/Containers/FLightOctree.hpp  |    0
 {Src => include}/Containers/FList.hpp         |    0
 .../Containers/FNeighborIndexes.hpp           |    0
 {Src => include}/Containers/FOctree.hpp       |    0
 .../Containers/FParForEachOctree.hpp          |    0
 {Src => include}/Containers/FSubOctree.hpp    |    0
 .../Containers/FTreeCoordinate.hpp            |    0
 {Src => include}/Containers/FVector.hpp       |    0
 {Src => include}/Core/FAlgorithmBuilder.hpp   |    0
 {Src => include}/Core/FCoreCommon.hpp         |    0
 {Src => include}/Core/FFmmAlgorithm.hpp       |    0
 .../Core/FFmmAlgorithmNewTask.hpp             |    0
 {Src => include}/Core/FFmmAlgorithmOmp4.hpp   |    0
 .../Core/FFmmAlgorithmPeriodic.hpp            |    0
 .../Core/FFmmAlgorithmSectionTask.hpp         |    0
 {Src => include}/Core/FFmmAlgorithmTask.hpp   |    0
 {Src => include}/Core/FFmmAlgorithmThread.hpp |    0
 .../Core/FFmmAlgorithmThreadBalance.hpp       |    0
 .../Core/FFmmAlgorithmThreadProc.hpp          |    0
 .../Core/FFmmAlgorithmThreadProcPeriodic.hpp  |    0
 .../Core/FFmmAlgorithmThreadProcTsm.hpp       |    0
 .../Core/FFmmAlgorithmThreadTsm.hpp           |    0
 {Src => include}/Core/FFmmAlgorithmTsm.hpp    |    0
 {Src => include}/Core/FP2PExclusion.hpp       |    0
 .../Extensions/FExtendCellType.hpp            |    0
 {Src => include}/Files/FAbstractLoader.hpp    |    0
 {Src => include}/Files/FBasicLoader.hpp       |    0
 .../Files/FBlockedMpiInterpolation.hpp        |    0
 {Src => include}/Files/FDlpolyLoader.hpp      |    0
 {Src => include}/Files/FExportWriter.hpp      |    0
 {Src => include}/Files/FFmaGenericLoader.hpp  |    0
 {Src => include}/Files/FFmaScanfLoader.hpp    |    0
 {Src => include}/Files/FFmaTsmLoader.hpp      |    0
 .../Files/FGenerateDistribution.hpp           |    0
 {Src => include}/Files/FHLoader.hpp           |    0
 {Src => include}/Files/FIOVtk.hpp             |    2 +-
 {Src => include}/Files/FMpiFmaDivider.hpp     |    0
 .../Files/FMpiFmaGenericLoader.hpp            |    0
 {Src => include}/Files/FMpiSplitFmaLoader.hpp |    0
 .../Files/FMpiStaticTreeBuilder.hpp           |    0
 {Src => include}/Files/FMpiTreeBuilder.hpp    |    0
 {Src => include}/Files/FPerLeafLoader.hpp     |    0
 {Src => include}/Files/FRandomLoader.hpp      |    0
 {Src => include}/Files/FTreeBuilder.hpp       |    0
 {Src => include}/Files/FTreeCsvSaver.hpp      |    0
 {Src => include}/Files/FTreeIO.hpp            |    0
 {Src => include}/Files/FTreeMpiCsvSaver.hpp   |    0
 .../GroupTree/Core/FBuildGroupTree.hpp        |    0
 .../GroupTree/Core/FCheckResults.hpp          |    0
 .../Core/FDistributedGroupTreeBuilder.hpp     |    0
 .../FDistributedLETGroupTreeValidator.hpp     |    0
 .../GroupTree/Core/FGroupAttachedLeaf.hpp     |    0
 .../GroupTree/Core/FGroupAttachedLeafDyn.hpp  |    0
 .../GroupTree/Core/FGroupLinearTree.hpp       |    0
 .../GroupTree/Core/FGroupOfCells.hpp          |    0
 .../GroupTree/Core/FGroupOfCellsDyn.hpp       |    0
 .../GroupTree/Core/FGroupOfParticles.hpp      |    0
 .../GroupTree/Core/FGroupOfParticlesDyn.hpp   |    0
 .../GroupTree/Core/FGroupSeqAlgorithm.hpp     |    0
 .../GroupTree/Core/FGroupTaskAlgorithm.hpp    |    0
 .../GroupTree/Core/FGroupTaskDepAlgorithm.hpp |    0
 .../Core/FGroupTaskStarpuAlgorithm.hpp        |    0
 .../FGroupTaskStarpuImplicitAlgorithm.hpp     |    0
 .../Core/FGroupTaskStarpuMpiAlgorithm.hpp     |    0
 .../GroupTree/Core/FGroupTools.hpp            |    0
 .../GroupTree/Core/FGroupTree.hpp             |    0
 .../GroupTree/Core/FGroupTreeDyn.hpp          |    0
 .../GroupTree/Core/FOutOfBlockInteraction.hpp |    0
 .../Core/FP2PGroupParticleContainer.hpp       |    0
 .../Core/starpu_codelet_parameters.h          |    0
 .../GroupTree/Cuda/FCudaCompositeCell.hpp     |    0
 {Src => include}/GroupTree/Cuda/FCudaData.hpp |    0
 .../GroupTree/Cuda/FCudaDeviceWrapper.cu      |    0
 .../GroupTree/Cuda/FCudaDeviceWrapper.hpp     |    0
 .../GroupTree/Cuda/FCudaEmptyCellSymb.hpp     |    0
 .../GroupTree/Cuda/FCudaEmptyKernel.hpp       |    0
 .../GroupTree/Cuda/FCudaGlobal.hpp            |    0
 .../GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp |    0
 .../GroupTree/Cuda/FCudaGroupOfCells.hpp      |    0
 .../GroupTree/Cuda/FCudaGroupOfParticles.hpp  |    0
 .../GroupTree/Cuda/FCudaStructParams.hpp      |    0
 {Src => include}/GroupTree/Cuda/FCudaTic.hpp  |    0
 .../GroupTree/Cuda/FCudaTreeCoordinate.hpp    |    0
 .../GroupTree/OpenCl/FEmptyKernel.cl          |    0
 .../GroupTree/OpenCl/FEmptyOpenCLCode.hpp     |    0
 .../GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp |    0
 .../GroupTree/OpenCl/FTextReplacer.hpp        |    0
 {Src => include}/GroupTree/P2P/FCudaP2P.hpp   |    0
 .../GroupTree/StarPUUtils/FOmpPriorities.hpp  |    0
 .../FStarPUCptInteractionsWrapper.hpp         |    0
 .../StarPUUtils/FStarPUCpuWrapper.hpp         |    0
 .../StarPUUtils/FStarPUCudaWrapper.hpp        |    0
 .../StarPUUtils/FStarPUDefaultAlign.hpp       |    0
 .../StarPUUtils/FStarPUFmmPriorities.hpp      |    0
 .../StarPUUtils/FStarPUFmmPrioritiesV2.hpp    |    0
 .../StarPUUtils/FStarPUHeteoprio.hpp          |    0
 .../StarPUUtils/FStarPUKernelCapacities.hpp   |    0
 .../StarPUUtils/FStarPUOpenClWrapper.hpp      |    0
 .../GroupTree/StarPUUtils/FStarPUReduxCpu.hpp |    0
 .../GroupTree/StarPUUtils/FStarPUUtils.hpp    |    0
 .../GroupTree/TestKernel/FCudaTestKernels.hpp |    0
 .../FGroupTestParticleContainer.hpp           |    0
 .../GroupTree/TestKernel/FTestKernel.cl       |    0
 .../GroupTree/TestKernel/FTestOpenCLCode.hpp  |    0
 .../GroupTree/Uniform/FUnifCuda.hpp           |    0
 .../GroupTree/Uniform/FUnifCudaSharedData.hpp |    0
 .../GroupTree/Uniform/FUniformKernel.cl       |    0
 .../GroupTree/Uniform/FUniformOpenCLCode.hpp  |    0
 .../Kernels/Chebyshev/FAbstractChebKernel.hpp |    0
 .../Kernels/Chebyshev/FChebCell.hpp           |    0
 .../Kernels/Chebyshev/FChebDenseKernel.hpp    |    0
 .../Chebyshev/FChebDenseM2LHandler.hpp        |    0
 .../Kernels/Chebyshev/FChebFlopsSymKernel.hpp |    0
 .../Kernels/Chebyshev/FChebInterpolator.hpp   |    0
 .../Kernels/Chebyshev/FChebKernel.hpp         |    0
 .../Kernels/Chebyshev/FChebM2LHandler.hpp     |    0
 .../Kernels/Chebyshev/FChebRoots.hpp          |    0
 .../Kernels/Chebyshev/FChebSymKernel.hpp      |    0
 .../Kernels/Chebyshev/FChebSymM2LHandler.hpp  |    0
 .../Kernels/Chebyshev/FChebTensor.hpp         |    0
 .../Chebyshev/FChebTensorialKernel.hpp        |    0
 .../Chebyshev/FChebTensorialM2LHandler.hpp    |    0
 {Src => include}/Kernels/FKernelConcepts.hpp  |    0
 .../Kernels/Generic/FGenericData.hpp          |    0
 .../Kernels/Interpolation/FCutOffKernel.hpp   |    0
 .../Kernels/Interpolation/FInterpCell.hpp     |    0
 .../Kernels/Interpolation/FInterpMapping.hpp  |    0
 .../Interpolation/FInterpMatrixKernel.hpp     |    0
 .../FInterpMatrixKernel_Covariance.hpp        |    0
 ...terpMatrixKernel_TensorialInteractions.hpp |    0
 .../Interpolation/FInterpP2PKernels.hpp       |    0
 .../Interpolation/FInterpSymmetries.hpp       |    0
 .../Kernels/Interpolation/FInterpTensor.hpp   |    0
 {Src => include}/Kernels/P2P/FP2P.hpp         |    0
 {Src => include}/Kernels/P2P/FP2PMultiRhs.hpp |    0
 .../Kernels/P2P/FP2PParticleContainer.hpp     |    0
 .../P2P/FP2PParticleContainerIndexed.hpp      |    0
 {Src => include}/Kernels/P2P/FP2PR.hpp        |    0
 .../Kernels/P2P/FP2PTensorialKij.hpp          |    0
 .../Kernels/Rotation/FRotationCell.hpp        |    0
 .../Kernels/Rotation/FRotationKernel.hpp      |    0
 .../Rotation/FRotationOriginalKernel.hpp      |    0
 .../Rotation/FRotationParticleContainer.hpp   |    0
 .../Spherical/FAbstractSphericalKernel.hpp    |    0
 .../Kernels/Spherical/FHarmonic.hpp           |    0
 .../Spherical/FSphericalBlasKernel.hpp        |    0
 .../Spherical/FSphericalBlockBlasKernel.hpp   |    0
 .../Kernels/Spherical/FSphericalCell.hpp      |    0
 .../Kernels/Spherical/FSphericalKernel.hpp    |    0
 .../Spherical/FSphericalRotationKernel.hpp    |    0
 .../Kernels/Taylor/FTaylorCell.hpp            |    0
 .../Kernels/Taylor/FTaylorFlopsKernel.hpp     |    0
 .../Kernels/Taylor/FTaylorKernel.hpp          |    0
 .../Kernels/Taylor/FTaylorKernelSimple.hpp    |    0
 .../Kernels/Uniform/FAbstractUnifKernel.hpp   |    0
 .../Kernels/Uniform/FUnifCell.hpp             |    0
 .../Kernels/Uniform/FUnifDenseKernel.hpp      |    0
 .../Kernels/Uniform/FUnifInterpolator.hpp     |    0
 .../Kernels/Uniform/FUnifKernel.hpp           |    0
 .../Kernels/Uniform/FUnifM2LHandler.hpp       |    0
 .../Kernels/Uniform/FUnifRoots.hpp            |    0
 .../Kernels/Uniform/FUnifSymM2LHandler.hpp    |    0
 .../Kernels/Uniform/FUnifTensor.hpp           |    0
 .../Kernels/Uniform/FUnifTensorialKernel.hpp  |    0
 .../Uniform/FUnifTensorialM2LHandler.hpp      |    0
 {Src => include}/ScalFmmConfig.h.cmake        |    0
 .../Utils/FAbstractBalanceAlgorithm.hpp       |    0
 {Src => include}/Utils/FAca.hpp               |    0
 {Src => include}/Utils/FAlgorithmTimers.hpp   |    0
 {Src => include}/Utils/FAlignedAllocator.hpp  |    0
 {Src => include}/Utils/FAlignedMemory.hpp     |    0
 {Src => include}/Utils/FAssert.hpp            |    0
 {Src => include}/Utils/FBinding.hpp           |    0
 {Src => include}/Utils/FBitonicSort.hpp       |    0
 {Src => include}/Utils/FBlas.hpp              |    0
 {Src => include}/Utils/FCompareResults.hpp    |    0
 {Src => include}/Utils/FComplex.hpp           |    0
 {Src => include}/Utils/FConstFuncs.hpp        |    0
 {Src => include}/Utils/FDft.hpp               |    2 +
 {Src => include}/Utils/FDoc.hpp               |    0
 {Src => include}/Utils/FEnv.hpp               |    0
 {Src => include}/Utils/FEqualize.hpp          |    0
 {Src => include}/Utils/FFortranMangling.hpp   |    0
 {Src => include}/Utils/FGlobal.hpp            |    0
 {Src => include}/Utils/FGlobalPeriodic.hpp    |    0
 {Src => include}/Utils/FLeafBalance.hpp       |    0
 {Src => include}/Utils/FLog.hpp               |    0
 {Src => include}/Utils/FMath.hpp              |    0
 {Src => include}/Utils/FMemStats.h            |    0
 {Src => include}/Utils/FMemUtils.hpp          |    0
 {Src => include}/Utils/FMpi.hpp               |    0
 {Src => include}/Utils/FNoCopyable.hpp        |    0
 {Src => include}/Utils/FOffetOf.hpp           |    0
 {Src => include}/Utils/FOstreamTuple.hpp      |    0
 {Src => include}/Utils/FParObject.hpp         |    0
 {Src => include}/Utils/FParameterNames.hpp    |    0
 {Src => include}/Utils/FParameters.hpp        |    0
 {Src => include}/Utils/FPartitionsMapping.hpp |    0
 {Src => include}/Utils/FPoint.hpp             |    0
 {Src => include}/Utils/FQuickSort.hpp         |    0
 {Src => include}/Utils/FQuickSortMpi.hpp      |    0
 {Src => include}/Utils/FRepeatAction.hpp      |    0
 {Src => include}/Utils/FSignalHandler.h       |    0
 {Src => include}/Utils/FSmartPointer.hpp      |    0
 {Src => include}/Utils/FSpherical.hpp         |    0
 {Src => include}/Utils/FStdAlignPolyfill.hpp  |    0
 {Src => include}/Utils/FSvd.hpp               |    0
 {Src => include}/Utils/FTaskTimer.hpp         |    0
 {Src => include}/Utils/FTemplate.hpp          |    0
 {Src => include}/Utils/FTic.hpp               |    0
 {Src => include}/Utils/FTypePack.hpp          |    0
 {Src => include}/Utils/make_unique.hpp        |    0
 {Src => include}/Utils/stdComplex.hpp         |    0
 {Src => include}/Utils/variadic_container.hpp |    0
 .../algorithm/distributed/distribute.hpp      |    0
 .../distributed/impl_sort/binary_search.hpp   |    0
 .../inria/algorithm/distributed/mpi.hpp       |    0
 .../inria/algorithm/distributed/sort.hpp      |    0
 .../inria/algorithm/distributed/unique.hpp    |    0
 {Contribs => include}/inria/checker.hpp       |    0
 {Contribs => include}/inria/ct_array.hpp      |    0
 .../inria/detection_idiom.hpp                 |    0
 .../inria/integer_sequence.hpp                |    2 +-
 {Contribs => include}/inria/io.hpp            |    0
 .../inria/linear_tree/balance_tree.hpp        |    0
 .../inria/linear_tree/configuration.hpp       |    0
 .../distributed_regions_to_linear_tree.hpp    |    0
 .../linear_tree/gather_octant_weights.hpp     |    0
 .../inria/linear_tree/linear_tree.hpp         |    0
 .../inria/linear_tree/linearize.hpp           |    0
 .../inria/linear_tree/node.hpp                |    0
 .../inria/linear_tree/node_info_traits.hpp    |    0
 .../inria/linear_tree/region.hpp              |    0
 .../inria/linear_tree/weight_traits.hpp       |    0
 {Contribs => include}/inria/logic.hpp         |    0
 {Contribs => include}/inria/meta.hpp          |    0
 .../inria/ostream_joiner.hpp                  |    0
 .../inria/ostream_typeinfo.hpp                |    0
 {Contribs => include}/inria/require_input.hpp |    0
 {Contribs => include}/inria/span.hpp          |    0
 .../inria/tcli/exceptions.hpp                 |    0
 .../inria/tcli/help_descriptor.hpp            |    0
 .../inria/tcli/impl_tcli/meta.hpp             |    0
 .../inria/tcli/impl_tcli/parameter_model.hpp  |    0
 .../inria/tcli/impl_tcli/utils.hpp            |    0
 {Contribs => include}/inria/tcli/tcli.hpp     |    0
 {Contribs => include}/inria/utils.hpp         |    0
 {Contribs => include}/inria/version.hpp       |    0
 {Contribs => include}/json.hpp                |    0
 scalfmmConfig.cmake.in                        |   74 ++
 {Src/Utils => src}/FAlgorithmTimers.cpp       |    2 +-
 {Src/Utils => src}/FLog.cpp                   |    2 +-
 {Src/Utils => src}/FMemStats.cpp              |    2 +-
 {Src/Utils => src}/FMpi.cpp                   |    2 +-
 {Src/Utils => src}/FSignalHandler.cpp         |    4 +-
 385 files changed, 1612 insertions(+), 1721 deletions(-)
 create mode 100644 CMakeModules/utils.cmake
 create mode 100644 CPackConfig.cmake
 delete mode 100644 Contribs/CMakeLists.txt
 delete mode 100644 ScalFMMConfig.cmake.in
 rename {Src => include}/Adaptive/FAdaptChebKernel.hpp (100%)
 rename {Src => include}/Adaptive/FAdaptUnifKernel.hpp (100%)
 rename {Src => include}/Adaptive/FAdaptiveSequential.hpp (100%)
 rename {Src => include}/Adaptive/FAdaptiveStarPU.hpp (100%)
 rename {Src => include}/Adaptive/FAdaptiveTask.hpp (100%)
 rename {Src => include}/Adaptive/FBox.hpp (100%)
 rename {Src => include}/Adaptive/FDistributedAdaptiveTreeBuilder.hpp (100%)
 rename {Src => include}/Adaptive/FInOrderNodeIterator.hpp (100%)
 rename {Src => include}/Adaptive/FNode.hpp (100%)
 rename {Src => include}/Adaptive/FNodeIterator.hpp (100%)
 rename {Src => include}/Adaptive/FNodeIteratorBox.hpp (100%)
 rename {Src => include}/Adaptive/FPrePostOrderNodeIterator.hpp (100%)
 rename {Src => include}/Adaptive/FTimer.hpp (100%)
 rename {Src => include}/Adaptive/FTree.hpp (100%)
 rename {Src => include}/Adaptive/FUnifFlopsKernel.hpp (100%)
 rename {Src => include}/Adaptive/FVariadicParticleContainer.hpp (100%)
 rename {Src => include}/Adaptive/FZCurve.hpp (100%)
 rename {Src => include}/Adaptive/UninitNodeMemoryManager.hpp (100%)
 rename {Src => include}/Adaptive/UninitialisedMemoryProvider.hpp (100%)
 rename {Src => include}/Adaptive/kernel_utilities.hpp (100%)
 rename {Src => include}/Adaptive/starpu_node_data_handles.hpp (100%)
 rename {Src => include}/Arranger/FAbstractMover.hpp (100%)
 rename {Src => include}/Arranger/FArrangerPeriodic.hpp (100%)
 rename {Src => include}/Arranger/FBasicParticleContainerIndexedMover.hpp (100%)
 rename {Src => include}/Arranger/FBasicParticleContainerMover.hpp (100%)
 rename {Src => include}/Arranger/FOctreeArranger.hpp (100%)
 rename {Src => include}/Arranger/FOctreeArrangerProc.hpp (100%)
 rename {Src => include}/Arranger/FParticleTypedIndexedMover.hpp (100%)
 rename {Src => include}/CMakeLists.txt (100%)
 rename {Src => include}/Components/FAbstractCell.hpp (100%)
 rename {Src => include}/Components/FAbstractKernels.hpp (100%)
 rename {Src => include}/Components/FAbstractLeaf.hpp (100%)
 rename {Src => include}/Components/FAbstractParticleContainer.hpp (100%)
 rename {Src => include}/Components/FAbstractSendable.hpp (100%)
 rename {Src => include}/Components/FAbstractSerializable.hpp (100%)
 rename {Src => include}/Components/FBasicCell.hpp (100%)
 rename {Src => include}/Components/FBasicKernels.hpp (100%)
 rename {Src => include}/Components/FBasicParticle.hpp (100%)
 rename {Src => include}/Components/FBasicParticleContainer.hpp (100%)
 rename {Src => include}/Components/FFmaParticleContainer.hpp (100%)
 rename {Src => include}/Components/FParticleType.hpp (100%)
 rename {Src => include}/Components/FSimpleIndexedLeaf.hpp (100%)
 rename {Src => include}/Components/FSimpleLeaf.hpp (100%)
 rename {Src => include}/Components/FSymbolicData.hpp (100%)
 rename {Src => include}/Components/FTestCell.hpp (100%)
 rename {Src => include}/Components/FTestKernels.hpp (100%)
 rename {Src => include}/Components/FTestParticleContainer.hpp (100%)
 rename {Src => include}/Components/FTypedLeaf.hpp (100%)
 rename {Src => include}/Containers/FAbstractBuffer.hpp (100%)
 rename {Src => include}/Containers/FBlockAllocator.hpp (100%)
 rename {Src => include}/Containers/FBoolArray.hpp (100%)
 rename {Src => include}/Containers/FBufferReader.hpp (100%)
 rename {Src => include}/Containers/FBufferWriter.hpp (100%)
 rename {Src => include}/Containers/FCoordinateComputer.hpp (100%)
 rename {Src => include}/Containers/FLightOctree.hpp (100%)
 rename {Src => include}/Containers/FList.hpp (100%)
 rename {Src => include}/Containers/FNeighborIndexes.hpp (100%)
 rename {Src => include}/Containers/FOctree.hpp (100%)
 rename {Src => include}/Containers/FParForEachOctree.hpp (100%)
 rename {Src => include}/Containers/FSubOctree.hpp (100%)
 rename {Src => include}/Containers/FTreeCoordinate.hpp (100%)
 rename {Src => include}/Containers/FVector.hpp (100%)
 rename {Src => include}/Core/FAlgorithmBuilder.hpp (100%)
 rename {Src => include}/Core/FCoreCommon.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithm.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmNewTask.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmOmp4.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmPeriodic.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmSectionTask.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmTask.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmThread.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmThreadBalance.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmThreadProc.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmThreadProcPeriodic.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmThreadProcTsm.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmThreadTsm.hpp (100%)
 rename {Src => include}/Core/FFmmAlgorithmTsm.hpp (100%)
 rename {Src => include}/Core/FP2PExclusion.hpp (100%)
 rename {Src => include}/Extensions/FExtendCellType.hpp (100%)
 rename {Src => include}/Files/FAbstractLoader.hpp (100%)
 rename {Src => include}/Files/FBasicLoader.hpp (100%)
 rename {Src => include}/Files/FBlockedMpiInterpolation.hpp (100%)
 rename {Src => include}/Files/FDlpolyLoader.hpp (100%)
 rename {Src => include}/Files/FExportWriter.hpp (100%)
 rename {Src => include}/Files/FFmaGenericLoader.hpp (100%)
 rename {Src => include}/Files/FFmaScanfLoader.hpp (100%)
 rename {Src => include}/Files/FFmaTsmLoader.hpp (100%)
 rename {Src => include}/Files/FGenerateDistribution.hpp (100%)
 rename {Src => include}/Files/FHLoader.hpp (100%)
 rename {Src => include}/Files/FIOVtk.hpp (99%)
 rename {Src => include}/Files/FMpiFmaDivider.hpp (100%)
 rename {Src => include}/Files/FMpiFmaGenericLoader.hpp (100%)
 rename {Src => include}/Files/FMpiSplitFmaLoader.hpp (100%)
 rename {Src => include}/Files/FMpiStaticTreeBuilder.hpp (100%)
 rename {Src => include}/Files/FMpiTreeBuilder.hpp (100%)
 rename {Src => include}/Files/FPerLeafLoader.hpp (100%)
 rename {Src => include}/Files/FRandomLoader.hpp (100%)
 rename {Src => include}/Files/FTreeBuilder.hpp (100%)
 rename {Src => include}/Files/FTreeCsvSaver.hpp (100%)
 rename {Src => include}/Files/FTreeIO.hpp (100%)
 rename {Src => include}/Files/FTreeMpiCsvSaver.hpp (100%)
 rename {Src => include}/GroupTree/Core/FBuildGroupTree.hpp (100%)
 rename {Src => include}/GroupTree/Core/FCheckResults.hpp (100%)
 rename {Src => include}/GroupTree/Core/FDistributedGroupTreeBuilder.hpp (100%)
 rename {Src => include}/GroupTree/Core/FDistributedLETGroupTreeValidator.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupAttachedLeaf.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupAttachedLeafDyn.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupLinearTree.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupOfCells.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupOfCellsDyn.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupOfParticles.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupOfParticlesDyn.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupSeqAlgorithm.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupTaskAlgorithm.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupTaskDepAlgorithm.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupTaskStarpuImplicitAlgorithm.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupTools.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupTree.hpp (100%)
 rename {Src => include}/GroupTree/Core/FGroupTreeDyn.hpp (100%)
 rename {Src => include}/GroupTree/Core/FOutOfBlockInteraction.hpp (100%)
 rename {Src => include}/GroupTree/Core/FP2PGroupParticleContainer.hpp (100%)
 rename {Src => include}/GroupTree/Core/starpu_codelet_parameters.h (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaCompositeCell.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaData.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaDeviceWrapper.cu (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaDeviceWrapper.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaEmptyCellSymb.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaEmptyKernel.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaGlobal.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaGroupOfCells.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaGroupOfParticles.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaStructParams.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaTic.hpp (100%)
 rename {Src => include}/GroupTree/Cuda/FCudaTreeCoordinate.hpp (100%)
 rename {Src => include}/GroupTree/OpenCl/FEmptyKernel.cl (100%)
 rename {Src => include}/GroupTree/OpenCl/FEmptyOpenCLCode.hpp (100%)
 rename {Src => include}/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp (100%)
 rename {Src => include}/GroupTree/OpenCl/FTextReplacer.hpp (100%)
 rename {Src => include}/GroupTree/P2P/FCudaP2P.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FOmpPriorities.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUReduxCpu.hpp (100%)
 rename {Src => include}/GroupTree/StarPUUtils/FStarPUUtils.hpp (100%)
 rename {Src => include}/GroupTree/TestKernel/FCudaTestKernels.hpp (100%)
 rename {Src => include}/GroupTree/TestKernel/FGroupTestParticleContainer.hpp (100%)
 rename {Src => include}/GroupTree/TestKernel/FTestKernel.cl (100%)
 rename {Src => include}/GroupTree/TestKernel/FTestOpenCLCode.hpp (100%)
 rename {Src => include}/GroupTree/Uniform/FUnifCuda.hpp (100%)
 rename {Src => include}/GroupTree/Uniform/FUnifCudaSharedData.hpp (100%)
 rename {Src => include}/GroupTree/Uniform/FUniformKernel.cl (100%)
 rename {Src => include}/GroupTree/Uniform/FUniformOpenCLCode.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FAbstractChebKernel.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebCell.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebDenseKernel.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebDenseM2LHandler.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebFlopsSymKernel.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebInterpolator.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebKernel.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebM2LHandler.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebRoots.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebSymKernel.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebSymM2LHandler.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebTensor.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebTensorialKernel.hpp (100%)
 rename {Src => include}/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp (100%)
 rename {Src => include}/Kernels/FKernelConcepts.hpp (100%)
 rename {Src => include}/Kernels/Generic/FGenericData.hpp (100%)
 rename {Src => include}/Kernels/Interpolation/FCutOffKernel.hpp (100%)
 rename {Src => include}/Kernels/Interpolation/FInterpCell.hpp (100%)
 rename {Src => include}/Kernels/Interpolation/FInterpMapping.hpp (100%)
 rename {Src => include}/Kernels/Interpolation/FInterpMatrixKernel.hpp (100%)
 rename {Src => include}/Kernels/Interpolation/FInterpMatrixKernel_Covariance.hpp (100%)
 rename {Src => include}/Kernels/Interpolation/FInterpMatrixKernel_TensorialInteractions.hpp (100%)
 rename {Src => include}/Kernels/Interpolation/FInterpP2PKernels.hpp (100%)
 rename {Src => include}/Kernels/Interpolation/FInterpSymmetries.hpp (100%)
 rename {Src => include}/Kernels/Interpolation/FInterpTensor.hpp (100%)
 rename {Src => include}/Kernels/P2P/FP2P.hpp (100%)
 rename {Src => include}/Kernels/P2P/FP2PMultiRhs.hpp (100%)
 rename {Src => include}/Kernels/P2P/FP2PParticleContainer.hpp (100%)
 rename {Src => include}/Kernels/P2P/FP2PParticleContainerIndexed.hpp (100%)
 rename {Src => include}/Kernels/P2P/FP2PR.hpp (100%)
 rename {Src => include}/Kernels/P2P/FP2PTensorialKij.hpp (100%)
 rename {Src => include}/Kernels/Rotation/FRotationCell.hpp (100%)
 rename {Src => include}/Kernels/Rotation/FRotationKernel.hpp (100%)
 rename {Src => include}/Kernels/Rotation/FRotationOriginalKernel.hpp (100%)
 rename {Src => include}/Kernels/Rotation/FRotationParticleContainer.hpp (100%)
 rename {Src => include}/Kernels/Spherical/FAbstractSphericalKernel.hpp (100%)
 rename {Src => include}/Kernels/Spherical/FHarmonic.hpp (100%)
 rename {Src => include}/Kernels/Spherical/FSphericalBlasKernel.hpp (100%)
 rename {Src => include}/Kernels/Spherical/FSphericalBlockBlasKernel.hpp (100%)
 rename {Src => include}/Kernels/Spherical/FSphericalCell.hpp (100%)
 rename {Src => include}/Kernels/Spherical/FSphericalKernel.hpp (100%)
 rename {Src => include}/Kernels/Spherical/FSphericalRotationKernel.hpp (100%)
 rename {Src => include}/Kernels/Taylor/FTaylorCell.hpp (100%)
 rename {Src => include}/Kernels/Taylor/FTaylorFlopsKernel.hpp (100%)
 rename {Src => include}/Kernels/Taylor/FTaylorKernel.hpp (100%)
 rename {Src => include}/Kernels/Taylor/FTaylorKernelSimple.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FAbstractUnifKernel.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FUnifCell.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FUnifDenseKernel.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FUnifInterpolator.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FUnifKernel.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FUnifM2LHandler.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FUnifRoots.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FUnifSymM2LHandler.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FUnifTensor.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FUnifTensorialKernel.hpp (100%)
 rename {Src => include}/Kernels/Uniform/FUnifTensorialM2LHandler.hpp (100%)
 rename {Src => include}/ScalFmmConfig.h.cmake (100%)
 rename {Src => include}/Utils/FAbstractBalanceAlgorithm.hpp (100%)
 rename {Src => include}/Utils/FAca.hpp (100%)
 rename {Src => include}/Utils/FAlgorithmTimers.hpp (100%)
 rename {Src => include}/Utils/FAlignedAllocator.hpp (100%)
 rename {Src => include}/Utils/FAlignedMemory.hpp (100%)
 rename {Src => include}/Utils/FAssert.hpp (100%)
 rename {Src => include}/Utils/FBinding.hpp (100%)
 rename {Src => include}/Utils/FBitonicSort.hpp (100%)
 rename {Src => include}/Utils/FBlas.hpp (100%)
 rename {Src => include}/Utils/FCompareResults.hpp (100%)
 rename {Src => include}/Utils/FComplex.hpp (100%)
 rename {Src => include}/Utils/FConstFuncs.hpp (100%)
 rename {Src => include}/Utils/FDft.hpp (99%)
 rename {Src => include}/Utils/FDoc.hpp (100%)
 rename {Src => include}/Utils/FEnv.hpp (100%)
 rename {Src => include}/Utils/FEqualize.hpp (100%)
 rename {Src => include}/Utils/FFortranMangling.hpp (100%)
 rename {Src => include}/Utils/FGlobal.hpp (100%)
 rename {Src => include}/Utils/FGlobalPeriodic.hpp (100%)
 rename {Src => include}/Utils/FLeafBalance.hpp (100%)
 rename {Src => include}/Utils/FLog.hpp (100%)
 rename {Src => include}/Utils/FMath.hpp (100%)
 rename {Src => include}/Utils/FMemStats.h (100%)
 rename {Src => include}/Utils/FMemUtils.hpp (100%)
 rename {Src => include}/Utils/FMpi.hpp (100%)
 rename {Src => include}/Utils/FNoCopyable.hpp (100%)
 rename {Src => include}/Utils/FOffetOf.hpp (100%)
 rename {Src => include}/Utils/FOstreamTuple.hpp (100%)
 rename {Src => include}/Utils/FParObject.hpp (100%)
 rename {Src => include}/Utils/FParameterNames.hpp (100%)
 rename {Src => include}/Utils/FParameters.hpp (100%)
 rename {Src => include}/Utils/FPartitionsMapping.hpp (100%)
 rename {Src => include}/Utils/FPoint.hpp (100%)
 rename {Src => include}/Utils/FQuickSort.hpp (100%)
 rename {Src => include}/Utils/FQuickSortMpi.hpp (100%)
 rename {Src => include}/Utils/FRepeatAction.hpp (100%)
 rename {Src => include}/Utils/FSignalHandler.h (100%)
 rename {Src => include}/Utils/FSmartPointer.hpp (100%)
 rename {Src => include}/Utils/FSpherical.hpp (100%)
 rename {Src => include}/Utils/FStdAlignPolyfill.hpp (100%)
 rename {Src => include}/Utils/FSvd.hpp (100%)
 rename {Src => include}/Utils/FTaskTimer.hpp (100%)
 rename {Src => include}/Utils/FTemplate.hpp (100%)
 rename {Src => include}/Utils/FTic.hpp (100%)
 rename {Src => include}/Utils/FTypePack.hpp (100%)
 rename {Src => include}/Utils/make_unique.hpp (100%)
 rename {Src => include}/Utils/stdComplex.hpp (100%)
 rename {Src => include}/Utils/variadic_container.hpp (100%)
 rename {Contribs => include}/inria/algorithm/distributed/distribute.hpp (100%)
 rename {Contribs => include}/inria/algorithm/distributed/impl_sort/binary_search.hpp (100%)
 rename {Contribs => include}/inria/algorithm/distributed/mpi.hpp (100%)
 rename {Contribs => include}/inria/algorithm/distributed/sort.hpp (100%)
 rename {Contribs => include}/inria/algorithm/distributed/unique.hpp (100%)
 rename {Contribs => include}/inria/checker.hpp (100%)
 rename {Contribs => include}/inria/ct_array.hpp (100%)
 rename {Contribs => include}/inria/detection_idiom.hpp (100%)
 rename {Contribs => include}/inria/integer_sequence.hpp (98%)
 rename {Contribs => include}/inria/io.hpp (100%)
 rename {Contribs => include}/inria/linear_tree/balance_tree.hpp (100%)
 rename {Contribs => include}/inria/linear_tree/configuration.hpp (100%)
 rename {Contribs => include}/inria/linear_tree/distributed_regions_to_linear_tree.hpp (100%)
 rename {Contribs => include}/inria/linear_tree/gather_octant_weights.hpp (100%)
 rename {Contribs => include}/inria/linear_tree/linear_tree.hpp (100%)
 rename {Contribs => include}/inria/linear_tree/linearize.hpp (100%)
 rename {Contribs => include}/inria/linear_tree/node.hpp (100%)
 rename {Contribs => include}/inria/linear_tree/node_info_traits.hpp (100%)
 rename {Contribs => include}/inria/linear_tree/region.hpp (100%)
 rename {Contribs => include}/inria/linear_tree/weight_traits.hpp (100%)
 rename {Contribs => include}/inria/logic.hpp (100%)
 rename {Contribs => include}/inria/meta.hpp (100%)
 rename {Contribs => include}/inria/ostream_joiner.hpp (100%)
 rename {Contribs => include}/inria/ostream_typeinfo.hpp (100%)
 rename {Contribs => include}/inria/require_input.hpp (100%)
 rename {Contribs => include}/inria/span.hpp (100%)
 rename {Contribs => include}/inria/tcli/exceptions.hpp (100%)
 rename {Contribs => include}/inria/tcli/help_descriptor.hpp (100%)
 rename {Contribs => include}/inria/tcli/impl_tcli/meta.hpp (100%)
 rename {Contribs => include}/inria/tcli/impl_tcli/parameter_model.hpp (100%)
 rename {Contribs => include}/inria/tcli/impl_tcli/utils.hpp (100%)
 rename {Contribs => include}/inria/tcli/tcli.hpp (100%)
 rename {Contribs => include}/inria/utils.hpp (100%)
 rename {Contribs => include}/inria/version.hpp (100%)
 rename {Contribs => include}/json.hpp (100%)
 create mode 100644 scalfmmConfig.cmake.in
 rename {Src/Utils => src}/FAlgorithmTimers.cpp (92%)
 rename {Src/Utils => src}/FLog.cpp (84%)
 rename {Src/Utils => src}/FMemStats.cpp (98%)
 rename {Src/Utils => src}/FMpi.cpp (62%)
 rename {Src/Utils => src}/FSignalHandler.cpp (97%)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1ed7f57e3..39bbd37e3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,43 +1,50 @@
-cmake_minimum_required (VERSION 2.8.3 FATAL_ERROR)
+cmake_minimum_required (VERSION 3.10.0 FATAL_ERROR)
 
-if(CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 7 AND CMAKE_PATCH_VERSION GREATER 11)
-  cmake_policy(SET CMP0022 OLD)
-endif()
-
-cmake_policy(SET CMP0004 NEW)
-
-set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
-#===========================================================================
+#
 # Project Declaration
-#===========================================================================
-project(SCALFMM C CXX )
+#--------------------
+project(scalfmm CXX)
 # check if compiling into source directories
 string(COMPARE EQUAL "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" insource)
 if(insource)
   message(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto ./Build and tapes cmake ../")
 endif(insource)
 
-list(APPEND CMAKE_MODULE_PATH  ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/)
-SET(SCALFMM_CMAKE_MODULE_PATH  ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/)
 #
-# Adds the CMAKE_DEPENDENT_OPTION command
-INCLUDE(CMakeDependentOption)
-#===========================================================================
 # Version Number
-#===========================================================================
+# --------------
 
 # SCALFMM version number.  An even minor number corresponds to releases.
-set(SCALFMM_MAJOR_VERSION 2)
-set(SCALFMM_MINOR_VERSION 0)
-set(SCALFMM_PATCH_VERSION rc0)
-set(SCALFMM_VERSION  "${SCALFMM_MAJOR_VERSION}.${SCALFMM_MINOR_VERSION}.${SCALFMM_PATCH_VERSION}" )
+set(${CMAKE_PROJECT_NAME}_MAJOR_VERSION 2)
+set(${CMAKE_PROJECT_NAME}_MINOR_VERSION 0)
+set(${CMAKE_PROJECT_NAME}_PATCH_VERSION rc0)
+set(${CMAKE_PROJECT_NAME}_VERSION  "${${CMAKE_PROJECT_NAME}_MAJOR_VERSION}.${${CMAKE_PROJECT_NAME}_MINOR_VERSION}.${${CMAKE_PROJECT_NAME}_PATCH_VERSION}" )
 
-SET(CXX_STANDARD_REQUIRED ON)
-SET(CMAKE_CXX_STANDARD 14)
+#
+# Set global c++ support
+# ----------------------
+set(CMAKE_CXX_STANDARD 14)
 
-set( MORSE_DISTRIB_DIR "" CACHE PATH "Directory of MORSE distribution")
+#
+# Update cmake path
+# -----------------
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/)
 
-if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_cmake")
+#
+# Creating main lib
+# -----------------
+list(APPEND SCALFMM_SOURCES FAlgorithmTimers.cpp FLog.cpp FMemStats.cpp FSignalHandler.cpp)
+list(TRANSFORM SCALFMM_SOURCES PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/src/")
+add_library(${CMAKE_PROJECT_NAME} ${SCALFMM_SOURCES})
+# Set library includes
+# --------------------
+target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC
+  $<BUILD_INTERFACE:${${CMAKE_PROJECT_NAME}_BINARY_DIR}/include>
+  $<BUILD_INTERFACE:${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/include>
+  $<INSTALL_INTERFACE:include>
+  )
+
+if(MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_cmake")
 
   # Add extra cmake module path and initialize morse cmake modules
   # --------------------------------------------------------------
@@ -48,8 +55,12 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_
     list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_cmake/modules)
     set(MORSE_CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_cmake/modules )
   endif()
+  
   include(MorseInit)
+
   # Set the RPATH config
+  # These options allow all installed executables to run correctly 
+  # when installed to the install diretory
   # --------------------
   # use, i.e. don't skip the full RPATH for the build tree
   set(CMAKE_SKIP_BUILD_RPATH  FALSE)
@@ -58,289 +69,192 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_
   set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
   # the RPATH to be used when installing
   set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
+  # add the automatically determined parts of the RPATH
+  # which point to directories outside the build tree to the install RPATH
+  set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+
 
   # Build ScalFmm as static or dynamic lib
   # --------------------------------------
-  option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
+  # option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
   #
   # Options
   #
-  option( SCALFMM_USE_MPI              "Set to ON to build ScaFMM with MPI"          OFF )
-  option( SCALFMM_USE_BLAS             "Set to ON to build ScaFMM with BLAS"         ON )
-  option( SCALFMM_USE_FFT              "Set to ON to build ScaFMM with FFTW"         ON )
-  option( SCALFMM_BUILD_EXAMPLES       "Set to ON to compile examples "              ON  )
-  option( SCALFMM_BUILD_TESTS          "Set to ON to build functionalities Tests"    OFF )
-  option( SCALFMM_BUILD_UTESTS         "Set to ON to build UTests"                   OFF )
-  option( SCALFMM_INSTALL_DATA         "Set to ON to include the data when proceeding to the installtion " OFF )
+  # Cmake options for dependencies
+  option( SCALFMM_USE_MPI              "Set to ON to build ScaFMM with MPI"         OFF )
+  option( SCALFMM_USE_BLAS             "Set to ON to build ScaFMM with BLAS"        ON  )
+  option( SCALFMM_USE_FFT              "Set to ON to build ScaFMM with FFTW"        OFF )
+  option( SCALFMM_USE_STARPU           "Set to ON to build SCALFMM with StarPU"     OFF )
+
+  # Cmake options that impact the build tree
+  option( SCALFMM_BUILD_EXAMPLES       "Set to ON to compile examples "                ON  )
+  option( SCALFMM_BUILD_TESTS          "Set to ON to build functionalities Tests"      OFF )
+  option( SCALFMM_BUILD_UTESTS         "Set to ON to build UTests"                     OFF )
+  option( SCALFMM_BUILD_UTILS          "Set to ON to build utils Tests"                OFF )
   option( SCALFMM_BUILD_DOC            "Set to ON to build the Doxygen documentation " OFF )
-  option( SCALFMM_BUILD_DEBUG          "Set to ON to build in Debug"                 OFF )
+
+  # Cmake options to install additional content 
+  option( SCALFMM_INSTALL_DATA         "Set to ON to include the data when proceeding to the installtion " OFF )
+  
+  # Cmake options related to trace, logging and statistics
   option( SCALFMM_USE_LOG              "Set to ON to print output debug information" OFF )
   option( SCALFMM_USE_MEM_STATS        "Set to ON to profile memory"                 OFF )
-  option( SCALFMM_ATTACHE_SOURCE       "Set to ON to compile with -g"                OFF )
-  option( SCALFMM_USE_ADDONS           "Set to ON to compile add ons"                OFF )
-  option( SCALFMM_USE_SIGNALS          "Set to ON to catch various signal an print backtrace"  OFF )
   option( SCALFMM_USE_ASSERT           "Set to ON to enable safe tests during execution" ON  )
-  option( SCALFMM_USE_MIC_NATIVE       "Set to ON to compile in native mode for MIC" OFF  )
   option( SCALFMM_ONLY_DEVEL           "Set to ON to compile Development tools (only scalfmm team)" OFF )
-  option( SCALFMM_USE_EZTRACE          "Set to ON to compile with eztrace framwork" OFF )
-  option( SCALFMM_USE_STARPU           "Set to ON to build SCALFMM with StarPU"     OFF )
-  option( SCALFMM_BUILD_UTILS          "Set to ON to build utils Tests"             OFF )
+  
+  # Cmake options related to the targeted architecture
+  option( SCALFMM_USE_MIC_NATIVE       "Set to ON to compile in native mode for MIC" OFF  )
 
+    
 
-  if( SCALFMM_ONLY_DEVEL )
-    if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
-      option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4"    OFF )
-    else()
-      option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4"    ON )
-    endif()
-    option( SCALFMM_TIME_OMPTASKS "Set to ON to time omp4 tasks and generate output file"    OFF )
-    # SIMGRID and peformance models options
-    option( SCALFMM_SIMGRID_NODATA "Set to ON to avoid the allocation of numerical parts in the group tree" OFF )
-    option( STARPU_SIMGRID_MLR_MODELS "Set to ON to enable MLR models need for calibration and simulation" OFF )
-    # OPENMP 4/5 support
-    message(WARNING "OpenMP_VERSION:  ${OpenMP_VERSION}")
-    option( OPENMP_SUPPORT_PRIORITY  "Set to ON to enable tasks priority (OMP4.x/KSTAR/StarPU compiler only)" OFF )
-    # STARPU options
-    CMAKE_DEPENDENT_OPTION(OPENMP_SUPPORT_COMMUTE        "Set to ON to let tasks commute (KSTAR/StarPU compiler only)" OFF
-      "SCALFMM_USE_STARPU" OFF)
-    CMAKE_DEPENDENT_OPTION(OPENMP_SUPPORT_TASK_NAME       "Set to ON to enable a taskname clause for tasks (KSTAR/StarPU compiler only)" OFF
-      "SCALFMM_USE_STARPU" OFF)
-    CMAKE_DEPENDENT_OPTION(SCALFMM_STARPU_USE_COMMUTE  "Set to ON to enable commute with StarPU" ON  "SCALFMM_USE_STARPU" OFF)
-    CMAKE_DEPENDENT_OPTION(SCALFMM_STARPU_USE_REDUX  "Set to ON to enable redux with StarPU"     OFF "SCALFMM_USE_STARPU" OFF)
-    CMAKE_DEPENDENT_OPTION(SCALFMM_STARPU_USE_PRIO  "Set to ON to enable priority with StarPU"   ON  "SCALFMM_USE_STARPU" OFF)
-    CMAKE_DEPENDENT_OPTION(SCALFMM_STARPU_FORCE_NO_SCHEDULER  "Set to ON to disable heteroprio even if supported" OFF "SCALFMM_USE_STARPU" OFF)
-    CMAKE_DEPENDENT_OPTION(SCALFMM_USE_STARPU_EXTRACT  "Set to ON to enable extract with StarPU mpi implicit" ON  "SCALFMM_USE_STARPU" OFF)
-  endif()
-  message(STATUS "AVANT  ${CMAKE_CXX_COMPILER_ID}" )
-  #
-  #  MPI
   #
-  if( SCALFMM_USE_MPI )
-    try_compile(COMPILE_INTEL ${CMAKE_CURRENT_BINARY_DIR}
-      ${SCALFMM_CMAKE_MODULE_PATH}/compileTestIntel.cpp
-      COMPILE_DEFINITIONS "${CMAKE_CXX_FLAGS}")
-    if (COMPILE_INTEL)
-      set(CMAKE_CXX_COMPILER_ID  "Intel")
-    endif()
-  endif()
-  message(STATUS "CXX  ${CMAKE_CXX_COMPILER_ID}" )
-  # Set scalfmm to default libraries
-  set(SCALFMM_LIBRARIES "")
-  set(SCALFMM_CXX_FLAGS "-fpic -Wall")
-  #  set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}/Contribs")
-  #
-  #
-  # Test if openmp is here
-  #
-  find_package (OpenMP)
-  if(OPENMP_FOUND)
-    set(CMAKE_C_FLAGS          "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
-    set(CMAKE_CXX_FLAGS        "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
-    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
-  else(OPENMP_FOUND)
-    message(WARNING "OPENMP NOT FOUND")
-  endif(OPENMP_FOUND)
-  message(STATUS "SCALFMM_BUILD_DEBUG = ${SCALFMM_BUILD_DEBUG}" )
-  #
-  if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-    set(SCALFMM_CXX_FLAGS  "${SCALFMM_CXX_FLAGS} -m64")
-  endif()
-  ##############################################################################
-  #                           Inastemp                                         #
-  ##############################################################################
-
-  set(INASTEMP_JUST_LIB TRUE)
-  set(INASTEMP_DO_INSTALL TRUE)
-  # add the cmakelist directory
-  add_subdirectory(inastemp)
-  # use the filled variables from inastemp
-  INCLUDE_DIRECTORIES(
-           ${INASTEMP_BINARY_DIR}/Src
-           ${INASTEMP_SOURCE_DIR}/Src
-           ${INASTEMP_INCLUDE_DIR}
-           ${CMAKE_CURRENT_BINARY_DIR}/inastemp/Src
-      )
-  # propagate the flags to be able to compile
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${INASTEMP_CXX_FLAGS}")
-
-  ##############################################################################
-  #                           FUSE list                                        #
-  ##############################################################################
-  set(FUSE_LIST "")
-  #set(FUSE_LIST " MPI;BLAS;FFT;STARPU;CUDA;OPENCL;OMP4;SSE;AVX;AVX2;MIC;MPI2")
-  # then do list(APPEND FUSE_LIST "BLAS") to protect from FUSE_BLAS
-  #  list(APPEND FUSE_LIST "MPI")
-
-  ##############################################################################
-  #                        Debug      flags                                    #
-  ##############################################################################
+  # Set scalfmm global lists
+  # ------------------------
+  list(APPEND SCALFMM_CXX_FLAGS -fpic -Wall)
+
+  # TODO: Find new way to resolve dependencies...
+  # Set FUSE LIST
+  # -------------
+  set(FUSE_LIST "") # Construct during configure
+  set(FUSE_DEP_AVAILABLE "MPI;CUDA;STARPU;OMP4;BLAS;FFT;OPENCL") # List to compare against when compiling tests, etc...
   #
-  if( SCALFMM_BUILD_DEBUG )
-    #
-    # Compile Debug flags
-    #
-    set(CMAKE_BUILD_TYPE Debug)
-    ADD_DEFINITIONS(-O0)
-    if( APPLE )
-      set(SCALFMM_FLAGS_OPTI_DEBUG "-funroll-loops" CACHE STRING
-        "Set your optimization flags for debug mode.")
-    else(APPLE)
-      if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
-        set(SCALFMM_FLAGS_OPTI_DEBUG "-fp-model strict  -funroll-loops" CACHE STRING
-          "Set your optimization flags for debug mode.")
-      else()
-        set(SCALFMM_FLAGS_OPTI_DEBUG "-funroll-loops" CACHE STRING
-          "Set your optimization flags for debug mode.")
+  # OpenMP
+  # ------
+  if(NOT OpenMP_CXX_FOUND)
+    find_package(OpenMP)
+    if(OpenMP_CXX_FOUND)
+      target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC OpenMP::OpenMP_CXX)
+      list(APPEND SCALFMM_LIBRARIES OpenMP)
+      if(OpenMP_CXX_VERSION_MAJOR GREATER_EQUAL 4)
+        list(APPEND FUSE_LIST OMP4)
       endif()
-    endif(APPLE)
-    #  ADD_DEFINITIONS(${SCALFMM_FLAGS_OPTI_DEBUG})
-    set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} ${SCALFMM_FLAGS_OPTI_DEBUG}")
-    set(CMAKE_CXX_FLAGS_TYPE "${CMAKE_CXX_FLAGS_DEBUG}")
+    else(OpenMP_CXX_FOUND)
+      message(WARNING "OPENMP NOT FOUND")
+    endif(OpenMP_CXX_FOUND)
+  endif(NOT OpenMP_CXX_FOUND)
+  
+  #
+  # Inastemp
+  # --------
+  if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/inastemp")
+
+    # Set option() CMP0077 to old for inastemp...
+    set(CMAKE_POLICY_DEFAULT_CMP0077 OLD)
+    set(INASTEMP_JUST_LIB TRUE)
+    set(INASTEMP_DO_INSTALL TRUE)
+    # Create target
+    add_subdirectory(inastemp) 
+    add_library(inastemp INTERFACE)
+    target_include_directories(inastemp INTERFACE 
+      $<BUILD_INTERFACE:${INASTEMP_SOURCE_DIR}/Src>
+      $<BUILD_INTERFACE:${INASTEMP_BINARY_DIR}/Src>
+      $<INSTALL_INTERFACE:include>
+      )
+    string(REPLACE " -" ";-" INASTEMP_FLAGS "${INASTEMP_CXX_FLAGS}")
+    list(REMOVE_DUPLICATES INASTEMP_FLAGS)
+    target_compile_options(inastemp INTERFACE ${INASTEMP_FLAGS})
+    target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC inastemp)
+
+    message(STATUS "Inastemp flags : ${INASTEMP_FLAGS}")
+    message(WARNING "Inastemp configures compile flags according to the current architure "
+            "you are compiling on. If you target a different machine, be carefull "
+            "with the available SIMD instruction set supported."
+            "Thus, use INASTEMP_USE_XXX to target the correct instruction set.")
 
-  else()
-    ##############################################################################
-    #                          Release flags                                     #
-    ##############################################################################
+  else(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/inastemp")
 
-    set(CMAKE_BUILD_TYPE Release)
-    set(CMAKE_CXX_FLAGS_TYPE  "${CMAKE_CXX_FLAGS_RELEASE}")
-    # if compiler is intel add -ip
+    message(STATUS "Inastemp is not available.")
+    message(STATUS "Please, initialize all git submodule.")
+    message(FATAL_ERROR "Exit : Inastemp dependency not found.")
 
+  endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/inastemp")
+
+  #
+  # Specific Debug flags
+  # --------------------
+  if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+    list(APPEND SCALFMM_CXX_FLAGS -funroll-loops)
     if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
-      set(SCALFMM_CXX_FLAGS  "${SCALFMM_CXX_FLAGS} -ipo  -fstrict-aliasing ")# -no-prec-div -no-prec-sqrt")
+      list(APPEND SCALFMM_CXX_FLAGS -fp-model\ strict)
     endif()
-    # Compile optimization
-    if(APPLE)
-      set(SCALFMM_FLAGS_OPTI_RELEASE "-funroll-loops" CACHE STRING
-        "Set your optimization flags for release mode.")
-    else(APPLE)
-      # Not apple system - Check the compiler flags
+  endif()
+
+  #
+  # Specific Release flags
+  # ----------------------
+  if(CMAKE_BUILD_TYPE STREQUAL "Release")
+    list(APPEND SCALFMM_CXX_FLAGS -funroll-loops)
+    if(NOT APPLE)
+      list(APPEND -ftree-vectorize)
       if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
-        #set(SCALFMM_FLAGS_OPTI_RELEASE "-fp-model precise -fp-model source -fimf-precision=low  -funroll-loops -ftree-vectorize"
-        set(SCALFMM_FLAGS_OPTI_RELEASE "-funroll-loops -ftree-vectorize"
-          CACHE STRING "Set your optimization flags for release mode.")
-        # set(SCALFMM_FLAGS_OPTI_RELEASE "-funroll-loops -ftree-vectorize" CACHE STRING
-        #   "Set your optimization flags for release mode.")
-      else()
-        set(SCALFMM_FLAGS_OPTI_RELEASE "-ffast-math -funroll-loops -ftree-vectorize" CACHE STRING
-          "Set your optimization flags for release mode.")
+        list(APPEND SCALFMM_CXX_FLAGS  -ipo  -fstrict-aliasing)
       endif()
-    endif(APPLE)
-    #
-    set(SCALFMM_CXX_FLAGS  "${SCALFMM_CXX_FLAGS} ${SCALFMM_FLAGS_OPTI_RELEASE}")
+      list(APPEND SCALFMM_CXX_FLAGS -ffast-math -ftree-vectorize)
+    endif(NOT APPLE)
   endif()
-  MESSAGE(STATUS   " %%%%%%%%%% SCALFMM_CXX_FLAGS  ${SCALFMM_CXX_FLAGS} %%%%%%%%%%%%%")
-  MESSAGE(STATUS   " %%%%%%%%%% CMAKE_CXX_FLAGS_RELEASE  ${CMAKE_CXX_FLAGS_RELEASE} %%%%%%%%%%%%%")
 
   #
-  ##############################################################################
-  #                Attach source code to exec                                  #
-  ##############################################################################
-  message(STATUS "SCALFMM_ATTACHE_SOURCE       = ${SCALFMM_ATTACHE_SOURCE}" )
-  if( SCALFMM_ATTACHE_SOURCE )
-    message(STATUS "Option -g is used, the code is attached to the binary." )
-    set(SCALFMM_CXX_FLAGS  "${SCALFMM_CXX_FLAGS} -g")
-  endif(SCALFMM_ATTACHE_SOURCE)
-  #
-  ##############################################################################
-  #                                 find MPI                                   #
-  ##############################################################################
-  #
-  if( SCALFMM_USE_MPI )
-    find_package(MPI REQUIRED)
-    if(MPI_FOUND)
-      if (MPI_CXX_FOUND)
-#	message("MPI_CXX is in the place")
-        if (MPI_CXX_INCLUDE_PATH)
-          include_directories( ${MPI_CXX_INCLUDE_PATH} )
-        endif()
-        if (MPI_CXX_COMPILE_FLAGS)
-          string(REPLACE ";" " " MPI_CXX_COMPILE_FLAGS "${MPI_CXX_COMPILE_FLAGS}")
-          set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} ${MPI_CXX_COMPILE_FLAGS}")
-        endif()
-        if (MPI_CXX_INCLUDE_PATH)
-          LIST(APPEND SCALFMM_INCLUDES  "${SCALFMM_INCLUDES};${MPI_CXX_INCLUDE_PATH}")
-        endif()
-        if (MPI_CXX_LINK_FLAGS)
-          list(APPEND "CMAKE_EXE_LINKER_FLAGS ${MPI_CXX_LINK_FLAGS}")
-        endif()
-        if (MPI_CXX_LIBRARIES)
-          set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${MPI_CXX_LIBRARIES}")
-        endif()
-      else (MPI_CXX_FOUND)
+  # MPI
+  # ---
+  if(SCALFMM_USE_MPI)
+    if(NOT MPI_FOUND)
+      try_compile(COMPILE_INTEL ${CMAKE_CURRENT_BINARY_DIR}
+      ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/compileTestIntel.cpp
+      COMPILE_DEFINITIONS "${CMAKE_CXX_FLAGS}")
+      if(COMPILE_INTEL)
+        set(CMAKE_CXX_COMPILER_ID  "Intel")
+      endif()
+      message(STATUS "CXX  ${CMAKE_CXX_COMPILER_ID}" )
+
+      find_package(MPI REQUIRED)
+      if(MPI_CXX_FOUND)
+        target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC MPI::MPI_CXX)
+        list(APPEND SCALFMM_LIBRARIES MPI)
+        list(APPEND FUSE_LIST MPI)
+	target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/FMpi.cpp)
+      else(MPI_CXX_FOUND)
         message(FATAL_ERROR "MPI_CXX is required but was not found. "
-          "Please provide an MPI compiler in your environment."
-          "Note that you can give the path to your MPI installation "
-          "by setting MPI_DIR cmake variable.")
-      endif (MPI_CXX_FOUND)
-    else(MPI_FOUND)
-    endif(MPI_FOUND)
-  endif( SCALFMM_USE_MPI)
-  list(APPEND FUSE_LIST "MPI")
+                "Please provide an MPI compiler in your environment."
+                "Note that you can give the path to your MPI installation "
+                "by setting MPI_DIR cmake variable.")
+      endif(MPI_CXX_FOUND)
+    endif(NOT MPI_FOUND)
+  endif(SCALFMM_USE_MPI)
   #
-  ##############################################################################
-  #                             Blas option                                    #
-  ##############################################################################
-  #
-  if( SCALFMM_USE_BLAS )
-#      if(APPLE) # In order to use QT-creator on macos
-#            list(APPEND CMAKE_REQUIRED_INCLUDES $ENV{MKLROOT}/include)
-#      endif()
+  # Blas options
+  # ------------
+  if(SCALFMM_USE_BLAS)
 
-    #   include(FortranCInterface)
-    #    # Define a Fortran interface file (FCMangle.hpp)
-    #   FortranCInterface_HEADER( ${CMAKE_CURRENT_SOURCE_DIR}/Src/FCMangle.hpp
-    #                            MACRO_NAMESPACE "PM_"
-    #                           SYMBOL_NAMESPACE "PM_"
-    #                           SYMBOLS init testPPM:init)
-    message(STATUS "CMAKE_CXX_COMPILER_ID STREQUAL  ${CMAKE_CXX_COMPILER_ID}")
-
-    option( SCALFMM_USE_MKL_AS_BLAS  "Set to ON to use MKL BLAS/LAPACK" OFF )
-    option( SCALFMM_USE_ESSL_AS_BLAS "Set to ON to use ESSL BLAS/LAPACK" OFF )
+    option( SCALFMM_USE_MKL_AS_BLAS   "Set to ON to use MKL BLAS/LAPACK" OFF )
+    option( SCALFMM_USE_ESSL_AS_BLAS  "Set to ON to use ESSL BLAS/LAPACK" OFF )
+    option( SCALFMM_USE_EXTERNAL_BLAS "Set to ON to use external BLAS. Please, set BLAS_LIBRARIES variable." OFF )
 
     if( SCALFMM_USE_MKL_AS_BLAS )
       set(BLA_VENDOR "Intel10_64lp_seq")
       find_package(BLAS ) # not REQUIRED
-      unset(LAPACK_LIBRARIES)
-      if (BLAS_LIBRARIES)
-        set(BLASLAPACK_LIBRARIES ${BLAS_LIBRARIES})
-      endif()
     elseif(SCALFMM_USE_ESSL_AS_BLAS)
       set(BLA_VENDOR "IBMESSL")
       find_package(BLAS   QUIET) # not REQUIRED
       find_package(LAPACK QUIET) # not REQUIRED
-      if (LAPACK_LIBRARIES)
-        set(BLASLAPACK_LIBRARIES "${LAPACK_LIBRARIES}")
-      endif()
-      if (BLAS_LIBRARIES)
-        list(APPEND BLASLAPACK_LIBRARIES ${BLAS_LIBRARIES})
-      endif()
     elseif(SCALFMM_USE_EXTERNAL_BLAS)
       message(STATUS "BLAS SET BY EXTERNAL PROGRAM = ${BLAS_LIBRARIES}")
       list(APPEND BLASLAPACK_LIBRARIES "${BLAS_LIBRARIES}")
     else()
       find_package(BLAS)  # not REQUIRED
       find_package(LAPACK)  # not REQUIRED
-      set(BLASLAPACK_LIBRARIES)
-      if (LAPACK_LIBRARIES)
-        set(BLASLAPACK_LIBRARIES "${LAPACK_LIBRARIES}")
-      endif()
-      if (BLAS_LIBRARIES)
-        list(APPEND BLASLAPACK_LIBRARIES "${BLAS_LIBRARIES}")
-      endif()
     endif()
 
     if(BLAS_FOUND)
-      set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${BLASLAPACK_LIBRARIES}")
-      if(BLAS_LIBRARY_DIRS)
-        # the RPATH to be used when installing
-        list(APPEND CMAKE_INSTALL_RPATH "${BLAS_LIBRARY_DIRS}")
-      endif()
-      if(LAPACK_FOUND AND LAPACK_LIBRARY_DIRS)
-        # the RPATH to be used when installing
-        list(APPEND CMAKE_INSTALL_RPATH "${LAPACK_LIBRARY_DIRS}")
+      target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC blas::blas)
+      list(APPEND SCALFMM_LIBRARIES BLAS)
+      list(APPEND FUSE_LIST BLAS)
+
+      if(LAPACK_FOUND)
+        target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC lapack::lapack)
+        list(APPEND SCALFMM_LIBRARIES LAPACK)
       endif()
-      message (STATUS "check BLAS Fortran mangling")
+
+      message (STATUS "Check BLAS Fortran mangling")
       # add options to let the user be able to force a behavior
       option( SCALFMM_BLAS_ADD_     "Set to ON to force calls to BLAS Fortran symbols with _ (ex: dgemm_)"        ON )
       option( SCALFMM_BLAS_UPCASE   "Set to ON to force calls to BLAS Fortran symbols in capital (ex: DGEMM)"     OFF )
@@ -389,7 +303,7 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_
         endif()
       endif (NOT SCALFMM_BLAS_ADD_ AND NOT SCALFMM_BLAS_UPCASE AND NOT SCALFMM_BLAS_NOCHANGE)
     else()
-      MESSAGE(WARNING "BLAS: ${BLAS-FOUND}")
+      MESSAGE(WARNING "BLAS: ${BLAS_FOUND}")
 
       message(WARNING "BLAS has not been found, SCALFMM will continue to compile but some applications will be disabled.")
       message(WARNING "If you have BLAS set BLAS_LIBDIR, BLAS_INCDIR or BLAS_DIR (CMake variables using -D or environment variables).")
@@ -397,52 +311,42 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_
     endif()
 
   endif(SCALFMM_USE_BLAS)
-  list(APPEND FUSE_LIST "BLAS")
-  #
-  # FFT option
+  
   #
+  # FFT options
+  # -----------
   CMAKE_DEPENDENT_OPTION(SCALFMM_USE_MKL_AS_FFTW  "Set to ON to use MKL FFTW"  ON  "SCALFMM_USE_FFT;SCALFMM_USE_MKL_AS_BLAS"  OFF )
   CMAKE_DEPENDENT_OPTION(SCALFMM_USE_ESSL_AS_FFTW "Set to ON to use ESSL FFTW" ON  "SCALFMM_USE_FFT;SCALFMM_USE_ESSL_AS_BLAS" OFF )
-  if( SCALFMM_USE_FFT )
+  
+  if(SCALFMM_USE_FFT)
     message(STATUS "SCALFMM USE FFT Configure:")
 
     # The package find_package(FFTW) can be used with the following COMPONENTS:
     # MKL, ESSL, THREADS|OMP and/or SIMPLE|LONG|QUAD
     # Default will find the real double precision fftw library version without THREADS|OMP
-    if( SCALFMM_USE_MKL_AS_FFTW )
-
+    if(SCALFMM_USE_MKL_AS_FFTW)
       message(STATUS "         SCALFMM USE FFT from MKL")
-      find_package(FFTW COMPONENTS MKL)
+      set(BLA_VENDOR "Intel10_64lp_seq")
+      if(NOT TARGET blas::blas)
+        find_package(FFTW COMPONENTS MKL)
+      else()
+        set(FFTW_FOUND 1)
+        find_package(FFTW COMPONENTS MKL QUIET)
+        target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ${FFTW_INCLUDE_DIRS})
+      endif()
     elseif (SCALFMM_USE_ESSL_AS_FFTW)
       message(STATUS "         SCALFMM USE FFT from ESSL ")
       find_package(FFTW COMPONENTS ESSL)
-      add_definitions(-DSCALFMM_USE_ESSL_AS_FFTW)
     else()
       message(STATUS "         SCALFMM USE FFTW")
       find_package(FFTW COMPONENTS SIMPLE)
     endif()
 
     if(FFTW_FOUND)
-      if (FFTW_LIBRARY_DIRS_DEP)
-        set(FFT_LIBRARIES "-L${FFTW_LIBRARY_DIRS_DEP};" CACHE STRING "Set your MKL flags")
-      endif()
-      if (FFTW_LIBRARIES_DEP)
-        foreach (fft_lib ${FFTW_LIBRARIES_DEP})
-          set(FFT_LIBRARIES "${FFT_LIBRARIES};${fft_lib};")
-        endforeach()
-      endif()
-
-      set(FFT_INCLUDES "${FFTW_INCLUDE_DIRS_DEP}" )
-      if (FFT_LIBRARIES)
-        set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${FFT_LIBRARIES}")
-      endif()
-
-      if(FFTW_LIBRARY_DIRS)
-        # the RPATH to be used when installing
-        list(APPEND CMAKE_INSTALL_RPATH "${FFTW_LIBRARY_DIRS}")
-      endif()
-      if (FFT_INCLUDES)
-        LIST(APPEND SCALFMM_INCLUDES "${FFT_INCLUDES}")
+      list(APPEND FUSE_LIST FFT)
+      if(NOT SCALFMM_USE_MKL_AS_FFTW)
+        target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC fftw::fftw)
+        list(APPEND SCALFMM_LIBRARIES FFTW)
       endif()
     else(FFTW_FOUND)
       message(WARNING "FFTW has not been found, SCALFMM will continue to compile but some applications will be disabled.")
@@ -451,386 +355,347 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_
     endif(FFTW_FOUND)
 
   endif(SCALFMM_USE_FFT)
-  message(STATUS "SCALFMM_USE_FFT       =  ${SCALFMM_USE_FFT}")
-  if (SCALFMM_INCLUDES)
-    list(REMOVE_DUPLICATES SCALFMM_INCLUDES)
-  endif()
-  if (SCALFMM_LIBRARIES)
-    list(REMOVE_DUPLICATES SCALFMM_LIBRARIES)
-  endif()
-  list(APPEND FUSE_LIST "FFT")
+  message(STATUS "SCALFMM_USE_FFT = ${SCALFMM_USE_FFT}")
 
   #
-  # C++ 2011
-  message( STATUS "CMAKE_SYSTEM:   ${CMAKE_SYSTEM}  CMAKE_CXX_COMPILER_ID ${CMAKE_CXX_COMPILER_ID}  CMAKE_CXX_COMPILER ${NAME}")
-  if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
-    execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE INTEL_VERSION)
-    message( STATUS "Intel:   ${INTEL_VERSION}")
-    set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -Wall")
-  else()
-    # Compile option valid on GCC/G++
-    set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wconversion -Wcast-qual -Wcast-align -Woverloaded-virtual")
-  endif()
-  #
-  ##################################################################
-  #              STARPU Section
-  ##################################################################
+  # C++ 2014
+  # --------
+  target_compile_features(${CMAKE_PROJECT_NAME} INTERFACE cxx_std_14)  
+  
   #
-  message( STATUS "SCALFMM_USE_STARPU             = ${SCALFMM_USE_STARPU}" )
-  if( SCALFMM_USE_STARPU )
-    # CUDA could be used with StarPU enabled
-    option( SCALFMM_USE_CUDA "Set to ON to use CUDA with StarPU" OFF )
-    if(SCALFMM_USE_CUDA)
-      execute_process(COMMAND nvcc --version ERROR_VARIABLE cuda_error_output OUTPUT_QUIET)
-      if(cuda_error_output)
-        message( FATAL_ERROR "nvcc is needed with CUDA." )
-      endif()
-      if(NOT DEFINED CUSTOM_CUDA_FLAGS)
-        set( CUSTOM_CUDA_FLAGS "-std=c++11;-arch=sm_20;--ptxas-options=-v;-use_fast_math" CACHE
-          STRING "Set your CUDA flags, for example : -arch=sm_20;--ptxas-options=-v;-use_fast_math")
-      endif()
-      # This is needed to remove backslash after space in ADD_CUSTOM_COMMAND
-      separate_arguments(CUSTOM_CUDA_FLAGS)
-      message( STATUS "CUSTOM_CUDA_FLAGS             = ${CUSTOM_CUDA_FLAGS}" )
-      find_package(CUDA REQUIRED)
-
-      if (CUDA_INCLUDE_DIRS)
-        include_directories(${CUDA_INCLUDE_DIRS})
-      endif()
-      if (CUDA_LIBRARIES)
-        set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${CUDA_LIBRARIES}")
-      endif()
-
-      set(CUDA_NEEDED_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/Src)
-    endif()
-
-    # Find StarPU with a list of optional components
-    set(SCALFMM_STARPU_VERSION "1.2" CACHE STRING " STARPU version desired")
-    # create list of components in order to make a single call to find_package(starpu...)
-    set(STARPU_COMPONENT_LIST "HWLOC")
-
-
-    if(SCALFMM_USE_CUDA)
-      list(APPEND STARPU_COMPONENT_LIST "CUDA")
-    endif()
-    list(APPEND FUSE_LIST "CUDA")
-
-    if(SCALFMM_USE_MPI)
-      list(APPEND STARPU_COMPONENT_LIST "MPI")
-    endif()
-    # TODO: replace this by a component of find starpu
-    OPTION( SCALFMM_USE_OPENCL      "Set to ON to use OPENCL with StarPU" OFF )
-
-    if(SCALFMM_USE_OPENCL)
-      list(APPEND STARPU_COMPONENT_LIST "OPENCL")
-#      include_directories($ENV{OPENCL_INC})
-#      SET(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-L$ENV{OPENCL_LIB};-lOpenCL")
-    endif()
-    list(APPEND FUSE_LIST "OPENCL")
-
-
-    find_package(STARPU ${SCALFMM_STARPU_VERSION} REQUIRED
-      COMPONENTS ${STARPU_COMPONENT_LIST})
-
-    if(HWLOC_FOUND AND HWLOC_LIBRARY_DIRS)
-      # the RPATH to be used when installing
-      list(APPEND CMAKE_INSTALL_RPATH "${HWLOC_LIBRARY_DIRS}")
-    endif()
+  # Additional flags for the library
+  # --------------------------------
+  list(APPEND SCALFMM_CXX_FLAGS -Wshadow -Wpointer-arith )
+  if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
+    list(APPEND SCALFMM_CXX_FLAGS -Wcast-qual -Wconversion -Wcast-align -Woverloaded-virtual)
+  endif()
 
-    if(FXT_FOUND AND FXT_LIBRARY_DIRS)
-      # the RPATH to be used when installing
-      list(APPEND CMAKE_INSTALL_RPATH "${FXT_LIBRARY_DIRS}")
-    endif()
-    if(STARPU_FOUND AND STARPU_LIBRARY_DIRS)
-      # the RPATH to be used when installing
-      list(APPEND CMAKE_INSTALL_RPATH "${STARPU_LIBRARY_DIRS}")
-      # Append list of libraries and include dirs
-      include_directories(${STARPU_INCLUDE_DIRS_DEP})
-      foreach (starpu_libdir ${STARPU_LIBRARY_DIRS_DEP})
-        if (${starpu_libdir} MATCHES "^ *-L")
-          set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${starpu_libdir}")
-        else()
-          set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-L${starpu_libdir}")
-        endif()
-      endforeach()
-      foreach (starpu_lib ${STARPU_LIBRARIES_DEP})
-        if (EXISTS ${starpu_lib} OR ${starpu_lib} MATCHES "^ *-")
-          set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${starpu_lib}")
-        else()
-          set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-l${starpu_lib}")
-        endif()
-      endforeach()
-    else()
-      # StarPU not found
+#  ##################################################################
+#  #              STARPU Section
+#  ##################################################################
+#  #
+#  message( STATUS "SCALFMM_USE_STARPU             = ${SCALFMM_USE_STARPU}" )
+#  if( SCALFMM_USE_STARPU )
+#    # CUDA could be used with StarPU enabled
+#    option( SCALFMM_USE_CUDA "Set to ON to use CUDA with StarPU" OFF )
+#    if(SCALFMM_USE_CUDA)
+#      execute_process(COMMAND nvcc --version ERROR_VARIABLE cuda_error_output OUTPUT_QUIET)
+#      if(cuda_error_output)
+#        message( FATAL_ERROR "nvcc is needed with CUDA." )
+#      endif()
+#      if(NOT DEFINED CUSTOM_CUDA_FLAGS)
+#        set( CUSTOM_CUDA_FLAGS "-std=c++11;-arch=sm_20;--ptxas-options=-v;-use_fast_math" CACHE
+#          STRING "Set your CUDA flags, for example : -arch=sm_20;--ptxas-options=-v;-use_fast_math")
+#      endif()
+#      # This is needed to remove backslash after space in ADD_CUSTOM_COMMAND
+#      separate_arguments(CUSTOM_CUDA_FLAGS)
+#      message( STATUS "CUSTOM_CUDA_FLAGS             = ${CUSTOM_CUDA_FLAGS}" )
+#      find_package(CUDA REQUIRED)
+#
+#      if (CUDA_INCLUDE_DIRS)
+#        include_directories(${CUDA_INCLUDE_DIRS})
+#      endif()
+#      if (CUDA_LIBRARIES)
+#        set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${CUDA_LIBRARIES}")
+#      endif()
+#
+#      set(CUDA_NEEDED_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/Src)
+#    endif()
+#
+#    # Find StarPU with a list of optional components
+#    set(SCALFMM_STARPU_VERSION "1.2" CACHE STRING " STARPU version desired")
+#    # create list of components in order to make a single call to find_package(starpu...)
+#    set(STARPU_COMPONENT_LIST "HWLOC")
+#
+#
+#    if(SCALFMM_USE_CUDA)
+#      list(APPEND STARPU_COMPONENT_LIST "CUDA")
+#    endif()
+#    list(APPEND FUSE_LIST "CUDA")
+#
+#    if(SCALFMM_USE_MPI)
+#      list(APPEND STARPU_COMPONENT_LIST "MPI")
+#    endif()
+#    # TODO: replace this by a component of find starpu
+#    OPTION( SCALFMM_USE_OPENCL      "Set to ON to use OPENCL with StarPU" OFF )
+#
+#    if(SCALFMM_USE_OPENCL)
+#      list(APPEND STARPU_COMPONENT_LIST "OPENCL")
+##      include_directories($ENV{OPENCL_INC})
+##      SET(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-L$ENV{OPENCL_LIB};-lOpenCL")
+#    endif()
+#    list(APPEND FUSE_LIST "OPENCL")
+#
+#
+#    find_package(STARPU ${SCALFMM_STARPU_VERSION} REQUIRED
+#      COMPONENTS ${STARPU_COMPONENT_LIST})
+#
+#    if(HWLOC_FOUND AND HWLOC_LIBRARY_DIRS)
+#      # the RPATH to be used when installing
+#      list(APPEND CMAKE_INSTALL_RPATH "${HWLOC_LIBRARY_DIRS}")
+#    endif()
+#
+#    if(FXT_FOUND AND FXT_LIBRARY_DIRS)
+#      # the RPATH to be used when installing
+#      list(APPEND CMAKE_INSTALL_RPATH "${FXT_LIBRARY_DIRS}")
+#    endif()
+#    if(STARPU_FOUND AND STARPU_LIBRARY_DIRS)
+#      # the RPATH to be used when installing
+#      list(APPEND CMAKE_INSTALL_RPATH "${STARPU_LIBRARY_DIRS}")
+#      # Append list of libraries and include dirs
+#      include_directories(${STARPU_INCLUDE_DIRS_DEP})
+#      foreach (starpu_libdir ${STARPU_LIBRARY_DIRS_DEP})
+#        if (${starpu_libdir} MATCHES "^ *-L")
+#          set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${starpu_libdir}")
+#        else()
+#          set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-L${starpu_libdir}")
+#        endif()
+#      endforeach()
+#      foreach (starpu_lib ${STARPU_LIBRARIES_DEP})
+#        if (EXISTS ${starpu_lib} OR ${starpu_lib} MATCHES "^ *-")
+#          set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${starpu_lib}")
+#        else()
+#          set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};-l${starpu_lib}")
+#        endif()
+#      endforeach()
+#    else()
+#      # StarPU not found
+#
+#    endif()
+#
+#        # TODO: is this very useful? CUDA is already a component of find starpu
+#    if (CUDA_LIBRARIES)
+#      set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${CUDA_LIBRARIES}")
+#    endif()
+#
+#    # Message
+#    if (STARPU_INCLUDE_DIRS)
+#      message(STATUS "         STARPU_INCLUDES           = ${STARPU_INCLUDE_DIRS}")
+#      LIST(APPEND SCALFMM_INCLUDES  "${STARPU_INCLUDE_DIRS}")
+#    endif()
+#
+#    # Adding SimGrid includes
+#    LIST(APPEND SCALFMM_INCLUDES "$ENV{SIMGRID_INCLUDE}")
+#    message(STATUS "         Adding SIMGRID           = $ENV{SIMGRID_INCLUDE}")
+#  endif(SCALFMM_USE_STARPU)
+#  list(APPEND FUSE_LIST "STARPU")
+
+#  # Additional options for developers 
+#  if( SCALFMM_ONLY_DEVEL )
+#    if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
+#      option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4"    OFF )
+#    else()
+#      option( SCALFMM_USE_OMP4 "Set to ON to disable the gcc/intel omp4"    ON )
+#    endif()
+#    option( SCALFMM_TIME_OMPTASKS "Set to ON to time omp4 tasks and generate output file"    OFF )
+#    # SIMGRID and peformance models options
+#    option( SCALFMM_SIMGRID_NODATA "Set to ON to avoid the allocation of numerical parts in the group tree" OFF )
+#    option( STARPU_SIMGRID_MLR_MODELS "Set to ON to enable MLR models need for calibration and simulation" OFF )
+#    # OPENMP 4/5 support
+#    message(WARNING "OpenMP_VERSION:  ${OpenMP_VERSION}")
+#    option( OPENMP_SUPPORT_PRIORITY  "Set to ON to enable tasks priority (OMP4.x/KSTAR/StarPU compiler only)" OFF )
+#    # STARPU options
+#    cmake_dependent_option(OPENMP_SUPPORT_COMMUTE        "Set to ON to let tasks commute (KSTAR/StarPU compiler only)" OFF
+#      "SCALFMM_USE_STARPU" OFF)
+#    cmake_dependent_option(OPENMP_SUPPORT_TASK_NAME       "Set to ON to enable a taskname clause for tasks (KSTAR/StarPU compiler only)" OFF
+#      "SCALFMM_USE_STARPU" OFF)
+#    cmake_dependent_option(SCALFMM_STARPU_USE_COMMUTE  "Set to ON to enable commute with StarPU" ON  "SCALFMM_USE_STARPU" OFF)
+#    cmake_dependent_option(SCALFMM_STARPU_USE_REDUX  "Set to ON to enable redux with StarPU"     OFF "SCALFMM_USE_STARPU" OFF)
+#    cmake_dependent_option(SCALFMM_STARPU_USE_PRIO  "Set to ON to enable priority with StarPU"   ON  "SCALFMM_USE_STARPU" OFF)
+#    cmake_dependent_option(SCALFMM_STARPU_FORCE_NO_SCHEDULER  "Set to ON to disable heteroprio even if supported" OFF "SCALFMM_USE_STARPU" OFF)
+#    cmake_dependent_option(SCALFMM_USE_STARPU_EXTRACT  "Set to ON to enable extract with StarPU mpi implicit" ON  "SCALFMM_USE_STARPU" OFF)
+#  endif()
 
+  #
+  # Set ScalFMM compile flags
+  # -------------------------
+  string(REPLACE ";" " " SCALFMM_COMPILE_FLAGS "${SCALFMM_CXX_FLAGS}")
+  set(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS}" CACHE STRING "Global compile flags for ScalFMM")
+  message(STATUS "ScalFMM final flags : ${SCALFMM_CXX_FLAGS}")
+  # And adding flags to target
+  # --------------------------
+  target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE "${SCALFMM_CXX_FLAGS}")
+
+  #
+  # Set ScalFMM dependencies
+  # ------------------------
+  string(REPLACE ";" " " SCALFMM_COMPILE_LIBS "${SCALFMM_LIBRARIES}")
+  set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES}" CACHE STRING "ScalFMM libraries dependencies")
+  message(STATUS "ScalFMM dependencies : ${SCALFMM_LIBRARIES}")
+  
+  #  #
+  #  # Set ScalFMM link flags
+  #  # ----------------------
+  #  string(REPLACE ";" " " SCALFMM_LINK_FLAGS "${SCALFMM_LINK_FLAGS}")
+  #  set(SCALFMM_LINK_FLAGS "${SCALFMM_LINK_FLAGS}" CACHE STRING "Global link flags for ScalFMM")
+  #  message(STATUS "ScalFMM link flags : ${SCALFMM_LINK_FLAGS}")
+  #  # And adding lin flags to the target
+  #  # ----------------------------------
+  #  target_link_options(${CMAKE_PROJECT_NAME} INTERFACE "${SCALFMM_LIBRARIES}")
+
+  #
+  # Set ScalFMM compile definitions
+  # -------------------------------
+  set(SCALFMM_COMPILE_DEFINITIONS "${SCALFMM_COMPILE_DEFINITIONS}" CACHE STRING "Global compile definitions for ScalFMM")
+  message(STATUS "ScalFMM compile definitions : ${SCALFMM_COMPILE_DEFINITIONS}")
+  # And adding definitions to target
+  # --------------------------------
+  target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC "${SCALFMM_COMPILE_DEFINITIONS}")
+
+
+  #
+  # Generate ScalFmmConfig.h
+  # ------------------------
+  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/ScalFmmConfig.h.cmake
+    ${CMAKE_CURRENT_BINARY_DIR}/include/ScalFmmConfig.h)
+  
+  #
+  # Static analysis during build
+  # ----------------------------
+  option(SCALFMM_USE_STATIC_ANALYSIS "Set to ON to enable static analysis tools." OFF)
+  get_target_property(SCALFMM_INCLUDE_DIRS ${CMAKE_PROJECT_NAME} INCLUDE_DIRECTORIES)
+
+  if(SCALFMM_USE_STATIC_ANALYSIS)
+    find_program(CPPCHECK "cppcheck")
+    if (CPPCHECK)
+      set(CMAKE_CXX_CPPCHECK "${CPPCHECK}"
+        "--language=c++"
+        "$<GENEX_EVAL:-I$<JOIN:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>, -I>>"
+        "-v"
+        "--enable=all"
+        "--force"
+        "--inline-suppr"
+        )
+      message(STATUS "CPPCHECK analysis is ON.")
     endif()
-
-        # TODO: is this very useful? CUDA is already a component of find starpu
-    if (CUDA_LIBRARIES)
-      set(SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES};${CUDA_LIBRARIES}")
+  
+    find_program(CLANGTIDY "clang-tidy")
+    if (CLANGTIDY)
+      set(CMAKE_CXX_CLANG_TIDY "${CLANGTIDY};-checks=-*,boost-*,cppcoreguidelines-*,clang-analyser-cplusplus*,modernize-*,mpi-*,performance-*,portability-*,readability-*")
+      message(STATUS "Clang Tidy analysis is ON.")
     endif()
 
-    # Message
-    if (STARPU_INCLUDE_DIRS)
-      message(STATUS "         STARPU_INCLUDES           = ${STARPU_INCLUDE_DIRS}")
-      LIST(APPEND SCALFMM_INCLUDES  "${STARPU_INCLUDE_DIRS}")
+    find_program(IWYU "include-what-you-use")
+    if(IWYU)
+      set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "${IWYU}")
+      message(STATUS "Include What You Use analysis is ON.")
     endif()
-
-    # Adding SimGrid includes
-    LIST(APPEND SCALFMM_INCLUDES "$ENV{SIMGRID_INCLUDE}")
-    message(STATUS "         Adding SIMGRID           = $ENV{SIMGRID_INCLUDE}")
-  endif(SCALFMM_USE_STARPU)
-  list(APPEND FUSE_LIST "STARPU")
-
-  ##################################################################
-  #                         FUSE                                   #
-  ##################################################################
-
-  list(APPEND FUSE_LIST "SSE")
-  list(APPEND FUSE_LIST "AVX")
-  list(APPEND FUSE_LIST "MIC")
-
-  ##################################################################
-  #
-  #   Set EZTRACE
-  #
-  ##################################################################
-  If(SCALFMM_USE_EZTRACE)
-    find_package (PkgConfig)
-    if(PKG_CONFIG_FOUND)
-      set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH "ON")
-      pkg_search_module( EZTrace REQUIRED eztrace)
-      if(EZTrace_FOUND)
-        link_directories(${EZTrace_LIBRARY_DIRS})
-        link_libraries( ${EZTrace_LIBRARIES})
-        if (EZTrace_LIBRARY_DIRS)
-          # the RPATH to be used when installing
-          list(APPEND CMAKE_INSTALL_RPATH "${EZTrace_LIBRARY_DIRS}")
-        endif()
-        IF( SCALFMM_USE_MPI )
-          link_libraries(-leztrace-autostart-mpi)
-        ENDIF(SCALFMM_USE_MPI)
-        include_directories(${EZTrace_INCLUDE_DIRS})
-        MESSAGE(STATUS "EZTRACE:  ${EZTrace_INCLUDE_DIRS}   ${EZTrace_LIBRARY_DIRS}  ${EZTrace_LIBRARIES}")
-        CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_ALGO "Set to ON to trace the full algorithm (all operators)" ON  "SCALFMM_USE_EZTRACE" OFF )
-        CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_P2M   "Set to ON to trace P2M operator" OFF  "SCALFMM_USE_EZTRACE" OFF )
-        CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_M2M   "Set to ON to trace M2M operator" OFF  "SCALFMM_USE_EZTRACE" OFF )
-        CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_M2L   "Set to ON to trace M2L operator" OFF  "SCALFMM_USE_EZTRACE" OFF )
-        CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_L2L   "Set to ON to trace L2L operator" OFF  "SCALFMM_USE_EZTRACE" OFF )
-        CMAKE_DEPENDENT_OPTION(SCALFMM_TRACE_P2P   "Set to ON to trace P2P operator" OFF  "SCALFMM_USE_EZTRACE" OFF )
-      else(EZTrace_FOUND)
-        MESSAGE(WARNING "Eztrace not found - EZTRACE Is set to OFF")
-        set(SCALFMM_USE_EZTRACE OFF)
-      endif(EZTrace_FOUND)
-    else(PKG_CONFIG_FOUND)
-      MESSAGE(WARNING "PKG-CONFIG not found - EZTRACE Is set to OFF")
-      set(SCALFMM_USE_EZTRACE OFF)
-    endif(PKG_CONFIG_FOUND)
-
-  endif(SCALFMM_USE_EZTRACE)
-
-  list(APPEND FUSE_LIST "OMP4")
-
-  ##################################################################
-  #
-  #   To catch signals
-  #
-  ##################################################################
-  if((WIN32 OR (${CMAKE_SYSTEM_NAME} MATCHES "Windows")) AND SCALFMM_USE_SIGNALS)
-    # We are on Windows and we cannot catch signals
-    message( FATAL_ERROR "Catching the signals requieres an UNIX system." )
-  else()
-    IF( NOT APPLE)
-      SET(SCALFMM_CXX_FLAGS "${SCALFMM_CXX_FLAGS} -rdynamic")
-    ENDIF()
   endif()
-  ##################################################################
-  #                                                                #
-  #                     END SETTING VARIABLES                      #
-  #                                                                #
-  ##################################################################
-  #
-  # Generate  ScalFmmConfig.h
-  #
-  set(SCALFMM_COMPILE_FLAGS "${SCALFMM_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")
-  set(CMAKE_CXX_FLAGS "${SCALFMM_COMPILE_FLAGS}")
-  # We need the libraries without spaces (inside the config file)
-  set(SCALFMM_COMPILE_LIBS   "")
-  foreach(lib_var ${SCALFMM_LIBRARIES})
-    string(STRIP ${lib_var} lib_var)
-    LIST(APPEND SCALFMM_COMPILE_LIBS   ${lib_var})
-  endforeach()
-  string(REPLACE " " ";" SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES}")
-  string(REPLACE ";;" ";" SCALFMM_LIBRARIES "${SCALFMM_LIBRARIES}")
-#  string(REPLACE " " ";" SCALFMM_INCLUDES "${SCALFMM_INCLUDES}")
-#  string(REPLACE ";;" ";" SCALFMM_INCLUDES "${SCALFMM_INCLUDES}")
-  configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Src/ScalFmmConfig.h.cmake
-    ${CMAKE_CURRENT_BINARY_DIR}/Src/ScalFmmConfig.h  )
-  #
-  ##################################################################
-  #                      Build - lib                               #
-  ##################################################################
-  #
-  MESSAGE(STATUS "FUSE : ${FUSE_LIST} ")
-  add_subdirectory(Contribs)
-  add_subdirectory(Src)
-  # Link with scalfmm lib
-  set(scalfmm_lib scalfmm)
+
   #
-  ##################################################################
-  #            Remove compilation  of the drivers                  #
-  ##################################################################
-  message(STATUS "SCALFMM_BUILD_EXAMPLES  =  ${SCALFMM_BUILD_EXAMPLES}" )
+  # Build Examples
+  # --------------
+  message(STATUS "SCALFMM_BUILD_EXAMPLES = ${SCALFMM_BUILD_EXAMPLES}" )
   if( SCALFMM_BUILD_EXAMPLES )
     # Build - Examples and drivers
     add_subdirectory(Examples)
   endif()
-  ##################################################################
-  #           Build tools (Internal use)                           #
-  ##################################################################
-  # Build - UTILs
+
+  #
+  # Build tools (Internal use)
+  # --------------------------
+  # Build - Utils
   if( SCALFMM_ONLY_DEVEL AND SCALFMM_BUILD_UTILS)
     add_subdirectory(Utils)
   endif()
-
-  ##################################################################
-  #                Build -Tests to see examples                    #
-  ##################################################################
+  
+  #
+  # Build Tests to see examples
+  # ----------------------------
   # Build - Tests
-  message( STATUS "SCALFMM_BUILD_TESTS          = ${SCALFMM_BUILD_TESTS}" )
+  message( STATUS "SCALFMM_BUILD_TESTS = ${SCALFMM_BUILD_TESTS}" )
   if( SCALFMM_BUILD_TESTS )
     add_subdirectory(Tests)
   endif()
 
-  ##################################################################
-  #              Build - Unitary and numerical Tests               #
-  ##################################################################
   #
-  message( STATUS "SCALFMM_BUILD_UTESTS         = ${SCALFMM_BUILD_UTESTS}" )
+  # Build - Unitary and numerical Tests
+  # -----------------------------------
+  message( STATUS "SCALFMM_BUILD_UTESTS = ${SCALFMM_BUILD_UTESTS}" )
   if( SCALFMM_BUILD_UTESTS )
-    include(CTest)
     enable_testing()
+    include(CTest)
     add_subdirectory(UTests)
   endif()
+
   #
-  ##################################################################
-  #                           Add - doc                            #
-  ##################################################################
-  #
-  message(STATUS "SCALFMM_BUILD_DOC           =  ${SCALFMM_BUILD_DOC}" )
+  # Add - doc
+  # ---------
+  message(STATUS "SCALFMM_BUILD_DOC = ${SCALFMM_BUILD_DOC}" )
   if(SCALFMM_BUILD_DOC)
     add_subdirectory(Doc)
   endif()
-  #
-  ##################################################################
-  #                       Build - Addons                           #
-  ##################################################################
-  #
-  #   SCALFMM_ADDON_CKERNELAPI doesn't works with scalfmm 2.0
-#  if( SCALFMM_USE_ADDONS )
-#    file(GLOB all_addons ./Addons/*)
-#    # Options
-#    option( SCALFMM_ADDON_CKERNELAPI "Set to ON to build ScaFMM FMM API interface" OFF )
-#    foreach(addon_name ${all_addons})
-#      message(STATUS "Addons += ${addon_name}" )
-#      add_subdirectory(${addon_name})
-#    endforeach()
-#  endif()
+  
+  #
+  # Export Library
+  # --------------
+  install(TARGETS ${CMAKE_PROJECT_NAME} inastemp 
+    EXPORT ${CMAKE_PROJECT_NAME}-targets
+    LIBRARY DESTINATION lib
+    ARCHIVE DESTINATION lib
+    RUNTIME DESTINATION bin)
+  
+  install(DIRECTORY ${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/include
+    DESTINATION ${CMAKE_INSTALL_PREFIX}
+    PATTERN "ScalFmmConfig.h.cmake" EXCLUDE)
+
+  install(FILES ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/include/ScalFmmConfig.h
+    DESTINATION include)
+
+  install(EXPORT ${CMAKE_PROJECT_NAME}-targets
+    FILE ${CMAKE_PROJECT_NAME}-targets.cmake
+    NAMESPACE ${CMAKE_PROJECT_NAME}::
+    DESTINATION lib/cmake/${CMAKE_PROJECT_NAME})
+
+  include(CMakePackageConfigHelpers)
+  write_basic_package_version_file("${CMAKE_PROJECT_NAME}ConfigVersion.cmake"
+    VERSION ${${CMAKE_PROJECT_NAME}_VERSION}
+    COMPATIBILITY SameMajorVersion)
 
-  # Add custom clean command
-  if("${CMAKE_GENERATOR}" MATCHES "Make")
-    add_custom_target(reset
-      COMMAND ${CMAKE_MAKE_PROGRAM} clean && rm -r ./CMake* && cmake ..
-      WORKING_DIRECTORY ${CMAKE_CURRENT_DIR}
-      COMMENT "Cleaning Build dir and CMake cache, then do cmake.."
-      )
-  endif()
-  #
-  ##################################################################
-  #                                                                #
-  #                  Build and export cmake files                  #
-  #                                                                #
-  ##################################################################
-  #
-  message(STATUS "SCALFMM_BINARY_DIR:          " ${SCALFMM_BINARY_DIR})
-  configure_file(${SCALFMM_SOURCE_DIR}/ScalFMMConfig.cmake.in
-    ${SCALFMM_BINARY_DIR}/ScalFMMConfig.cmake
-    @ONLY IMMEDIATE
-    )
-  #
-  install(FILES  ${SCALFMM_BINARY_DIR}/ScalFMMConfig.cmake  DESTINATION lib/  )
   if( SCALFMM_INSTALL_DATA )
     install(FILES  ${SCALFMM_SOURCE_DIR}/Data/test20k.fma  DESTINATION Data/   )
   endif()
+
+  configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_PROJECT_NAME}Config.cmake.in
+    "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+    INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/cmake/${CMAKE_PROJECT_NAME}/)
+
+  install(FILES "${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}ConfigVersion.cmake"
+    "${PROJECT_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake"
+    DESTINATION lib/cmake/${CMAKE_PROJECT_NAME})
+
   #
-  ##################################################################
-  #                                                                #
-  #              build a CPack driven installer package            #
-  #                                                                #
-  ##################################################################
-  #
-  # Use git commit number as CPACK_PACKAGE_VERSION_PATCH
-  set(CPACK_PACKAGE_VERSION_PATCH 0)
-  execute_process(
-    COMMAND git rev-list HEAD --count
-    OUTPUT_VARIABLE CPACK_PACKAGE_VERSION_PATCH
-    RESULT_VARIABLE RET
-    ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-  #string_TRIM(PATCH1 PATCH)
-  set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY "ON")
-  #
-  set(CPACK_RESOURCE_FILE_LICENSE  "${CMAKE_CURRENT_SOURCE_DIR}/LICENCE")
-  set(CPACK_PACKAGE_VERSION_MAJOR "${SCALFMM_MAJOR_VERSION}")
-  set(CPACK_PACKAGE_VERSION_MINOR "${SCALFMM_MINOR_VERSION}")
-  #
-  set(PACK_PACKAGE_VERSION "${SCALFMM_MAJOR_VERSION}.${SCALFMM_MINOR_VERSION}-${CPACK_PACKAGE_VERSION_PATCH}")
-  set(CPACK_SOURCE_GENERATOR "TGZ")
-  set(CPACK_SOURCE_PACKAGE_FILE_NAME  "SCALFMM-${SCALFMM_MAJOR_VERSION}.${SCALFMM_MINOR_VERSION}-${CPACK_PACKAGE_VERSION_PATCH}")
-  set(CPACK_SOURCE_IGNORE_FILES "\\\\.git;.DS_Store;.*~;/*.aux;/*.idx;/*.log;/*.out;/*.toc;/*.ilg;CMakeLists.txt.user;/.settings/")
-  list(APPEND CPACK_SOURCE_IGNORE_FILES  "${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_SOURCE_DIR}/Utils/;/Build*;/Obsolete/")
-  #
+  # build a CPack driven installer package
+  # --------------------------------------
+  # See CPackConfig.cmake for the details.
   include(CPack)
+  
   #
-  #
-  ##################################################################
-  #                                                                #
-  #                      PRINT messages                            #
-  #                                                                #
-  ##################################################################
-  message(STATUS "CPACK_SOURCE_IGNORE_FILES      = ${CPACK_SOURCE_IGNORE_FILES}")
-  message(STATUS "CPACK_SOURCE_PACKAGE_FILE_NAME = ${CPACK_SOURCE_PACKAGE_FILE_NAME}")
-  #
+  # Print configure status
+  # ----------------------
   #                    Use Mem stats
   message(STATUS "SCALFMM_USE_MEM_STATS = ${SCALFMM_USE_MEM_STATS}" )
   #                    Use Log
-  message(STATUS "SCALFMM_USE_LOG       = ${SCALFMM_USE_LOG}" )
+  message(STATUS "SCALFMM_USE_LOG = ${SCALFMM_USE_LOG}" )
   #                    Use Assert
-  message(STATUS "SCALFMM_USE_ASSERT    = ${SCALFMM_USE_ASSERT}" )
+  message(STATUS "SCALFMM_USE_ASSERT = ${SCALFMM_USE_ASSERT}" )
   #
-  message(STATUS "SCALFMM_USE_MPI       = ${SCALFMM_USE_MPI}" )
+  message(STATUS "SCALFMM_USE_MPI = ${SCALFMM_USE_MPI}" )
 
-  message(STATUS "SCALFMM_USE_BLAS      = ${SCALFMM_USE_BLAS}")
-  message(STATUS "SCALFMM_USE_FFT       = ${SCALFMM_USE_FFT}")
-  message(STATUS "SCALFMM_USE_MKL       =  ${SCALFMM_USE_MKL}")
+  message(STATUS "SCALFMM_USE_BLAS = ${SCALFMM_USE_BLAS}")
+  message(STATUS "SCALFMM_USE_FFT = ${SCALFMM_USE_FFT}")
+  message(STATUS "SCALFMM_USE_MKL = ${SCALFMM_USE_MKL}")
   #
   if(SCALFMM_USE_STARPU)
-    message( STATUS "SCALFMM_USE_STARPU             = ${SCALFMM_USE_STARPU}" )
-    message(STATUS "     STARPU_LIBRARIES           = ${STARPU_LIBRARIES}")
-    message( STATUS "SCALFMM_USE_CUDA               = ${SCALFMM_USE_CUDA}" )
-    MESSAGE( STATUS "SCALFMM_USE_OPENCL             = ${SCALFMM_USE_OPENCL}" )
+    message(STATUS "SCALFMM_USE_STARPU = ${SCALFMM_USE_STARPU}" )
+    message(STATUS "STARPU_LIBRARIES = ${STARPU_LIBRARIES}")
+    message(STATUS "SCALFMM_USE_CUDA = ${SCALFMM_USE_CUDA}" )
+    MESSAGE(STATUS "SCALFMM_USE_OPENCL = ${SCALFMM_USE_OPENCL}" )
   endif(SCALFMM_USE_STARPU)
-  message(STATUS "CMAKE_CXX_FLAGS_TYPE  = ${CMAKE_CXX_FLAGS_TYPE}")
-  message(STATUS "CMAKE_CXX_FLAGS       = ${CMAKE_CXX_FLAGS}")
-  message(STATUS "SCALFMM_CXX_FLAGS     = ${SCALFMM_CXX_FLAGS}")
-  message(STATUS "SCALFMM_LIBRARIES     = ${SCALFMM_LIBRARIES}")
-  message(STATUS "SCALFMM_INCLUDES      = ${SCALFMM_INCLUDES}")
-  message(STATUS "FUSE_LIST             = ${FUSE_LIST}")
-  #
-  ##################################################################
-  #                               END                              #
-  ##################################################################
-  #
+  message(STATUS "SCALFMM_CXX_FLAGS = ${SCALFMM_CXX_FLAGS}")
+  message(STATUS "SCALFMM_LIBRARIES = ${SCALFMM_LIBRARIES}")
+  message(STATUS "FUSE_LIST = ${FUSE_LIST}")
+
 else(MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_cmake")
 
   message(STATUS "MORSE_DISTRIB_DIR is not set")
diff --git a/CMakeModules/morse_cmake b/CMakeModules/morse_cmake
index 33a182878..31198c66f 160000
--- a/CMakeModules/morse_cmake
+++ b/CMakeModules/morse_cmake
@@ -1 +1 @@
-Subproject commit 33a182878f9049c47af1fce3e86e72b9a10e7f7a
+Subproject commit 31198c66ff51f600dde4282faed234a4c0b9cfd9
diff --git a/CMakeModules/utils.cmake b/CMakeModules/utils.cmake
new file mode 100644
index 000000000..7b8d326e9
--- /dev/null
+++ b/CMakeModules/utils.cmake
@@ -0,0 +1,26 @@
+# helper function for generating targets
+
+# This function creates an executable target with a list
+# of sources and all requirements passed as arguments
+# if the expression passed as boolean is true.
+# ----------------------------------------------------
+function(scalfmm_create_target target_name sources_list dependencies options )
+  # Here, we generate a vector of boolean to check if dependencies (targets)
+  # exists. 1 is yes, 0 otherwise
+  foreach(dep IN LISTS dependencies)
+    if(TARGET ${dep})
+      list(APPEND VECTOR_BOOL 1)
+    else()
+      list(APPEND VECTOR_BOOL 0)
+    endif()
+  endforeach()
+  # If all dependencies are met, we generate the target, otherwise not.
+  if(NOT 0 IN_LIST VECTOR_BOOL)
+    add_executable(${target_name} ${sources_list})
+    target_link_libraries(${target_name} PRIVATE ${dependencies})
+    target_compile_options(${target_name} PRIVATE ${options})
+    set_target_properties(${target_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BUILD_TYPE})
+    install(TARGETS ${target_name} RUNTIME DESTINATION bin)
+  endif()
+endfunction(scalfmm_create_target)
+
diff --git a/CPackConfig.cmake b/CPackConfig.cmake
new file mode 100644
index 000000000..d84f9a791
--- /dev/null
+++ b/CPackConfig.cmake
@@ -0,0 +1,21 @@
+set(CPACK_PACKAGE_VERSION_PATCH 0)
+execute_process(
+  COMMAND git rev-list HEAD --count
+  OUTPUT_VARIABLE CPACK_PACKAGE_VERSION_PATCH
+  RESULT_VARIABLE RET
+  ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
+  )
+#string_TRIM(PATCH1 PATCH)
+set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY "ON")
+#
+set(CPACK_RESOURCE_FILE_LICENSE  "${CMAKE_CURRENT_SOURCE_DIR}/LICENCE")
+set(CPACK_PACKAGE_VERSION_MAJOR "${${CMAKE_PROJECT_NAME}_MAJOR_VERSION}")
+set(CPACK_PACKAGE_VERSION_MINOR "${${CMAKE_PROJECT_NAME}_MINOR_VERSION}")
+#
+set(PACK_PACKAGE_VERSION "${${CMAKE_PROJECT_NAME}_VERSION}.${${CMAKE_PROJECT_NAME}_MINOR_VERSION}-${CPACK_PACKAGE_VERSION_PATCH}")
+set(CPACK_SOURCE_GENERATOR "TGZ")
+set(CPACK_SOURCE_PACKAGE_FILE_NAME  "SCALFMM-${${CMAKE_PROJECT_NAME}_MAJOR_VERSION}.${${CMAKE_PROJECT_NAME}_MINOR_VERSION}-${CPACK_PACKAGE_VERSION_PATCH}")
+set(CPACK_SOURCE_IGNORE_FILES "\\\\.git;.DS_Store;.*~;/*.aux;/*.idx;/*.log;/*.out;/*.toc;/*.ilg;CMakeLists.txt.user;/.settings/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES  "${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_SOURCE_DIR}/Utils/;/Build*;/Obsolete/")
+#
+
diff --git a/Contribs/CMakeLists.txt b/Contribs/CMakeLists.txt
deleted file mode 100644
index bef9e3475..000000000
--- a/Contribs/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-# check if compiling into source directories
-INSTALL( FILES json.hpp DESTINATION include/Contribs )
-
-INSTALL( DIRECTORY "inria" DESTINATION include )
-
-
diff --git a/Doc/Doxyfile.in b/Doc/Doxyfile.in
index 50249c23c..12c2a5ca6 100644
--- a/Doc/Doxyfile.in
+++ b/Doc/Doxyfile.in
@@ -658,7 +658,8 @@ WARN_LOGFILE           =
 # with spaces.
 
 INPUT                  = @CMAKE_CURRENT_SOURCE_DIR@/../Doc/Site_dox \
-                         @CMAKE_CURRENT_SOURCE_DIR@/../Src/ \
+                         @CMAKE_CURRENT_SOURCE_DIR@/../src/ \
+                         @CMAKE_CURRENT_SOURCE_DIR@/../include/ \
                          @CMAKE_CURRENT_SOURCE_DIR@/../Examples/ \
                          @CMAKE_CURRENT_SOURCE_DIR@/../Tests/
 
diff --git a/Examples/CMakeLists.txt b/Examples/CMakeLists.txt
index 07f07d968..36268aec8 100644
--- a/Examples/CMakeLists.txt
+++ b/Examples/CMakeLists.txt
@@ -1,95 +1,53 @@
-# check if compiling into source directories
-STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource)
-if(insource)
-    MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto scalfmm/Build and tapes cmake ../")
-endif(insource)
+# Examples
+# --------
+
+# List of source files
+set(source_tests_files
+  changeFmaFormat.cpp
+  ChebyshevHybridFMM.cpp
+  ChebyshevOpenMPAdaptiveFMM.cpp
+  ChebyshevOpenMPFMM.cpp
+  ChebyshevStarpuImplicit.cpp
+  compare2Files.cpp
+  compareAllPoissonKernels.cpp
+  CutOffAlgorithm.cpp
+  DirectComputation.cpp
+  generateDistributions.cpp
+  LagrangeHybridFMM.cpp
+  LagrangeInterpolationAdaptiveFMM.cpp
+  LagrangeOpenMPFMM.cpp
+  LagrangeStarpuImplicit.cpp
+  RotationFMM.cpp
+  RotationMPIFMM.cpp
+  statisticsOnOctree.cpp
+  )
 
-project(EXAMPLES_SCALFMM CXX)
-set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE})
-#ADD_DEFINITIONS( ${SCALFMM_CXX_FLAGS})
-
-# Adding the project sources dir as an include dir
-INCLUDE_DIRECTORIES(
-     ${SCALFMM_BINARY_DIR}/Src 
-     ${SCALFMM_SOURCE_DIR}/Src 
-     ${SCALFMM_SOURCE_DIR}/Contribs
-     ${SCALFMM_SOURCE_DIR}
-     ${SCALFMM_INCLUDES}
-     
-)
-# Find all code files
-file(
-    GLOB_RECURSE
-    source_tests_files
-    ./*.cpp
-    )
 # Add execs - 1 cpp = 1 exec
-foreach(exec ${source_tests_files})
-        get_filename_component(
-                execname ${exec}
-                NAME_WE
-        )
-
-        set(compile_exec "TRUE")
-
-        foreach(fuse_key ${FUSE_LIST})
-            file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}")
-            if(lines_fuse)
-                    if( NOT SCALFMM_USE_${fuse_key} )
-                            MESSAGE( STATUS "This needs ${fuse_key} = ${exec}" )
-                            set(compile_exec "FALSE")
-                    endif()
-            endif()
-        endforeach()
-
-        # Dependency are OK
-        if( compile_exec )
-                add_executable(
-                                ${execname}
-                                ${exec}
-                                )
-                SET_TARGET_PROPERTIES(${execname} PROPERTIES ENABLE_EXPORTS TRUE)
-                target_link_libraries(
-                        ${execname}
-                        ${scalfmm_lib}
-                        ${SCALFMM_LIBRARIES}
-                        )
-                 install( TARGETS ${execname}  DESTINATION bin )
-        endif()
+foreach(exec ${source_tests_files}) 
+  set(compile_exec TRUE)
+  get_filename_component( execname ${exec} NAME_WE )
+	
+  foreach(fuse_key ${FUSE_DEP_AVAILABLE})
+    file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}")
+    if(lines_fuse AND NOT ${fuse_key} IN_LIST FUSE_LIST)
+      message( STATUS "This needs ${fuse_key} = ${exec}" )
+      set(compile_exec FALSE)
+    endif()
+  endforeach()
+
+  # Dependency are OK
+  if( compile_exec )
+    add_executable( ${execname} ${exec})
+    list(APPEND SCALFMM_EXAMPLES_TARGETS ${execname})
+    list(APPEND SCALFMM_TESTS_TARGETS ${execname})
+    set_target_properties(${execname} PROPERTIES ENABLE_EXPORTS TRUE
+      RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BUILD_TYPE}
+      )
+    target_link_libraries( ${execname} PRIVATE ${CMAKE_PROJECT_NAME})
+    install(TARGETS ${execname} RUNTIME DESTINATION bin)
+  endif()
 endforeach(exec)
 
-#set(GENERIC_SOURCE_FILES  changeFmaFormat compare2Files generateDistributions statisticsOnOctree
-#    DirectComputation CutOffAlgorithm RotationFMM compareAllPoissonKernels)
-#if(SCALFMM_USE_BLAS)
-#    set(GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES} ChebyshevInterpolationFMM ChebyshevInterpolationAdaptiveFMM  )
-#endif(SCALFMM_USE_BLAS)
-
-#if(SCALFMM_USE_FFT)
-#    set(GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES} UniformInterpolationFMM LagrangeInterpolationAdaptiveFMM  )
-#else()
-#  message(STATUS " &&&&&&&&&&&&&&&&&&&& SCALFMM_USE_FFT ${SCALFMM_USE_FFT}")
-#endif(SCALFMM_USE_FFT)
-
-#if(SCALFMM_USE_MPI)
-#    set(GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES} RotationMPIFMM  )
-#    if(SCALFMM_USE_BLAS)
-#        set(GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES} MPIChebyshevInterpolationFMM ChebyshevInterpolationMPIFMMSplit ChebyshevInterpolationMPIFMM  )
-
-#    endif(SCALFMM_USE_BLAS)
+add_custom_target(scalfmm_examples ALL DEPENDS ${SCALFMM_EXAMPLES_TARGETS})
 
-#    if(SCALFMM_USE_FFT)
-#        set(GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES}   MPIUniformInterpolationFMM)
-#    endif(SCALFMM_USE_FFT)
 
-#endif()
-##
-##MESSAGE(WARNIG "GENERIC_SOURCE_FILES ${GENERIC_SOURCE_FILES}")
-##
-##
-##
-#foreach(exec ${GENERIC_SOURCE_FILES})
-#    add_executable(${exec} ${exec}.cpp)
-#    SET_TARGET_PROPERTIES(${exec} PROPERTIES ENABLE_EXPORTS TRUE)
-#    target_link_libraries(${exec} ${scalfmm_lib} ${SCALFMM_LIBRARIES} )
-#    install( TARGETS ${exec}  DESTINATION bin )
-#endforeach(exec)
diff --git a/ScalFMMConfig.cmake.in b/ScalFMMConfig.cmake.in
deleted file mode 100644
index e2b98e1d2..000000000
--- a/ScalFMMConfig.cmake.in
+++ /dev/null
@@ -1,54 +0,0 @@
-#-----------------------------------------------------------------------------
-#
-# SCALFMMConfig.cmake - SCALFMM CMake configuration file for external projects.
-#
-# This file is configured by SCALFMM and used by the SCALFMM.cmake module
-# to load SCALFMM's settings for an external project.
-#
-@SCALFMM_CONFIG_INSTALL_ONLY@
-#
-SET(SCALFMM_VERSION_MAJOR "@SCALFMM_MAJOR_VERSION@")
-SET(SCALFMM_VERSION_MINOR "@SCALFMM_MINOR_VERSION@")
-SET(SCALFMM_VERSION_BUILD  "@SCALFMM_BUILD_VERSION@")
-#
-SET(SCALFMM_PREFIX        "@CMAKE_INSTALL_PREFIX@")
-SET(SCALFMM_INCLUDES_DIR   "@CMAKE_INSTALL_PREFIX@/include")
-SET(SCALFMM_INCLUDES_ADD "@SCALFMM_INCLUDES@")
-SET(SCALFMM_LIBRARIES_DIR "@CMAKE_INSTALL_PREFIX@/lib")
-SET(SCALFMM_LIBRARIES_ADD "@SCALFMM_COMPILE_LIBS@")
-SET(SCALFMM_LIBRARY_NAME  "@scalfmm_lib@")
-SET(SCALFMM_CXX_FLAGS     "@SCALFMM_CXX_FLAGS@ @CMAKE_CXX_FLAGS@")
-#
-SET(SCALFMM_SOURCE_DIR	   "@SCALFMM_SOURCE_DIR@")
-SET(SCALFMM_BUILD_SHARED_LIBS "@BUILD_SHARED_LIBS@")
-SET(SCALFMM_USE_FILE	   "@SCALFMM_USE_FILE@")
-#
-SET(SCALFMM_BUILD_TYPE     "@CMAKE_BUILD_TYPE@")
-#
-# SCALFMM Options
-#
-SET(SCALFMM_USE_ADDONS           "@SCALFMM_USE_ADDONS@")
-SET(SCALFMM_USE_MPI              "@SCALFMM_USE_MPI@")
-SET(SCALFMM_USE_BLAS             "@SCALFMM_USE_BLAS@")
-SET(SCALFMM_USE_FFT              "@SCALFMM_USE_FFT@")
-SET(SCALFMM_USE_MKL              "@SCALFMM_USE_MKL_AS_BLAS@")
-SET(SCALFMM_FLAGS                "@SCALFMM_FLAGS_OPTI@")
-SET(SCALFMM_USE_MEM_STATS        "@SCALFMM_USE_MEM_STATS@") 
-SET(SCALFMM_USE_LOG              "@SCALFMM_USE_LOG@")
-SET(SCALFMM_USE_OMP4             "@SCALFMM_USE_OMP4@")
-SET(SCALFMM_USE_STARPU           "@SCALFMM_USE_STARPU@")
-SET(SCALFMM_USE_SSE              "@SCALFMM_USE_SSE@")
-SET(SCALFMM_USE_AVX              "@SCALFMM_USE_AVX@")
-#
-SET(SCALFMM_DOC_TAGS           "@CMAKE_BINARY_DIR@/Doc/scalfmm.tag")
-
-#
-IF(SCALFMM_USE_ADDONS) 
-  SET(SCALFMM_LIBRARIES "-L${SCALFMM_LIBRARIES_DIR} -l${SCALFMM_LIBRARY_NAME} ${SCALFMM_LIBRARIES_ADD}" )
-ELSE()
-  SET(SCALFMM_LIBRARIES "-L${SCALFMM_LIBRARIES_DIR} -l${SCALFMM_LIBRARY_NAME}" )
-ENDIF()
-
-
-#SCALFMM_BUILD_TESTS => OFF
-#SCALFMM_BUILD_UTESTS => OFF
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index d1f53fff1..5bc4ff801 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1,60 +1,128 @@
-# check if compiling into source directories
-STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource)
-if(insource)
-    MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto scalfmm/Build and tapes cmake ../")
-endif(insource)
-
-project(TESTS_SCALFMM CXX)
-set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE})
-ADD_DEFINITIONS( ${ScaLFMM_CXX_FLAGS})
 # Find all code files
-file(	
-	GLOB_RECURSE
-	source_tests_files
-	./*.cpp
-	)
-
-
-# Adding the project sources dir as an include dir
-INCLUDE_DIRECTORIES(
-     ${SCALFMM_BINARY_DIR}/Src    
-     ${SCALFMM_SOURCE_DIR}/Src   
-     ${SCALFMM_SOURCE_DIR}/Contribs
-     ${SCALFMM_SOURCE_DIR}
-     ${SCALFMM_INCLUDES}
-)
-
+set(source_tests_files
+  GroupTree/compareDAGmapping.cpp 
+  GroupTree/testBlockedAlgorithm.cpp
+  GroupTree/testBlockedAlgorithmDyn.cpp
+  GroupTree/testBlockedChebyshev.cpp 
+  GroupTree/testBlockedMpiAlgorithm.cpp
+  GroupTree/testBlockedMpiChebyshev.cpp
+  GroupTree/testBlockedMpiInterpolation.cpp
+  GroupTree/testBlockedMpiUniform.cpp
+  GroupTree/testBlockedRotationCompare.cpp
+  GroupTree/testBlockedRotation.cpp
+  GroupTree/testBlockedRotationCuda.cpp
+  GroupTree/testBlockedRotationMpi.cpp
+  GroupTree/testBlockedRotationMpiCuda.cpp
+  GroupTree/testBlockedSpeedOperators.cpp
+  GroupTree/testBlockedTaylor.cpp
+  GroupTree/testBlockedTree.cpp
+  GroupTree/testBlockedUnifCudaBench.cpp 
+  GroupTree/testBlockedUnifCuda.cpp
+  GroupTree/testBlockedUniformBench.cpp
+  GroupTree/testBlockedUniformCompare.cpp
+  GroupTree/testBlockedUniform.cpp
+  GroupTree/testBlockedWithCudaAlgorithm.cpp
+  GroupTree/testBlockedWithOpenCLAlgorithm.cpp
+  Kernels/DirectAlgorithm.cpp
+  Kernels/testChebAlgorithm.cpp
+  Kernels/testChebAlgorithmProc.cpp
+  Kernels/testChebTensorialAlgorithm.cpp
+  Kernels/testFlopsChebAlgorithm.cpp
+  Kernels/testOmniPath.cpp
+  Kernels/testP2PEfficency.cpp
+  Kernels/testRotationAlgorithm.cpp
+  Kernels/testRotationAlgorithmProc.cpp
+  Kernels/testRotationPeriodicBench.cpp
+  Kernels/testSmoothUnifAlgorithm.cpp
+  Kernels/testSphericalAlgorithm.cpp
+  Kernels/testSphericalBench.cpp
+  Kernels/testSphericalBlasAlgorithm.cpp
+  Kernels/testSphericalBlockBlasAlgorithm.cpp
+  Kernels/testSphericalDlpolyAlgorithm.cpp
+  Kernels/testSphericalGalaxyCsv.cpp
+  Kernels/testSphericalProcAlgorithm.cpp
+  Kernels/testSphericalRotationAlgorithm.cpp
+  Kernels/testTaylor.cpp
+  Kernels/testTaylorKernel.cpp
+  Kernels/testTaylorSimple.cpp
+  Kernels/testTsmAlgorithm.cpp
+  Kernels/testTuneSphericalBlockBlas.cpp
+  Kernels/testUnifAlgorithm.cpp
+  Kernels/testUnifAlgorithmProc.cpp
+  Kernels/testUnifTensorialAlgorithm.cpp
+  Utils/testBlas.cpp
+  Utils/testChebBinaryM2L.cpp
+  Utils/testChebBinarySymM2L.cpp
+  Utils/testChebInterpolator.cpp
+  Utils/testChebInterpolatorExtendedBBox.cpp
+  Utils/testChebM2Lprecomputation.cpp
+  Utils/testChebOctree.cpp
+  Utils/testChebSxUCBSy.cpp
+  Utils/testChebSymmetries.cpp
+  Utils/testChebTensorProduct.cpp
+  Utils/testCompareIOTree.cpp
+  Utils/testDebug.cpp
+  Utils/testFastDiscreteConvolution.cpp
+  Utils/testFFT.cpp
+  Utils/testFmmAlgorithm.cpp
+  Utils/testFmmAlgorithmOmp4.cpp
+  Utils/testFmmAlgorithmPeriodic.cpp
+  Utils/testFmmAlgorithmProc.cpp
+  Utils/testFmmAlgorithmProcPeriodic.cpp
+  Utils/testFmmAlgorithmProcRandom.cpp
+  Utils/testFmmAlgorithmProcRotation.cpp
+  Utils/testFmmAlgorithmProcTsm.cpp
+  Utils/testFmmAlgorithmTsm.cpp
+  Utils/testLapack.cpp
+  Utils/testLapackQR.cpp
+  Utils/testLoader.cpp
+  Utils/testLoaderFMATsm.cpp
+  Utils/testLoaderFMATsmCreate.cpp
+  Utils/testMemStats.cpp
+  Utils/testMpiCsvSaver.cpp
+  Utils/testOctree.cpp
+  Utils/testOctreeFuncteur.cpp
+  Utils/testOctreeIter.cpp
+  Utils/testOctreeParallelFuncteur.cpp
+  Utils/testOctreePrintMorton.cpp
+  Utils/testOctreeRearrange.cpp
+  Utils/testOctreeRearrangePeriodic.cpp
+  Utils/testOctreeRearrangeProc.cpp
+  Utils/testOctreeRearrangeTsm.cpp
+  Utils/testParameterNames.cpp
+  Utils/testPartitionsMapping.cpp
+  Utils/testStatsTree.cpp
+  Utils/testTemplateExample.cpp
+  Utils/testTic.cpp
+  Utils/testTreeBuilderThread.cpp
+  Utils/testTreeIO.cpp
+  Utils/testUnifInterpolator.cpp
+  Utils/testUnifTensorialInterpolator.cpp    
+  )
 
 # Add execs - 1 cpp = 1 exec
 foreach(exec ${source_tests_files}) 
-	get_filename_component(
-		execname ${exec}
-		NAME_WE
-	)
-
-	set(compile_exec "TRUE")
+  set(compile_exec TRUE)
+  get_filename_component( execname ${exec} NAME_WE )
 	
-	foreach(fuse_key ${FUSE_LIST})
-	    file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}")
-	    if(lines_fuse)
-		    if( NOT SCALFMM_USE_${fuse_key} )
-			    MESSAGE( STATUS "This needs ${fuse_key} = ${exec}" )
-			    set(compile_exec "FALSE")
-		    endif()
-	    endif()
-	endforeach()
+  foreach(fuse_key ${FUSE_DEP_AVAILABLE})
+    file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}")
+    if(lines_fuse AND NOT ${fuse_key} IN_LIST FUSE_LIST)
+      message( STATUS "This needs ${fuse_key} = ${exec}" )
+      set(compile_exec FALSE)
+    endif()
+  endforeach()
 
-	# Dependency are OK
-	if( compile_exec )
-		add_executable(
-				${execname}
-				${exec}
-				)
-		SET_TARGET_PROPERTIES(${execname} PROPERTIES ENABLE_EXPORTS TRUE)
-		target_link_libraries(
-			${execname}
-			${scalfmm_lib}
-			${SCALFMM_LIBRARIES}
-			)
-	endif()
+  # Dependency are OK
+  if( compile_exec )
+    add_executable( ${execname} ${exec})
+    list(APPEND SCALFMM_TESTS_TARGETS ${execname})
+    set_target_properties(${execname} PROPERTIES ENABLE_EXPORTS TRUE
+      RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BUILD_TYPE}
+      )
+    target_link_libraries( ${execname} ${CMAKE_PROJECT_NAME})
+  endif()
 endforeach(exec)
+
+add_custom_target(scalfmm_tests ALL DEPENDS ${SCALFMM_TESTS_TARGETS})
+
diff --git a/Tests/GroupTree/compareDAGmapping.cpp b/Tests/GroupTree/compareDAGmapping.cpp
index a41107b36..6cce41fd0 100644
--- a/Tests/GroupTree/compareDAGmapping.cpp
+++ b/Tests/GroupTree/compareDAGmapping.cpp
@@ -11,10 +11,10 @@
 #include <omp.h>
 using namespace std;
 
-#include "../../Src/Utils/FGlobal.hpp"
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FGlobal.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FParameterNames.hpp"
 enum TaskType {P2M = 0, M2M, M2L, M2L_OUT, L2L, L2P, P2P, P2P_OUT};
 string taskNames[] = {"P2M", "M2M", "M2L", "M2L_out", "L2L", "L2P", "P2P", "P2P_out"};
 struct Task
diff --git a/Tests/GroupTree/testBlockedAlgorithm.cpp b/Tests/GroupTree/testBlockedAlgorithm.cpp
index f048ecf84..63d5ae7d9 100644
--- a/Tests/GroupTree/testBlockedAlgorithm.cpp
+++ b/Tests/GroupTree/testBlockedAlgorithm.cpp
@@ -2,46 +2,46 @@
 // Keep in private GIT
 
 
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Utils/FGlobal.hpp"
 
 //#undef  SCALFMM_USE_STARPU
 //#undef  SCALFMM_USE_OMP4
 
-#include "../../Src/GroupTree/Core/FGroupTree.hpp"
+#include "GroupTree/Core/FGroupTree.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Containers/FVector.hpp"
 
 
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
+#include "Files/FRandomLoader.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "GroupTree/Core/FGroupSeqAlgorithm.hpp"
 #ifdef SCALFMM_USE_OMP4
-#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #endif
 #ifdef SCALFMM_USE_STARPU
-#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
+#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 
-#include "../../Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp"
+#include "GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp"
 #endif
-#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
-#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
+#include "GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "GroupTree/Core/FGroupTaskAlgorithm.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
-#include "../../Src/Components/FTestParticleContainer.hpp"
-#include "../../Src/Components/FTestCell.hpp"
+#include "Components/FTestParticleContainer.hpp"
+#include "Components/FTestCell.hpp"
 #include "Components/FSymbolicData.hpp"
-#include "../../Src/Components/FTestKernels.hpp"
-#include "../../Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp"
+#include "Components/FTestKernels.hpp"
+#include "GroupTree/TestKernel/FGroupTestParticleContainer.hpp"
 
-#include "../../Src/Files/FFmaGenericLoader.hpp"
-#include "../../Src/Core/FFmmAlgorithm.hpp"
+#include "Files/FFmaGenericLoader.hpp"
+#include "Core/FFmmAlgorithm.hpp"
 
 int main(int argc, char* argv[]){
     setenv("STARPU_NCPU","1",1);
diff --git a/Tests/GroupTree/testBlockedAlgorithmDyn.cpp b/Tests/GroupTree/testBlockedAlgorithmDyn.cpp
index db9097ce1..30f542991 100644
--- a/Tests/GroupTree/testBlockedAlgorithmDyn.cpp
+++ b/Tests/GroupTree/testBlockedAlgorithmDyn.cpp
@@ -2,44 +2,44 @@
 // Keep in private GIT
 
 
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Utils/FGlobal.hpp"
 
 #undef SCALFMM_USE_STARPU
 #undef SCALFMM_USE_OMP4
 
-#include "../../Src/GroupTree/Core/FGroupTreeDyn.hpp"
+#include "GroupTree/Core/FGroupTreeDyn.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Containers/FVector.hpp"
 
 
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
+#include "Files/FRandomLoader.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "GroupTree/Core/FGroupSeqAlgorithm.hpp"
 #ifdef SCALFMM_USE_OMP4
-#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #endif
 #ifdef SCALFMM_USE_STARPU
-#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
+#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 
-#include "../../Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp"
+#include "GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp"
 #endif
-#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskAlgorithm.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
-#include "../../Src/Components/FTestParticleContainer.hpp"
-#include "../../Src/Components/FTestCell.hpp"
-#include "../../Src/Components/FTestKernels.hpp"
+#include "Components/FTestParticleContainer.hpp"
+#include "Components/FTestCell.hpp"
+#include "Components/FTestKernels.hpp"
 #include "Components/FSymbolicData.hpp"
 
-#include "../../Src/Files/FFmaGenericLoader.hpp"
-#include "../../Src/Core/FFmmAlgorithm.hpp"
+#include "Files/FFmaGenericLoader.hpp"
+#include "Core/FFmmAlgorithm.hpp"
 
 
 template <class FReal>
diff --git a/Tests/GroupTree/testBlockedChebyshev.cpp b/Tests/GroupTree/testBlockedChebyshev.cpp
index 78cc3f3c4..6776695de 100644
--- a/Tests/GroupTree/testBlockedChebyshev.cpp
+++ b/Tests/GroupTree/testBlockedChebyshev.cpp
@@ -5,39 +5,39 @@
 // Keep in private GIT
 
 
-#include "../../Src/Utils/FGlobal.hpp"
-#include "../../Src/GroupTree/Core/FGroupTree.hpp"
+#include "Utils/FGlobal.hpp"
+#include "GroupTree/Core/FGroupTree.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FSymbolicData.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FSymbolicData.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Kernels/Chebyshev/FChebSymKernel.hpp"
-#include "../../Src/Kernels/Chebyshev/FChebCell.hpp"
+#include "Kernels/Chebyshev/FChebSymKernel.hpp"
+#include "Kernels/Chebyshev/FChebCell.hpp"
 #include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
 
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
-#include "../../Src/Files/FFmaGenericLoader.hpp"
+#include "Files/FRandomLoader.hpp"
+#include "Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
-#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
+#include "GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskAlgorithm.hpp"
 #ifdef SCALFMM_USE_OMP4
-#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #endif
 #ifdef SCALFMM_USE_STARPU
-#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
+#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 #endif
 
-#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "GroupTree/Core/FP2PGroupParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 #include <memory>
 
diff --git a/Tests/GroupTree/testBlockedRotation.cpp b/Tests/GroupTree/testBlockedRotation.cpp
index 17a5717a3..41a4335fb 100644
--- a/Tests/GroupTree/testBlockedRotation.cpp
+++ b/Tests/GroupTree/testBlockedRotation.cpp
@@ -1,38 +1,38 @@
 
 // Keep in private GIT
 
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupTree.hpp"
+#include "GroupTree/Core/FGroupTree.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FSymbolicData.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FSymbolicData.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Kernels/Rotation/FRotationKernel.hpp"
-#include "../../Src/Kernels/Rotation/FRotationCell.hpp"
+#include "Kernels/Rotation/FRotationKernel.hpp"
+#include "Kernels/Rotation/FRotationCell.hpp"
 
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
-#include "../../Src/Files/FFmaGenericLoader.hpp"
+#include "Files/FRandomLoader.hpp"
+#include "Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
-#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
+#include "GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskAlgorithm.hpp"
 #ifdef SCALFMM_USE_OMP4
-#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #endif
 #ifdef SCALFMM_USE_STARPU
-#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
+#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 #endif
-#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "GroupTree/Core/FP2PGroupParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 #include <memory>
diff --git a/Tests/GroupTree/testBlockedRotationCompare.cpp b/Tests/GroupTree/testBlockedRotationCompare.cpp
index 178cc69e5..0e4d1296e 100644
--- a/Tests/GroupTree/testBlockedRotationCompare.cpp
+++ b/Tests/GroupTree/testBlockedRotationCompare.cpp
@@ -4,39 +4,39 @@
 // Keep in private GIT
 
 
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupTree.hpp"
+#include "GroupTree/Core/FGroupTree.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FSymbolicData.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FSymbolicData.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
-#include "../../Src/Kernels/P2P/FP2PR.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PR.hpp"
 
 
 
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
-#include "../../Src/Files/FFmaGenericLoader.hpp"
+#include "Files/FRandomLoader.hpp"
+#include "Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
-#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
+#include "GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskAlgorithm.hpp"
 #ifdef SCALFMM_USE_OMP4
-#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #include "Core/FFmmAlgorithmOmp4.hpp"
 #endif
 #ifdef SCALFMM_USE_STARPU
-#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
+#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 #endif
-#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "GroupTree/Core/FP2PGroupParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 #include <memory>
 
diff --git a/Tests/GroupTree/testBlockedTaylor.cpp b/Tests/GroupTree/testBlockedTaylor.cpp
index 79dd5331a..85be064d4 100644
--- a/Tests/GroupTree/testBlockedTaylor.cpp
+++ b/Tests/GroupTree/testBlockedTaylor.cpp
@@ -1,38 +1,38 @@
 
 // Keep in private GIT
 
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupTree.hpp"
+#include "GroupTree/Core/FGroupTree.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FSymbolicData.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FSymbolicData.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Kernels/Taylor/FTaylorKernel.hpp"
-#include "../../Src/Kernels/Taylor/FTaylorCell.hpp"
+#include "Kernels/Taylor/FTaylorKernel.hpp"
+#include "Kernels/Taylor/FTaylorCell.hpp"
 
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
-#include "../../Src/Files/FFmaGenericLoader.hpp"
+#include "Files/FRandomLoader.hpp"
+#include "Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
-#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
+#include "GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskAlgorithm.hpp"
 #ifdef SCALFMM_USE_OMP4
-#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #endif
 #ifdef SCALFMM_USE_STARPU
-#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
+#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 #endif
-#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "GroupTree/Core/FP2PGroupParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 #include <memory>
diff --git a/Tests/GroupTree/testBlockedTree.cpp b/Tests/GroupTree/testBlockedTree.cpp
index b4b518cb7..39ece5971 100644
--- a/Tests/GroupTree/testBlockedTree.cpp
+++ b/Tests/GroupTree/testBlockedTree.cpp
@@ -1,45 +1,45 @@
 
 // Keep in private GIT
 
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupTree.hpp"
+#include "GroupTree/Core/FGroupTree.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FSymbolicData.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FSymbolicData.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
+#include "Containers/FOctree.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithm.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Kernels/Rotation/FRotationKernel.hpp"
-#include "../../Src/Kernels/Rotation/FRotationCell.hpp"
+#include "Kernels/Rotation/FRotationKernel.hpp"
+#include "Kernels/Rotation/FRotationCell.hpp"
 
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Core/FFmmAlgorithmTask.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmTask.hpp"
 
-#include "../../Src/Files/FFmaGenericLoader.hpp"
+#include "Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
-#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
+#include "GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskAlgorithm.hpp"
 #ifdef SCALFMM_USE_OMP4
-#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #endif
 #ifdef SCALFMM_USE_STARPU
-#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
+#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 #endif
-#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "GroupTree/Core/FP2PGroupParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 int main(int argc, char* argv[]){
diff --git a/Tests/GroupTree/testBlockedUniformCompare.cpp b/Tests/GroupTree/testBlockedUniformCompare.cpp
index f02a24499..3a6de343f 100644
--- a/Tests/GroupTree/testBlockedUniformCompare.cpp
+++ b/Tests/GroupTree/testBlockedUniformCompare.cpp
@@ -6,41 +6,41 @@
 // Keep in private GIT
 
 
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupTree.hpp"
+#include "GroupTree/Core/FGroupTree.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FSymbolicData.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FSymbolicData.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
 #include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
-#include "../../Src/Kernels/Uniform/FUnifKernel.hpp"
-#include "../../Src/Kernels/Uniform/FUnifCell.hpp"
+#include "Kernels/Uniform/FUnifKernel.hpp"
+#include "Kernels/Uniform/FUnifCell.hpp"
 
 
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
-#include "../../Src/Files/FFmaGenericLoader.hpp"
+#include "Files/FRandomLoader.hpp"
+#include "Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
-#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
+#include "GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskAlgorithm.hpp"
 #ifdef SCALFMM_USE_OMP4
-#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
+#include "GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #include "Core/FFmmAlgorithmOmp4.hpp"
 #endif
 #ifdef SCALFMM_USE_STARPU
-#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
+#include "GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 #endif
-#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "GroupTree/Core/FP2PGroupParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 #include <memory>
 
diff --git a/Tests/Kernels/DirectAlgorithm.cpp b/Tests/Kernels/DirectAlgorithm.cpp
index 6bb7af1f4..7ced97a10 100644
--- a/Tests/Kernels/DirectAlgorithm.cpp
+++ b/Tests/Kernels/DirectAlgorithm.cpp
@@ -13,33 +13,33 @@
 #include <string>
 
 #include  "ScalFmmConfig.h"
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FParameterNames.hpp"
-#include "../../Src/Files/FIOVtk.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FParameterNames.hpp"
+#include "Files/FIOVtk.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithmPeriodic.hpp"
-#include "../../Src/Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmPeriodic.hpp"
+#include "Core/FFmmAlgorithm.hpp"
 
 
-#include "../../Src/Files/FDlpolyLoader.hpp"
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Files/FDlpolyLoader.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Kernels/P2P/FP2P.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp"
+#include "Kernels/P2P/FP2P.hpp"
+#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp"
+#include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
+#include "Kernels/Spherical/FSphericalKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
 
 #ifdef SCALFMM_USE_BLAS
 // chebyshev kernel
-#include "../../Src/Kernels/Chebyshev/FChebCell.hpp"
-#include "../../Src/Kernels/Chebyshev/FChebSymKernel.hpp"
+#include "Kernels/Chebyshev/FChebCell.hpp"
+#include "Kernels/Chebyshev/FChebSymKernel.hpp"
 #endif
 
 /** DLpoly particle is used in the gadget program
diff --git a/Tests/Kernels/testChebAlgorithm.cpp b/Tests/Kernels/testChebAlgorithm.cpp
index 2f237c658..bfdf0a744 100644
--- a/Tests/Kernels/testChebAlgorithm.cpp
+++ b/Tests/Kernels/testChebAlgorithm.cpp
@@ -31,7 +31,7 @@
 #include "Core/FFmmAlgorithmThread.hpp"
 #endif
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
  * This program runs the FMM Algorithm with the Chebyshev kernel and compares the results with a direct computation.
diff --git a/Tests/Kernels/testFlopsChebAlgorithm.cpp b/Tests/Kernels/testFlopsChebAlgorithm.cpp
index a113cd35a..c625190cb 100644
--- a/Tests/Kernels/testFlopsChebAlgorithm.cpp
+++ b/Tests/Kernels/testFlopsChebAlgorithm.cpp
@@ -14,24 +14,24 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Files/FFmaScanfLoader.hpp"
+#include "Files/FFmaScanfLoader.hpp"
 
-#include "../../Src/Kernels/Chebyshev/FChebCell.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp"
+#include "Kernels/Chebyshev/FChebCell.hpp"
+#include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
 
-#include "../../Src/Kernels/Chebyshev/FChebFlopsSymKernel.hpp"
+#include "Kernels/Chebyshev/FChebFlopsSymKernel.hpp"
 
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithm.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 int main(int argc, char* argv[])
diff --git a/Tests/Kernels/testOmniPath.cpp b/Tests/Kernels/testOmniPath.cpp
index 46117e0bf..13bc419d1 100644
--- a/Tests/Kernels/testOmniPath.cpp
+++ b/Tests/Kernels/testOmniPath.cpp
@@ -12,33 +12,33 @@
 #include <cstdlib>
 
 
-#include "../../Src/Kernels/Rotation/FRotationCell.hpp"
-#include "../../Src/Kernels/Rotation/FRotationKernel.hpp"
+#include "Kernels/Rotation/FRotationCell.hpp"
+#include "Kernels/Rotation/FRotationKernel.hpp"
 
-#include "../../Src/Kernels/Uniform/FUnifCell.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp"
-#include "../../Src/Kernels/Uniform/FUnifKernel.hpp"
+#include "Kernels/Uniform/FUnifCell.hpp"
+#include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
+#include "Kernels/Uniform/FUnifKernel.hpp"
 
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp"
 
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FMemUtils.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
-#include "../../Src/Files/FMpiTreeBuilder.hpp"
+#include "Files/FRandomLoader.hpp"
+#include "Files/FMpiTreeBuilder.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmThreadProc.hpp"
 
-#include "../../Src/Utils/FLeafBalance.hpp"
+#include "Utils/FLeafBalance.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
  * This program runs the FMM Algorithm Distributed with the uniform kernel
diff --git a/Tests/Kernels/testP2PEfficency.cpp b/Tests/Kernels/testP2PEfficency.cpp
index 0c58a1d29..b161155dc 100644
--- a/Tests/Kernels/testP2PEfficency.cpp
+++ b/Tests/Kernels/testP2PEfficency.cpp
@@ -12,17 +12,17 @@
 #include <string>
 
 #include  "ScalFmmConfig.h"
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FParameterNames.hpp"
-#include "../../Src/Files/FIOVtk.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FParameterNames.hpp"
+#include "Files/FIOVtk.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Files/FRandomLoader.hpp"
+#include "Containers/FOctree.hpp"
+#include "Files/FRandomLoader.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PR.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp"
+#include "Kernels/P2P/FP2PR.hpp"
+#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp"
 
 // Simply create particles and try the kernels
 int main(int argc, char ** argv){
diff --git a/Tests/Kernels/testRotationAlgorithm.cpp b/Tests/Kernels/testRotationAlgorithm.cpp
index 9b1901037..1545dcac1 100644
--- a/Tests/Kernels/testRotationAlgorithm.cpp
+++ b/Tests/Kernels/testRotationAlgorithm.cpp
@@ -4,29 +4,29 @@
 #include <iostream>
 
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
+#include "Containers/FOctree.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithm.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Kernels/Rotation/FRotationKernel.hpp"
-#include "../../Src/Kernels/Rotation/FRotationCell.hpp"
+#include "Kernels/Rotation/FRotationKernel.hpp"
+#include "Kernels/Rotation/FRotationCell.hpp"
 
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Core/FFmmAlgorithmTask.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmTask.hpp"
 
-#include "../../Src/Files/FFmaGenericLoader.hpp"
+#include "Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 int main(int argc, char** argv){
     FHelpDescribeAndExit(argc, argv,
diff --git a/Tests/Kernels/testRotationAlgorithmProc.cpp b/Tests/Kernels/testRotationAlgorithmProc.cpp
index ee84575fe..0cd341a8e 100644
--- a/Tests/Kernels/testRotationAlgorithmProc.cpp
+++ b/Tests/Kernels/testRotationAlgorithmProc.cpp
@@ -10,28 +10,28 @@
 #include <cstdlib>
 
 
-#include "../../Src/Kernels/Rotation/FRotationCell.hpp"
-#include "../../Src/Kernels/Rotation/FRotationKernel.hpp"
+#include "Kernels/Rotation/FRotationCell.hpp"
+#include "Kernels/Rotation/FRotationKernel.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp"
 
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FMemUtils.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
-#include "../../Src/Files/FMpiTreeBuilder.hpp"
+#include "Files/FRandomLoader.hpp"
+#include "Files/FMpiTreeBuilder.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmThreadProc.hpp"
 
-#include "../../Src/Utils/FLeafBalance.hpp"
+#include "Utils/FLeafBalance.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
  * This program runs the FMM Algorithm Distributed with the Rotation kernel
diff --git a/Tests/Kernels/testRotationPeriodicBench.cpp b/Tests/Kernels/testRotationPeriodicBench.cpp
index 31d87d54e..c0a2fc005 100644
--- a/Tests/Kernels/testRotationPeriodicBench.cpp
+++ b/Tests/Kernels/testRotationPeriodicBench.cpp
@@ -1,23 +1,23 @@
 // See LICENCE file at project root
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Kernels/Rotation/FRotationCell.hpp"
-#include "../../Src/Kernels/Rotation/FRotationKernel.hpp"
-#include "../../Src/Kernels/Rotation/FRotationOriginalKernel.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp"
+#include "Kernels/Rotation/FRotationCell.hpp"
+#include "Kernels/Rotation/FRotationKernel.hpp"
+#include "Kernels/Rotation/FRotationOriginalKernel.hpp"
+#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Core/FFmmAlgorithmPeriodic.hpp"
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Files/FRandomLoader.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Core/FFmmAlgorithmPeriodic.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Files/FRandomLoader.hpp"
 
-#include "../../Src/Components/FTestCell.hpp"
-#include "../../Src/Components/FTestKernels.hpp"
+#include "Components/FTestCell.hpp"
+#include "Components/FTestKernels.hpp"
 
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 
diff --git a/Tests/Kernels/testSmoothUnifAlgorithm.cpp b/Tests/Kernels/testSmoothUnifAlgorithm.cpp
index 49903e3ee..c8aca3f9c 100644
--- a/Tests/Kernels/testSmoothUnifAlgorithm.cpp
+++ b/Tests/Kernels/testSmoothUnifAlgorithm.cpp
@@ -35,7 +35,7 @@
 #include "Core/FFmmAlgorithm.hpp"
 #include "Core/FFmmAlgorithmThread.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
  * This program runs the FMM Algorithm with the Uniform kernel 
diff --git a/Tests/Kernels/testSphericalAlgorithm.cpp b/Tests/Kernels/testSphericalAlgorithm.cpp
index 7574b59e7..e22b4a683 100644
--- a/Tests/Kernels/testSphericalAlgorithm.cpp
+++ b/Tests/Kernels/testSphericalAlgorithm.cpp
@@ -5,24 +5,24 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Core/FFmmAlgorithmTask.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmTask.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Kernels/Spherical/FSphericalKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Files/FFmaGenericLoader.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Files/FFmaGenericLoader.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /** This program show an example of use of
   * the fmm basic algo
diff --git a/Tests/Kernels/testSphericalBench.cpp b/Tests/Kernels/testSphericalBench.cpp
index 1694df4fe..d18bda637 100644
--- a/Tests/Kernels/testSphericalBench.cpp
+++ b/Tests/Kernels/testSphericalBench.cpp
@@ -5,24 +5,24 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithm.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Kernels/Spherical/FSphericalKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
+#include "Files/FRandomLoader.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp"
+#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp"
+#include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /** This program show an example of use of
   * the fmm basic algo
diff --git a/Tests/Kernels/testSphericalBlasAlgorithm.cpp b/Tests/Kernels/testSphericalBlasAlgorithm.cpp
index 1763e4fce..26320ea2c 100644
--- a/Tests/Kernels/testSphericalBlasAlgorithm.cpp
+++ b/Tests/Kernels/testSphericalBlasAlgorithm.cpp
@@ -9,26 +9,26 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Core/FFmmAlgorithmTask.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmTask.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalBlasKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
+#include "Kernels/Spherical/FSphericalKernel.hpp"
+#include "Kernels/Spherical/FSphericalBlasKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
 
-#include "../../Src/Files/FFmaScanfLoader.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Files/FFmaScanfLoader.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /** This program show an example of use of
   * the fmm blas algo
diff --git a/Tests/Kernels/testSphericalBlockBlasAlgorithm.cpp b/Tests/Kernels/testSphericalBlockBlasAlgorithm.cpp
index 4e3e48ef9..d81e985bf 100644
--- a/Tests/Kernels/testSphericalBlockBlasAlgorithm.cpp
+++ b/Tests/Kernels/testSphericalBlockBlasAlgorithm.cpp
@@ -9,27 +9,27 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Core/FFmmAlgorithmTask.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmTask.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FBasicCell.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FBasicCell.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalBlockBlasKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
+#include "Kernels/Spherical/FSphericalBlockBlasKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
 
-#include "../../Src/Files/FFmaScanfLoader.hpp"
+#include "Files/FFmaScanfLoader.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /** This program show an example of use of
   * the fmm basic algo
diff --git a/Tests/Kernels/testSphericalGalaxyCsv.cpp b/Tests/Kernels/testSphericalGalaxyCsv.cpp
index fab488c97..918f8d820 100644
--- a/Tests/Kernels/testSphericalGalaxyCsv.cpp
+++ b/Tests/Kernels/testSphericalGalaxyCsv.cpp
@@ -5,29 +5,29 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
+#include "Kernels/Spherical/FSphericalKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
 
-#include "../../Src/Files/FTreeCsvSaver.hpp"
-#include "../../Src/Files/FFmaGenericLoader.hpp"
-#include "../../Src/Arranger/FOctreeArranger.hpp"
+#include "Files/FTreeCsvSaver.hpp"
+#include "Files/FFmaGenericLoader.hpp"
+#include "Arranger/FOctreeArranger.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FParticleType.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FParticleType.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
-#include "../../Src/Arranger/FAbstractMover.hpp"
+#include "Utils/FParameterNames.hpp"
+#include "Arranger/FAbstractMover.hpp"
 
 
 template <class FReal>
diff --git a/Tests/Kernels/testSphericalProcAlgorithm.cpp b/Tests/Kernels/testSphericalProcAlgorithm.cpp
index e1c0a13a3..233d513b7 100644
--- a/Tests/Kernels/testSphericalProcAlgorithm.cpp
+++ b/Tests/Kernels/testSphericalProcAlgorithm.cpp
@@ -4,32 +4,32 @@
 // @FUSE_MPI
 // ================
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FMpi.hpp"
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FMath.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FMpi.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
+#include "Kernels/Spherical/FSphericalKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
 
-#include "../../Src/Kernels/Rotation/FRotationKernel.hpp"
-#include "../../Src/Kernels/Rotation/FRotationCell.hpp"
+#include "Kernels/Rotation/FRotationKernel.hpp"
+#include "Kernels/Rotation/FRotationCell.hpp"
 
-#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmThreadProc.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Files/FMpiFmaGenericLoader.hpp"
-#include "../../Src/Files/FMpiTreeBuilder.hpp"
+#include "Files/FMpiFmaGenericLoader.hpp"
+#include "Files/FMpiTreeBuilder.hpp"
 
-#include "../../Src/Utils/FLeafBalance.hpp"
+#include "Utils/FLeafBalance.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 #include <iostream>
 
diff --git a/Tests/Kernels/testSphericalRotationAlgorithm.cpp b/Tests/Kernels/testSphericalRotationAlgorithm.cpp
index ae352961d..4bd785965 100644
--- a/Tests/Kernels/testSphericalRotationAlgorithm.cpp
+++ b/Tests/Kernels/testSphericalRotationAlgorithm.cpp
@@ -5,26 +5,26 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Core/FFmmAlgorithmTask.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmTask.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalRotationKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
+#include "Kernels/Spherical/FSphericalRotationKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
 
-#include "../../Src/Files/FFmaScanfLoader.hpp"
+#include "Files/FFmaScanfLoader.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /** This program show an example of use of
   * the fmm basic algo
diff --git a/Tests/Kernels/testTaylor.cpp b/Tests/Kernels/testTaylor.cpp
index 4c86f53f9..65648de46 100644
--- a/Tests/Kernels/testTaylor.cpp
+++ b/Tests/Kernels/testTaylor.cpp
@@ -10,25 +10,25 @@
 #include <cstdlib>
 #include <stdexcept>
 #include "ScalFmmConfig.h"
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Files/FFmaScanfLoader.hpp"
+#include "Files/FFmaScanfLoader.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Utils/FParameterNames.hpp"
 //
 // taylor kernel
-#include "../../Src/Kernels/Taylor/FTaylorCell.hpp"
-#include "../../Src/Kernels/Taylor/FTaylorKernel.hpp"
+#include "Kernels/Taylor/FTaylorCell.hpp"
+#include "Kernels/Taylor/FTaylorKernel.hpp"
 //
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp"
+#include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
 
 /**
  * This program compares two different kernels, eg., the Chebyshev kernel with
diff --git a/Tests/Kernels/testTaylorKernel.cpp b/Tests/Kernels/testTaylorKernel.cpp
index 97a813f44..e2aa15253 100644
--- a/Tests/Kernels/testTaylorKernel.cpp
+++ b/Tests/Kernels/testTaylorKernel.cpp
@@ -2,24 +2,24 @@
 
 #include <string>
 
-#include "../../Src/Utils/FPoint.hpp"
-#include "../../Src/Utils/FLog.hpp"
-#include "../../Src/Utils/FMath.hpp"
+#include "Utils/FPoint.hpp"
+#include "Utils/FLog.hpp"
+#include "Utils/FMath.hpp"
 
-#include "../../Src/Kernels/Taylor/FTaylorCell.hpp"
-#include "../../Src/Kernels/Taylor/FTaylorKernel.hpp"
+#include "Kernels/Taylor/FTaylorCell.hpp"
+#include "Kernels/Taylor/FTaylorKernel.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Containers/FVector.hpp"
-#include "../../Src/Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Core/FFmmAlgorithmTask.hpp"
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmTask.hpp"
+#include "Utils/FParameterNames.hpp"
 
 int main(int argc,char** argv){
     FHelpDescribeAndExit(argc, argv,
diff --git a/Tests/Kernels/testTaylorSimple.cpp b/Tests/Kernels/testTaylorSimple.cpp
index ecdee29e0..51715e375 100644
--- a/Tests/Kernels/testTaylorSimple.cpp
+++ b/Tests/Kernels/testTaylorSimple.cpp
@@ -2,24 +2,24 @@
 #include <iostream>
 #include <string>
 
-#include "../../Src/Utils/FPoint.hpp"
-#include "../../Src/Utils/FLog.hpp"
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FPoint.hpp"
+#include "Utils/FLog.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FTypedLeaf.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FTypedLeaf.hpp"
 
-#include "../../Src/Containers/FVector.hpp"
-#include "../../Src/Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithm.hpp"
 
-#include "../../Src/Kernels/Taylor/FTaylorCell.hpp"
-#include "../../Src/Kernels/Taylor/FTaylorKernel.hpp"
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Kernels/Taylor/FTaylorCell.hpp"
+#include "Kernels/Taylor/FTaylorKernel.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 int main(int argc,char* argv[]){
diff --git a/Tests/Kernels/testTsmAlgorithm.cpp b/Tests/Kernels/testTsmAlgorithm.cpp
index 72302387e..c334c2997 100644
--- a/Tests/Kernels/testTsmAlgorithm.cpp
+++ b/Tests/Kernels/testTsmAlgorithm.cpp
@@ -5,27 +5,27 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Components/FTypedLeaf.hpp"
+#include "Components/FTypedLeaf.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithmTsm.hpp"
+#include "Core/FFmmAlgorithmTsm.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
+#include "Kernels/Spherical/FSphericalKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
 
-#include "../../Src/Kernels/Rotation/FRotationKernel.hpp"
-#include "../../Src/Kernels/Rotation/FRotationCell.hpp"
+#include "Kernels/Rotation/FRotationKernel.hpp"
+#include "Kernels/Rotation/FRotationCell.hpp"
 
-#include "../../Src/Files/FFmaTsmLoader.hpp"
+#include "Files/FFmaTsmLoader.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /** This program show an example of use of
   * the fmm basic algo
diff --git a/Tests/Kernels/testTuneSphericalBlockBlas.cpp b/Tests/Kernels/testTuneSphericalBlockBlas.cpp
index 93ce74ec6..f34e59988 100644
--- a/Tests/Kernels/testTuneSphericalBlockBlas.cpp
+++ b/Tests/Kernels/testTuneSphericalBlockBlas.cpp
@@ -9,26 +9,26 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FBasicCell.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FBasicCell.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalBlockBlasKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
+#include "Kernels/Spherical/FSphericalBlockBlasKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
 
-#include "../../Src/Files/FFmaScanfLoader.hpp"
+#include "Files/FFmaScanfLoader.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /** This program find the best block blas size
   */
diff --git a/Tests/Utils/testBlas.cpp b/Tests/Utils/testBlas.cpp
index b8b4ff194..c8df2c869 100644
--- a/Tests/Utils/testBlas.cpp
+++ b/Tests/Utils/testBlas.cpp
@@ -21,9 +21,9 @@
 #include <iostream>
 #include <stdlib.h>
 
-#include "../../Src/Utils/FBlas.hpp"
+#include "Utils/FBlas.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 template <class FReal>
diff --git a/Tests/Utils/testChebBinaryM2L.cpp b/Tests/Utils/testChebBinaryM2L.cpp
index 8273587c7..f3fea9878 100644
--- a/Tests/Utils/testChebBinaryM2L.cpp
+++ b/Tests/Utils/testChebBinaryM2L.cpp
@@ -25,14 +25,14 @@
 #include <stdlib.h>
 #include <time.h>
 
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Utils/FGlobal.hpp"
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp"
-#include "../../Src/Kernels/Chebyshev/FChebM2LHandler.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FMath.hpp"
+#include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
+#include "Kernels/Chebyshev/FChebM2LHandler.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 /**
diff --git a/Tests/Utils/testChebBinarySymM2L.cpp b/Tests/Utils/testChebBinarySymM2L.cpp
index 1a2a16731..4161e9cde 100644
--- a/Tests/Utils/testChebBinarySymM2L.cpp
+++ b/Tests/Utils/testChebBinarySymM2L.cpp
@@ -26,14 +26,14 @@
 #include <time.h>
 #include <stdexcept>
 
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Utils/FGlobal.hpp"
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp"
-#include "../../Src/Kernels/Chebyshev/FChebSymM2LHandler.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FMath.hpp"
+#include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
+#include "Kernels/Chebyshev/FChebSymM2LHandler.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 /**
diff --git a/Tests/Utils/testChebInterpolator.cpp b/Tests/Utils/testChebInterpolator.cpp
index 756e7a7e6..c9b15e7e5 100644
--- a/Tests/Utils/testChebInterpolator.cpp
+++ b/Tests/Utils/testChebInterpolator.cpp
@@ -26,22 +26,22 @@
 #include <stdlib.h>
 #include <time.h>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FMath.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FMath.hpp"
 
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Utils/FAssert.hpp"
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FAssert.hpp"
+#include "Utils/FPoint.hpp"
 
 
-#include "../../Src/Kernels/Chebyshev/FChebInterpolator.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp"
+#include "Kernels/Chebyshev/FChebInterpolator.hpp"
+#include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 /**
diff --git a/Tests/Utils/testChebInterpolatorExtendedBBox.cpp b/Tests/Utils/testChebInterpolatorExtendedBBox.cpp
index f2231deff..ca6ba1f5a 100644
--- a/Tests/Utils/testChebInterpolatorExtendedBBox.cpp
+++ b/Tests/Utils/testChebInterpolatorExtendedBBox.cpp
@@ -40,7 +40,7 @@
 #include "Kernels/P2P/FP2PParticleContainer.hpp"
 #include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 /**
diff --git a/Tests/Utils/testChebM2Lprecomputation.cpp b/Tests/Utils/testChebM2Lprecomputation.cpp
index 9932f96e9..b0075f4b4 100644
--- a/Tests/Utils/testChebM2Lprecomputation.cpp
+++ b/Tests/Utils/testChebM2Lprecomputation.cpp
@@ -10,17 +10,17 @@
 #include <stdexcept>
 
 
-#include "../../Src/Utils/FGlobal.hpp"
-#include "../../Src/Utils/FPoint.hpp"
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FGlobal.hpp"
+#include "Utils/FPoint.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FTic.hpp"
 
 
-#include "../../Src/Kernels/Chebyshev/FChebTensor.hpp"
-#include "../../Src/Kernels/Chebyshev/FChebM2LHandler.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp"
+#include "Kernels/Chebyshev/FChebTensor.hpp"
+#include "Kernels/Chebyshev/FChebM2LHandler.hpp"
+#include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 
diff --git a/Tests/Utils/testChebOctree.cpp b/Tests/Utils/testChebOctree.cpp
index 2540f207a..ca9bdb465 100644
--- a/Tests/Utils/testChebOctree.cpp
+++ b/Tests/Utils/testChebOctree.cpp
@@ -24,21 +24,21 @@
 #include <cstdlib>
 #include <time.h>
 
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FTic.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Utils/FAssert.hpp"
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FAssert.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Kernels/Chebyshev/FChebCell.hpp"
+#include "Kernels/Chebyshev/FChebCell.hpp"
 
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
 * In this file we show how to use octree
diff --git a/Tests/Utils/testChebSymmetries.cpp b/Tests/Utils/testChebSymmetries.cpp
index ee8fb59f0..cc257bb1b 100644
--- a/Tests/Utils/testChebSymmetries.cpp
+++ b/Tests/Utils/testChebSymmetries.cpp
@@ -26,14 +26,14 @@
 
 
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FBlas.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FBlas.hpp"
 
-#include "../../Src/Kernels/Chebyshev/FChebTensor.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpMatrixKernel.hpp"
-#include "../../Src/Kernels/Interpolation/FInterpSymmetries.hpp"
+#include "Kernels/Chebyshev/FChebTensor.hpp"
+#include "Kernels/Interpolation/FInterpMatrixKernel.hpp"
+#include "Kernels/Interpolation/FInterpSymmetries.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 template < class FReal, int ORDER>
 void permuteMatrix(const unsigned int perm[ORDER*ORDER*ORDER], FReal *const Matrix)
diff --git a/Tests/Utils/testChebTensorProduct.cpp b/Tests/Utils/testChebTensorProduct.cpp
index af6b7d9f4..1cfca5d3e 100644
--- a/Tests/Utils/testChebTensorProduct.cpp
+++ b/Tests/Utils/testChebTensorProduct.cpp
@@ -10,20 +10,20 @@
 #include <stdlib.h>
 #include <time.h>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FBlas.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FBlas.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Utils/FAssert.hpp"
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FAssert.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Kernels/Chebyshev/FChebTensor.hpp"
-#include "../../Src/Kernels/Chebyshev/FChebInterpolator.hpp"
+#include "Kernels/Chebyshev/FChebTensor.hpp"
+#include "Kernels/Chebyshev/FChebInterpolator.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 template <class FReal>
 void applyM2M(FReal *const S,	FReal *const w, const unsigned int n,	FReal *const W, const unsigned int N)
diff --git a/Tests/Utils/testDebug.cpp b/Tests/Utils/testDebug.cpp
index e11a193eb..4a849ded3 100644
--- a/Tests/Utils/testDebug.cpp
+++ b/Tests/Utils/testDebug.cpp
@@ -1,7 +1,7 @@
 // See LICENCE file at project root
-#include "../../Src/Utils/FLog.hpp"
+#include "Utils/FLog.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
 * In this file we show how to use the debug module.
diff --git a/Tests/Utils/testFFT.cpp b/Tests/Utils/testFFT.cpp
index 81517cee8..e1da2c5e5 100644
--- a/Tests/Utils/testFFT.cpp
+++ b/Tests/Utils/testFFT.cpp
@@ -21,12 +21,6 @@
 #include <iostream>
 #include <stdlib.h>
 
-#ifdef SCALFMM_USE_ESSL_AS_FFTW
-#include <fftw3_essl.h>
-#else
-#include <fftw3.h>
-#endif
-
 #include "Utils/FGlobal.hpp"
 #include "Utils/FMath.hpp"
 #include "Utils/stdComplex.hpp"
diff --git a/Tests/Utils/testFmmAlgorithm.cpp b/Tests/Utils/testFmmAlgorithm.cpp
index 6f1698a31..3f3df9520 100644
--- a/Tests/Utils/testFmmAlgorithm.cpp
+++ b/Tests/Utils/testFmmAlgorithm.cpp
@@ -4,29 +4,29 @@
 #include <cstdio>
 
 
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FTestParticleContainer.hpp"
-#include "../../Src/Components/FTestCell.hpp"
-#include "../../Src/Components/FTestKernels.hpp"
+#include "Components/FTestParticleContainer.hpp"
+#include "Components/FTestCell.hpp"
+#include "Components/FTestKernels.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
-#include "../../Src/Core/FFmmAlgorithmTask.hpp"
+#include "Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmTask.hpp"
 
-#include "../../Src/Components/FBasicKernels.hpp"
+#include "Components/FBasicKernels.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
+#include "Files/FRandomLoader.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /** This program show an example of use of the fmm basic algo
   * it also check that each particles is impacted each other particles
diff --git a/Tests/Utils/testFmmAlgorithmProcRandom.cpp b/Tests/Utils/testFmmAlgorithmProcRandom.cpp
index e9c280abb..adc1e9930 100644
--- a/Tests/Utils/testFmmAlgorithmProcRandom.cpp
+++ b/Tests/Utils/testFmmAlgorithmProcRandom.cpp
@@ -4,34 +4,34 @@
 // @FUSE_MPI
 // ================
 
-#include "../../Src/Utils/FMpi.hpp"
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FMpi.hpp"
+#include "Utils/FTic.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FGlobal.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FTestCell.hpp"
-#include "../../Src/Components/FTestKernels.hpp"
-#include "../../Src/Components/FTestParticleContainer.hpp"
+#include "Components/FTestCell.hpp"
+#include "Components/FTestKernels.hpp"
+#include "Components/FTestParticleContainer.hpp"
 
-//#include "../../Src/Core/FFmmAlgorithmProcMpi.hpp"
-#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
+//#include "Core/FFmmAlgorithmProcMpi.hpp"
+#include "Core/FFmmAlgorithmThreadProc.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
-#include "../../Src/Files/FMpiTreeBuilder.hpp"
+#include "Files/FRandomLoader.hpp"
+#include "Files/FMpiTreeBuilder.hpp"
 
-#include "../../Src/Components/FBasicKernels.hpp"
+#include "Components/FBasicKernels.hpp"
 
-#include "../../Src/Utils/FLeafBalance.hpp"
+#include "Utils/FLeafBalance.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 #include <iostream>
 #include <cstdio>
diff --git a/Tests/Utils/testFmmAlgorithmProcRotation.cpp b/Tests/Utils/testFmmAlgorithmProcRotation.cpp
index 7ef07c553..ab3be61b0 100644
--- a/Tests/Utils/testFmmAlgorithmProcRotation.cpp
+++ b/Tests/Utils/testFmmAlgorithmProcRotation.cpp
@@ -4,32 +4,32 @@
 // @FUSE_MPI
 // ================
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FMpi.hpp"
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FMath.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FMpi.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
+#include "Kernels/Spherical/FSphericalKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
 
-#include "../../Src/Kernels/Rotation/FRotationKernel.hpp"
-#include "../../Src/Kernels/Rotation/FRotationCell.hpp"
+#include "Kernels/Rotation/FRotationKernel.hpp"
+#include "Kernels/Rotation/FRotationCell.hpp"
 
-#include "../../Src/Core/FFmmAlgorithmThreadProc.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
+#include "Core/FFmmAlgorithmThreadProc.hpp"
+#include "Core/FFmmAlgorithmThread.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Files/FMpiFmaGenericLoader.hpp"
-#include "../../Src/Files/FMpiTreeBuilder.hpp"
+#include "Files/FMpiFmaGenericLoader.hpp"
+#include "Files/FMpiTreeBuilder.hpp"
 
 #include "Utils/FLeafBalance.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 #include <iostream>
 
diff --git a/Tests/Utils/testLapack.cpp b/Tests/Utils/testLapack.cpp
index a38e438e9..67a6e86af 100644
--- a/Tests/Utils/testLapack.cpp
+++ b/Tests/Utils/testLapack.cpp
@@ -21,10 +21,10 @@
 #include <iostream>
 #include <stdlib.h>
 
-#include "../../Src/Utils/FBlas.hpp"
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FBlas.hpp"
+#include "Utils/FTic.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
  * Test functionality of C - interfaced LAPACK functions
diff --git a/Tests/Utils/testLoader.cpp b/Tests/Utils/testLoader.cpp
index 6189c872d..c7a85fe9e 100644
--- a/Tests/Utils/testLoader.cpp
+++ b/Tests/Utils/testLoader.cpp
@@ -6,24 +6,24 @@
 #include <cstdlib>
 #include <time.h>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Utils/FAssert.hpp"
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FAssert.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FBasicCell.hpp"
+#include "Components/FBasicCell.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Files/FBasicLoader.hpp"
+#include "Files/FBasicLoader.hpp"
 
-#include "../../Src/Components/FBasicParticleContainer.hpp"
+#include "Components/FBasicParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
   * In this file we show an example of FBasicLoader use
diff --git a/Tests/Utils/testLoaderFMATsm.cpp b/Tests/Utils/testLoaderFMATsm.cpp
index c26db74a0..eb5515fa3 100644
--- a/Tests/Utils/testLoaderFMATsm.cpp
+++ b/Tests/Utils/testLoaderFMATsm.cpp
@@ -6,25 +6,25 @@
 #include <cstdlib>
 #include <time.h>
 
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FTic.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Utils/FAssert.hpp"
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FAssert.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FBasicCell.hpp"
+#include "Components/FBasicCell.hpp"
 
-#include "../../Src/Components/FTypedLeaf.hpp"
+#include "Components/FTypedLeaf.hpp"
 
-#include "../../Src/Files/FFmaTsmLoader.hpp"
+#include "Files/FFmaTsmLoader.hpp"
 
-#include "../../Src/Components/FBasicParticleContainer.hpp"
+#include "Components/FBasicParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 int main(int argc, char ** argv ){
diff --git a/Tests/Utils/testLoaderFMATsmCreate.cpp b/Tests/Utils/testLoaderFMATsmCreate.cpp
index 96f090ace..51208348b 100644
--- a/Tests/Utils/testLoaderFMATsmCreate.cpp
+++ b/Tests/Utils/testLoaderFMATsmCreate.cpp
@@ -7,10 +7,10 @@
 #include <cstdlib>
 #include <time.h>
 
-#include "../../Src/Utils/FGlobal.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FGlobal.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 // This file can generate basic particles files in the FMA format
 
diff --git a/Tests/Utils/testMemStats.cpp b/Tests/Utils/testMemStats.cpp
index d283a7b70..96a2fcf8b 100644
--- a/Tests/Utils/testMemStats.cpp
+++ b/Tests/Utils/testMemStats.cpp
@@ -5,28 +5,28 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FTestCell.hpp"
-#include "../../Src/Components/FTestKernels.hpp"
+#include "Components/FTestCell.hpp"
+#include "Components/FTestKernels.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalKernel.hpp"
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Kernels/Spherical/FSphericalKernel.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
+#include "Core/FFmmAlgorithm.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /** This program show an example of use of
   * the fmm basic algo
diff --git a/Tests/Utils/testMpiCsvSaver.cpp b/Tests/Utils/testMpiCsvSaver.cpp
index 046736c7a..b88dbc78b 100644
--- a/Tests/Utils/testMpiCsvSaver.cpp
+++ b/Tests/Utils/testMpiCsvSaver.cpp
@@ -9,21 +9,21 @@
 #include <cstdlib>
 #include <string>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FMpi.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FMpi.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Files/FTreeMpiCsvSaver.hpp"
-#include "../../Src/Files/FFmaGenericLoader.hpp"
+#include "Files/FTreeMpiCsvSaver.hpp"
+#include "Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FBasicCell.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FBasicCell.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 template <class FReal>
diff --git a/Tests/Utils/testOctree.cpp b/Tests/Utils/testOctree.cpp
index 6b2582ab1..bec8abefa 100644
--- a/Tests/Utils/testOctree.cpp
+++ b/Tests/Utils/testOctree.cpp
@@ -6,22 +6,22 @@
 #include <cstdlib>
 #include <time.h>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Utils/FAssert.hpp"
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FAssert.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FBasicParticleContainer.hpp"
-#include "../../Src/Components/FBasicCell.hpp"
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FBasicParticleContainer.hpp"
+#include "Components/FBasicCell.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
+#include "Files/FRandomLoader.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
 * In this file we show how to use octree
diff --git a/Tests/Utils/testOctreeFuncteur.cpp b/Tests/Utils/testOctreeFuncteur.cpp
index 2a601a24d..b285d1676 100644
--- a/Tests/Utils/testOctreeFuncteur.cpp
+++ b/Tests/Utils/testOctreeFuncteur.cpp
@@ -6,22 +6,22 @@
 #include <cstdlib>
 #include <time.h>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Utils/FAssert.hpp"
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FAssert.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FBasicParticleContainer.hpp"
-#include "../../Src/Components/FBasicCell.hpp"
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FBasicParticleContainer.hpp"
+#include "Components/FBasicCell.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
+#include "Files/FRandomLoader.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
 * In this file we show how to use octree's functeur
diff --git a/Tests/Utils/testOctreeIter.cpp b/Tests/Utils/testOctreeIter.cpp
index 968a5719b..db6f071d1 100644
--- a/Tests/Utils/testOctreeIter.cpp
+++ b/Tests/Utils/testOctreeIter.cpp
@@ -7,21 +7,21 @@
 #include <time.h>
 
 
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Utils/FAssert.hpp"
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FAssert.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FBasicParticleContainer.hpp"
-#include "../../Src/Components/FBasicCell.hpp"
+#include "Components/FBasicParticleContainer.hpp"
+#include "Components/FBasicCell.hpp"
 
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FTic.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
 * In this file we show how to use octree with iteration
diff --git a/Tests/Utils/testOctreeParallelFuncteur.cpp b/Tests/Utils/testOctreeParallelFuncteur.cpp
index 6f69c9ba8..a826e2a8f 100644
--- a/Tests/Utils/testOctreeParallelFuncteur.cpp
+++ b/Tests/Utils/testOctreeParallelFuncteur.cpp
@@ -6,24 +6,24 @@
 #include <cstdlib>
 #include <time.h>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FParForEachOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FParForEachOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Utils/FAssert.hpp"
-#include "../../Src/Utils/FPoint.hpp"
-#include "../../Src/Utils/FParObject.hpp"
+#include "Utils/FAssert.hpp"
+#include "Utils/FPoint.hpp"
+#include "Utils/FParObject.hpp"
 
-#include "../../Src/Components/FBasicParticleContainer.hpp"
-#include "../../Src/Components/FBasicCell.hpp"
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FBasicParticleContainer.hpp"
+#include "Components/FBasicCell.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Files/FRandomLoader.hpp"
+#include "Files/FRandomLoader.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 /**
 * In this file we show how to use octree's functeur
diff --git a/Tests/Utils/testOctreeRearrangePeriodic.cpp b/Tests/Utils/testOctreeRearrangePeriodic.cpp
index 518ea226d..9c53fcdec 100644
--- a/Tests/Utils/testOctreeRearrangePeriodic.cpp
+++ b/Tests/Utils/testOctreeRearrangePeriodic.cpp
@@ -5,25 +5,25 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FBasicParticleContainer.hpp"
-#include "../../Src/Components/FBasicCell.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp"
+#include "Components/FBasicParticleContainer.hpp"
+#include "Components/FBasicCell.hpp"
+#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp"
 
-#include "../../Src/Arranger/FOctreeArranger.hpp"
-#include "../../Src/Arranger/FArrangerPeriodic.hpp"
-#include "../../Src/Arranger/FBasicParticleContainerIndexedMover.hpp"
+#include "Arranger/FOctreeArranger.hpp"
+#include "Arranger/FArrangerPeriodic.hpp"
+#include "Arranger/FBasicParticleContainerIndexedMover.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 
diff --git a/Tests/Utils/testOctreeRearrangeProc.cpp b/Tests/Utils/testOctreeRearrangeProc.cpp
index d08f4ead1..12388fd89 100644
--- a/Tests/Utils/testOctreeRearrangeProc.cpp
+++ b/Tests/Utils/testOctreeRearrangeProc.cpp
@@ -9,26 +9,26 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include "Components/FSimpleLeaf.hpp"
 
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FTestCell.hpp"
+#include "Components/FTestCell.hpp"
 
-#include "../../Src/Arranger/FOctreeArrangerProc.hpp"
-#include "../../Src/Files/FMpiTreeBuilder.hpp"
+#include "Arranger/FOctreeArrangerProc.hpp"
+#include "Files/FMpiTreeBuilder.hpp"
 
-#include "../../Src/Components/FBasicParticleContainer.hpp"
+#include "Components/FBasicParticleContainer.hpp"
 
-#include "../../Src/Utils/FLeafBalance.hpp"
+#include "Utils/FLeafBalance.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 template <class FReal>
 struct TestParticle{
diff --git a/Tests/Utils/testOctreeRearrangeTsm.cpp b/Tests/Utils/testOctreeRearrangeTsm.cpp
index fe94392a5..8edd4735e 100644
--- a/Tests/Utils/testOctreeRearrangeTsm.cpp
+++ b/Tests/Utils/testOctreeRearrangeTsm.cpp
@@ -5,25 +5,25 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FParameters.hpp"
-#include "../../Src/Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Components/FTypedLeaf.hpp"
-#include "../../Src/Utils/FPoint.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Components/FTypedLeaf.hpp"
+#include "Utils/FPoint.hpp"
 
-#include "../../Src/Components/FBasicParticleContainer.hpp"
-#include "../../Src/Components/FBasicCell.hpp"
-#include "../../Src/Arranger/FBasicParticleContainerIndexedMover.hpp"
-#include "../../Src/Arranger/FParticleTypedIndexedMover.hpp"
-#include "../../Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp"
+#include "Components/FBasicParticleContainer.hpp"
+#include "Components/FBasicCell.hpp"
+#include "Arranger/FBasicParticleContainerIndexedMover.hpp"
+#include "Arranger/FParticleTypedIndexedMover.hpp"
+#include "Kernels/P2P/FP2PParticleContainerIndexed.hpp"
 
-#include "../../Src/Arranger/FOctreeArranger.hpp"
+#include "Arranger/FOctreeArranger.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 
 // Simply create particles and try the kernels
diff --git a/Tests/Utils/testParameterNames.cpp b/Tests/Utils/testParameterNames.cpp
index 95ae5273f..c34d4ef49 100644
--- a/Tests/Utils/testParameterNames.cpp
+++ b/Tests/Utils/testParameterNames.cpp
@@ -1,4 +1,4 @@
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 #include <iostream>
 
diff --git a/Tests/Utils/testStatsTree.cpp b/Tests/Utils/testStatsTree.cpp
index 52e0f78fb..98153cc6e 100644
--- a/Tests/Utils/testStatsTree.cpp
+++ b/Tests/Utils/testStatsTree.cpp
@@ -5,27 +5,27 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include <Utils/FTic.hpp>
+#include <Utils/FParameters.hpp>
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include <Containers/FOctree.hpp>
+#include <Containers/FVector.hpp>
 
-#include "../../Src/Components/FBasicCell.hpp"
+#include <Components/FBasicCell.hpp>
 
-#include "../../Src/Core/FFmmAlgorithm.hpp"
-#include "../../Src/Core/FFmmAlgorithmThread.hpp"
+#include <Core/FFmmAlgorithm.hpp>
+#include <Core/FFmmAlgorithmThread.hpp>
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
+#include <Components/FSimpleLeaf.hpp>
 
 
-#include "../../Src/Utils/FMath.hpp"
+#include <Utils/FMath.hpp>
 
-#include "../../Src/Files/FFmaGenericLoader.hpp"
+#include <Files/FFmaGenericLoader.hpp>
 
-#include "../../Src/Components/FBasicParticleContainer.hpp"
+#include <Components/FBasicParticleContainer.hpp>
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include <Utils/FParameterNames.hpp>
 
 
 /** This program show an example of use of
diff --git a/Tests/Utils/testTemplateExample.cpp b/Tests/Utils/testTemplateExample.cpp
index 90b93d9e8..7e03cad9b 100644
--- a/Tests/Utils/testTemplateExample.cpp
+++ b/Tests/Utils/testTemplateExample.cpp
@@ -5,9 +5,9 @@
   *
   **/
 
-#include "../../Src/Utils/FTemplate.hpp"
+#include "Utils/FTemplate.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
 #include <iostream>
 
diff --git a/Tests/Utils/testTic.cpp b/Tests/Utils/testTic.cpp
index 5fe557660..7d689f92c 100644
--- a/Tests/Utils/testTic.cpp
+++ b/Tests/Utils/testTic.cpp
@@ -1,7 +1,7 @@
 // See LICENCE file at project root
 #include <iostream>
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameterNames.hpp"
 
 #include <cstdlib>
 #include <unistd.h>
diff --git a/Tests/Utils/testTreeBuilderThread.cpp b/Tests/Utils/testTreeBuilderThread.cpp
index f59bafa60..cd6d9f730 100644
--- a/Tests/Utils/testTreeBuilderThread.cpp
+++ b/Tests/Utils/testTreeBuilderThread.cpp
@@ -4,25 +4,25 @@
 #include <iostream>
 
 
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Containers/FVector.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
+#include "Containers/FOctree.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
-#include "../../Src/Kernels/Rotation/FRotationKernel.hpp"
-#include "../../Src/Kernels/Rotation/FRotationCell.hpp"
+#include "Kernels/Rotation/FRotationKernel.hpp"
+#include "Kernels/Rotation/FRotationCell.hpp"
 
-#include "../../Src/Utils/FMath.hpp"
-#include "../../Src/Utils/FMemUtils.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FMath.hpp"
+#include "Utils/FMemUtils.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Files/FFmaGenericLoader.hpp"
+#include "Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Utils/FParameterNames.hpp"
 
-#include "../../Src/Files/FTreeBuilder.hpp"
+#include "Files/FTreeBuilder.hpp"
 
 int main(int argc, char** argv){
     FHelpDescribeAndExit(argc, argv,
diff --git a/Tests/Utils/testTreeIO.cpp b/Tests/Utils/testTreeIO.cpp
index c99059daa..3df5c1cf9 100644
--- a/Tests/Utils/testTreeIO.cpp
+++ b/Tests/Utils/testTreeIO.cpp
@@ -6,21 +6,21 @@
 #include <cstdlib>
 #include <string>
 
-#include "../../Src/Utils/FTic.hpp"
-#include "../../Src/Utils/FParameters.hpp"
+#include "Utils/FTic.hpp"
+#include "Utils/FParameters.hpp"
 
-#include "../../Src/Containers/FOctree.hpp"
-#include "../../Src/Containers/FVector.hpp"
+#include "Containers/FOctree.hpp"
+#include "Containers/FVector.hpp"
 
 
-#include "../../Src/Files/FFmaGenericLoader.hpp"
-#include "../../Src/Files/FTreeIO.hpp"
+#include "Files/FFmaGenericLoader.hpp"
+#include "Files/FTreeIO.hpp"
 
-#include "../../Src/Kernels/Spherical/FSphericalCell.hpp"
-#include "../../Src/Components/FSimpleLeaf.hpp"
-#include "../../Src/Utils/FParameterNames.hpp"
+#include "Kernels/Spherical/FSphericalCell.hpp"
+#include "Components/FSimpleLeaf.hpp"
+#include "Utils/FParameterNames.hpp"
 
-#include "../../Src/Kernels/P2P/FP2PParticleContainer.hpp"
+#include "Kernels/P2P/FP2PParticleContainer.hpp"
 
 void usage() {
 	std::cout << "Exemple to store and load a tree" << std::endl;
diff --git a/UTests/CMakeLists.txt b/UTests/CMakeLists.txt
index 7a09ec67d..5bf88ea1c 100644
--- a/UTests/CMakeLists.txt
+++ b/UTests/CMakeLists.txt
@@ -1,104 +1,80 @@
-# check if compiling into source directories
-STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource)
-if(insource)
-    MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto scalfmm/Build and tapes cmake ../")
-endif(insource)
-
-project(UTESTS_SCALFMM CXX)
-
-FIND_PROGRAM( TESTS_GCOV_PATH gcov )
-FIND_PROGRAM( TESTS_LCOV_PATH lcov )
-FIND_PROGRAM( TESTS_GENHTML_PATH genhtml )
-FIND_PROGRAM( TESTS_GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/Modules)
-
-MESSAGE(STATUS  "GG ${TESTS_GCOV_PATH} ${TESTS_LCOV_PATH} ${TESTS_GENHTML_PATH} ${TESTS_GCOVR_PATH}" )
-IF( TESTS_GCOV_PATH AND TESTS_LCOV_PATH AND TESTS_GCOVR_PATH )
-  #Script for launching lcov and generating an html report
-  ADD_CUSTOM_TARGET(coverage)
-  ADD_CUSTOM_COMMAND(TARGET coverage
-           COMMAND mkdir -p CoverageReport
-          COMMAND ${TESTS_LCOV_PATH} --directory  . --zerocounters
-          COMMAND make test
-  # Capturing lcov counters and generating report
-		COMMAND ${TESTS_LCOV_PATH} --directory . --capture --output-file ${_outputname}.info
-		COMMAND ${TESTS_LCOV_PATH} --remove ${_outputname}.info 'tests/*' '/usr/*' --output-file ${_outputname}.info.cleaned
-		COMMAND ${TESTS_GENHTML_PATH} -o ${_outputname} ${_outputname}.info.cleaned
-		COMMAND ${CMAKE_COMMAND} -E remove ${_outputname}.info ${_outputname}.info.cleaned
-           COMMAND echo "Open ${CMAKE_BINARY_DIR}/CoverageReport/index.html to view the report on the coverage of the code."
-          WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-          )
-MESSAGE(STATUS " GCOV ${COVERAGE_COMMAND}")
-MESSAGE(STATUS "CMAKE_CXX_COMPILER_ID ${CMAKE_CXX_COMPILER_ID}")
-  IF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
-        SET(TESTS_GCOV_CXX_FLAGS "-g -fprofile-arcs -ftest-coverage")
-        SET(TESTS_GCOV_LINKER_FLAGS "-g -fprofile-arcs -ftest-coverage -lgcov")
-  ENDIF()
- #
- ELSE()
-        SET(GCOV_CXX_FLAGS "")
-        SET(GCOV_LINKER_FLAGS "")
-	   MESSAGE(STATUS  "Could not find gcov in your path - No Coverage option for Tests")
-ENDIF()
-
-
-
-set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE})
-
-
-ADD_DEFINITIONS( ${SCALFMM_CXX_FLAGS} ${TESTS_GCOV_CXX_FLAGS})
+# Utesting
 
 # Find all code files
-file(
-	GLOB_RECURSE
-	source_tests_files
-	./*.cpp
-)
-
-# Adding the project sources dir as an include dir
-INCLUDE_DIRECTORIES(
-     ${SCALFMM_BINARY_DIR}/Src
-     ${SCALFMM_SOURCE_DIR}/Src
-     ${SCALFMM_SOURCE_DIR}/Contribs
-     ${SCALFMM_INCLUDES}
-)
+set(source_tests_files
+  utestAlgorithmBuilder.cpp
+  utestAlignedMemory.cpp
+  utestBoolArray.cpp
+  utestBuffer.cpp
+  utestChebyshev.cpp
+  utestChebyshevDirectPeriodic.cpp
+  utestChebyshevDirectTsm.cpp
+  utestChebyshevMpi.cpp
+  utestChebyshevThread.cpp
+  utestFBasicParticleContainer.cpp
+  utestFBasicParticle.cpp
+  utestFmmAlgorithmProc.cpp
+  utestInterpolationMultiRhs.cpp
+  utestLagrange.cpp
+  utestLagrangeMpi.cpp
+  utestLagrangeThread.cpp
+  utestLetTree.cpp
+  utestListBlockAllocator.cpp
+  utestList.cpp
+  utestMorton.cpp
+  utestMpiBitonic.cpp
+  utestMPILoader.cpp
+  utestMpiQs.cpp
+  utestMpiTreeBuilder.cpp
+  utestNeighborIndexes.cpp
+  utestOctree.cpp
+  utestP2PExclusion.cpp
+  utestQuicksort.cpp
+  utestRotation.cpp
+  utestRotationDirectSeveralTime.cpp
+  utestRotationDirectTsm.cpp
+  utestRotationThread.cpp
+  utestSphericalBlasAlgorithm.cpp
+  utestSpherical.cpp
+  utestSphericalDirect.cpp
+  utestSphericalWithPrevious.cpp
+  utestStaticMpiTreeBuilder.cpp
+  utestTest.cpp
+  utestVector.cpp
+  Utils/variadic_vector/utest_variadic_vector.cpp
+  )
 
 # Add execs - 1 cpp = 1 exec
-foreach(exec ${source_tests_files})
-	get_filename_component(
-		execname ${exec}
-		NAME_WE
-	)
-
-	set(compile_exec "TRUE")
-
-	foreach(fuse_key ${FUSE_LIST})
-	    file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}")
-	    if(lines_fuse)
-		    if( NOT SCALFMM_USE_${fuse_key} )
-			    MESSAGE( STATUS "This needs ${fuse_key} = ${exec}" )
-			    set(compile_exec "FALSE")
-		    endif()
-	    endif()
-	endforeach()
-
-	# Dependency are OK
-	if( compile_exec )
-		add_executable(
-				${execname}
-				${exec}
-			)
-
-		target_link_libraries(
-			${execname}
-            ${scalfmm_lib}
-            ${SCALFMM_LIBRARIES}
-			${TESTS_GCOV_LINKER_FLAGS}
-		)
-
-        if(lines_mpi)
-            add_test(${execname} mpirun -np 4 ${EXECUTABLE_OUTPUT_PATH}/${execname})
-        else()
-            add_test(${execname} ${CMAKE_CURRENT_BINARY_DIR}/${execname})
-        endif()
+foreach(exec ${source_tests_files}) 
+  set(compile_exec TRUE)
+  get_filename_component( execname ${exec} NAME_WE )
+	
+  foreach(fuse_key ${FUSE_DEP_AVAILABLE})
+    file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}")
+    if(lines_fuse AND NOT ${fuse_key} IN_LIST FUSE_LIST)
+      message( STATUS "This needs ${fuse_key} = ${exec}" )
+      set(compile_exec FALSE)
+    endif()
+  endforeach()
+
+  # Dependency are OK
+  if( compile_exec )
+    add_executable( ${execname} ${exec})
+    list(APPEND SCALFMM_TESTS_TARGETS ${execname})
+    set_target_properties(${execname} PROPERTIES ENABLE_EXPORTS TRUE
+      RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BUILD_TYPE}
+      )
+
+    target_link_libraries( ${execname} PRIVATE ${CMAKE_PROJECT_NAME} )
+    list(APPEND SCALFMM_UTESTS_TARGETS ${execname})
+
+    if(lines_mpi)
+      add_test(NAME ${execname} COMMAND $<IF:${MPIEXEC_EXECUTABLE}, ${MPIEXEC_EXECUTABLE} -np 4 ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${execname}>)
+    else()
+      add_test(NAME ${execname} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${execname})
     endif()
+  endif()
 endforeach(exec)
+
+add_custom_target(scalfmm_utests ALL DEPENDS ${SCALFMM_UTESTS_TARGETS})
+
diff --git a/UTests/utestAlignedMemory.cpp b/UTests/utestAlignedMemory.cpp
index 7732629d6..f94982ebe 100644
--- a/UTests/utestAlignedMemory.cpp
+++ b/UTests/utestAlignedMemory.cpp
@@ -1,8 +1,8 @@
 // See LICENCE file at project root
 #include "FUTester.hpp"
 
-#include "../Src/Utils/FAlignedMemory.hpp"
-#include "../Src/Utils/FTemplate.hpp"
+#include "Utils/FAlignedMemory.hpp"
+#include "Utils/FTemplate.hpp"
 
 /**
 * This file is a unit test for the alignement class
diff --git a/UTests/utestLetTree.cpp b/UTests/utestLetTree.cpp
index d50b8e421..adccdd85b 100644
--- a/UTests/utestLetTree.cpp
+++ b/UTests/utestLetTree.cpp
@@ -5,7 +5,7 @@
 // @FUSE_MPI
 // ================
 
-#include "../../Src/Utils/FGlobal.hpp"
+#include "Utils/FGlobal.hpp"
 // include algo for linear tree
 #include "inria/algorithm/distributed/mpi.hpp"
 #include "inria/linear_tree/balance_tree.hpp"
diff --git a/Utils/CMakeLists.txt b/Utils/CMakeLists.txt
index f673e712d..144e839ac 100644
--- a/Utils/CMakeLists.txt
+++ b/Utils/CMakeLists.txt
@@ -1,63 +1,29 @@
-# check if compiling into source directories
-STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource)
-if(insource)
-    MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto scalfmm/Build and tapes cmake ../")
-endif(insource)
-
-project(UTILS_SCALFMM CXX)
-set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE})
-ADD_DEFINITIONS( ${SCALFMM_CXX_FLAGS})
 # Find all code files
-file(	
-	GLOB_RECURSE
-	source_tests_files
-	./*.cpp
-	)
-
-
-# Adding the project sources dir as an include dir
-INCLUDE_DIRECTORIES(
-     ${SCALFMM_BINARY_DIR}/Src 
-     ${SCALFMM_SOURCE_DIR}/Src
-     ${SCALFMM_SOURCE_DIR}/Contribs
-     ${SCALFMM_INCLUDES}
-)
-
+set(source_tests_files)
 
 # Add execs - 1 cpp = 1 exec
 foreach(exec ${source_tests_files}) 
-	get_filename_component(
-		execname ${exec}
-		NAME_WE
-	)
-
-	set(compile_exec "TRUE")
+  set(compile_exec TRUE)
+  get_filename_component( execname ${exec} NAME_WE )
 	
-	foreach(fuse_key ${FUSE_LIST})
-	    file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}")
-	    if(lines_fuse)
-		    if( NOT SCALFMM_USE_${fuse_key} )
-			    MESSAGE( STATUS "This needs ${fuse_key} = ${exec}" )
-			    set(compile_exec "FALSE")
-		    endif()
-	    endif()
-	endforeach()
+  foreach(fuse_key ${FUSE_DEP_AVAILABLE})
+    file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}")
+    if(lines_fuse AND NOT ${fuse_key} IN_LIST FUSE_LIST)
+      message( STATUS "This needs ${fuse_key} = ${exec}" )
+      set(compile_exec FALSE)
+    endif()
+  endforeach()
+
+  # Dependency are OK
+  if( compile_exec )
+    add_executable( ${execname} ${exec})
+    list(APPEND SCALFMM_UTILS_TARGETS ${execname})
+    set_target_properties(${execname} PROPERTIES ENABLE_EXPORTS TRUE
+      RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BUILD_TYPE}
+      )
+    target_link_libraries( ${execname} ${CMAKE_PROJECT_NAME})
+  endif()
+endforeach(exec)
 
-	# Dependency are OK
-	if( compile_exec )
-		add_executable(
-				${execname}
-				${exec}
-				)
-		SET_TARGET_PROPERTIES(${execname} PROPERTIES ENABLE_EXPORTS TRUE)
-		target_link_libraries(
-			${execname}
-			${scalfmm_lib}
-			${SCALFMM_LIBRARIES}
-			)
-	
-                   # Install bin
-                   install( TARGETS ${execname}   DESTINATION bin )
-		endif()
+add_custom_target(scalfmm_utils ALL DEPENDS ${SCALFMM_UTILS_TARGETS})
 
-endforeach(exec)
diff --git a/Src/Adaptive/FAdaptChebKernel.hpp b/include/Adaptive/FAdaptChebKernel.hpp
similarity index 100%
rename from Src/Adaptive/FAdaptChebKernel.hpp
rename to include/Adaptive/FAdaptChebKernel.hpp
diff --git a/Src/Adaptive/FAdaptUnifKernel.hpp b/include/Adaptive/FAdaptUnifKernel.hpp
similarity index 100%
rename from Src/Adaptive/FAdaptUnifKernel.hpp
rename to include/Adaptive/FAdaptUnifKernel.hpp
diff --git a/Src/Adaptive/FAdaptiveSequential.hpp b/include/Adaptive/FAdaptiveSequential.hpp
similarity index 100%
rename from Src/Adaptive/FAdaptiveSequential.hpp
rename to include/Adaptive/FAdaptiveSequential.hpp
diff --git a/Src/Adaptive/FAdaptiveStarPU.hpp b/include/Adaptive/FAdaptiveStarPU.hpp
similarity index 100%
rename from Src/Adaptive/FAdaptiveStarPU.hpp
rename to include/Adaptive/FAdaptiveStarPU.hpp
diff --git a/Src/Adaptive/FAdaptiveTask.hpp b/include/Adaptive/FAdaptiveTask.hpp
similarity index 100%
rename from Src/Adaptive/FAdaptiveTask.hpp
rename to include/Adaptive/FAdaptiveTask.hpp
diff --git a/Src/Adaptive/FBox.hpp b/include/Adaptive/FBox.hpp
similarity index 100%
rename from Src/Adaptive/FBox.hpp
rename to include/Adaptive/FBox.hpp
diff --git a/Src/Adaptive/FDistributedAdaptiveTreeBuilder.hpp b/include/Adaptive/FDistributedAdaptiveTreeBuilder.hpp
similarity index 100%
rename from Src/Adaptive/FDistributedAdaptiveTreeBuilder.hpp
rename to include/Adaptive/FDistributedAdaptiveTreeBuilder.hpp
diff --git a/Src/Adaptive/FInOrderNodeIterator.hpp b/include/Adaptive/FInOrderNodeIterator.hpp
similarity index 100%
rename from Src/Adaptive/FInOrderNodeIterator.hpp
rename to include/Adaptive/FInOrderNodeIterator.hpp
diff --git a/Src/Adaptive/FNode.hpp b/include/Adaptive/FNode.hpp
similarity index 100%
rename from Src/Adaptive/FNode.hpp
rename to include/Adaptive/FNode.hpp
diff --git a/Src/Adaptive/FNodeIterator.hpp b/include/Adaptive/FNodeIterator.hpp
similarity index 100%
rename from Src/Adaptive/FNodeIterator.hpp
rename to include/Adaptive/FNodeIterator.hpp
diff --git a/Src/Adaptive/FNodeIteratorBox.hpp b/include/Adaptive/FNodeIteratorBox.hpp
similarity index 100%
rename from Src/Adaptive/FNodeIteratorBox.hpp
rename to include/Adaptive/FNodeIteratorBox.hpp
diff --git a/Src/Adaptive/FPrePostOrderNodeIterator.hpp b/include/Adaptive/FPrePostOrderNodeIterator.hpp
similarity index 100%
rename from Src/Adaptive/FPrePostOrderNodeIterator.hpp
rename to include/Adaptive/FPrePostOrderNodeIterator.hpp
diff --git a/Src/Adaptive/FTimer.hpp b/include/Adaptive/FTimer.hpp
similarity index 100%
rename from Src/Adaptive/FTimer.hpp
rename to include/Adaptive/FTimer.hpp
diff --git a/Src/Adaptive/FTree.hpp b/include/Adaptive/FTree.hpp
similarity index 100%
rename from Src/Adaptive/FTree.hpp
rename to include/Adaptive/FTree.hpp
diff --git a/Src/Adaptive/FUnifFlopsKernel.hpp b/include/Adaptive/FUnifFlopsKernel.hpp
similarity index 100%
rename from Src/Adaptive/FUnifFlopsKernel.hpp
rename to include/Adaptive/FUnifFlopsKernel.hpp
diff --git a/Src/Adaptive/FVariadicParticleContainer.hpp b/include/Adaptive/FVariadicParticleContainer.hpp
similarity index 100%
rename from Src/Adaptive/FVariadicParticleContainer.hpp
rename to include/Adaptive/FVariadicParticleContainer.hpp
diff --git a/Src/Adaptive/FZCurve.hpp b/include/Adaptive/FZCurve.hpp
similarity index 100%
rename from Src/Adaptive/FZCurve.hpp
rename to include/Adaptive/FZCurve.hpp
diff --git a/Src/Adaptive/UninitNodeMemoryManager.hpp b/include/Adaptive/UninitNodeMemoryManager.hpp
similarity index 100%
rename from Src/Adaptive/UninitNodeMemoryManager.hpp
rename to include/Adaptive/UninitNodeMemoryManager.hpp
diff --git a/Src/Adaptive/UninitialisedMemoryProvider.hpp b/include/Adaptive/UninitialisedMemoryProvider.hpp
similarity index 100%
rename from Src/Adaptive/UninitialisedMemoryProvider.hpp
rename to include/Adaptive/UninitialisedMemoryProvider.hpp
diff --git a/Src/Adaptive/kernel_utilities.hpp b/include/Adaptive/kernel_utilities.hpp
similarity index 100%
rename from Src/Adaptive/kernel_utilities.hpp
rename to include/Adaptive/kernel_utilities.hpp
diff --git a/Src/Adaptive/starpu_node_data_handles.hpp b/include/Adaptive/starpu_node_data_handles.hpp
similarity index 100%
rename from Src/Adaptive/starpu_node_data_handles.hpp
rename to include/Adaptive/starpu_node_data_handles.hpp
diff --git a/Src/Arranger/FAbstractMover.hpp b/include/Arranger/FAbstractMover.hpp
similarity index 100%
rename from Src/Arranger/FAbstractMover.hpp
rename to include/Arranger/FAbstractMover.hpp
diff --git a/Src/Arranger/FArrangerPeriodic.hpp b/include/Arranger/FArrangerPeriodic.hpp
similarity index 100%
rename from Src/Arranger/FArrangerPeriodic.hpp
rename to include/Arranger/FArrangerPeriodic.hpp
diff --git a/Src/Arranger/FBasicParticleContainerIndexedMover.hpp b/include/Arranger/FBasicParticleContainerIndexedMover.hpp
similarity index 100%
rename from Src/Arranger/FBasicParticleContainerIndexedMover.hpp
rename to include/Arranger/FBasicParticleContainerIndexedMover.hpp
diff --git a/Src/Arranger/FBasicParticleContainerMover.hpp b/include/Arranger/FBasicParticleContainerMover.hpp
similarity index 100%
rename from Src/Arranger/FBasicParticleContainerMover.hpp
rename to include/Arranger/FBasicParticleContainerMover.hpp
diff --git a/Src/Arranger/FOctreeArranger.hpp b/include/Arranger/FOctreeArranger.hpp
similarity index 100%
rename from Src/Arranger/FOctreeArranger.hpp
rename to include/Arranger/FOctreeArranger.hpp
diff --git a/Src/Arranger/FOctreeArrangerProc.hpp b/include/Arranger/FOctreeArrangerProc.hpp
similarity index 100%
rename from Src/Arranger/FOctreeArrangerProc.hpp
rename to include/Arranger/FOctreeArrangerProc.hpp
diff --git a/Src/Arranger/FParticleTypedIndexedMover.hpp b/include/Arranger/FParticleTypedIndexedMover.hpp
similarity index 100%
rename from Src/Arranger/FParticleTypedIndexedMover.hpp
rename to include/Arranger/FParticleTypedIndexedMover.hpp
diff --git a/Src/CMakeLists.txt b/include/CMakeLists.txt
similarity index 100%
rename from Src/CMakeLists.txt
rename to include/CMakeLists.txt
diff --git a/Src/Components/FAbstractCell.hpp b/include/Components/FAbstractCell.hpp
similarity index 100%
rename from Src/Components/FAbstractCell.hpp
rename to include/Components/FAbstractCell.hpp
diff --git a/Src/Components/FAbstractKernels.hpp b/include/Components/FAbstractKernels.hpp
similarity index 100%
rename from Src/Components/FAbstractKernels.hpp
rename to include/Components/FAbstractKernels.hpp
diff --git a/Src/Components/FAbstractLeaf.hpp b/include/Components/FAbstractLeaf.hpp
similarity index 100%
rename from Src/Components/FAbstractLeaf.hpp
rename to include/Components/FAbstractLeaf.hpp
diff --git a/Src/Components/FAbstractParticleContainer.hpp b/include/Components/FAbstractParticleContainer.hpp
similarity index 100%
rename from Src/Components/FAbstractParticleContainer.hpp
rename to include/Components/FAbstractParticleContainer.hpp
diff --git a/Src/Components/FAbstractSendable.hpp b/include/Components/FAbstractSendable.hpp
similarity index 100%
rename from Src/Components/FAbstractSendable.hpp
rename to include/Components/FAbstractSendable.hpp
diff --git a/Src/Components/FAbstractSerializable.hpp b/include/Components/FAbstractSerializable.hpp
similarity index 100%
rename from Src/Components/FAbstractSerializable.hpp
rename to include/Components/FAbstractSerializable.hpp
diff --git a/Src/Components/FBasicCell.hpp b/include/Components/FBasicCell.hpp
similarity index 100%
rename from Src/Components/FBasicCell.hpp
rename to include/Components/FBasicCell.hpp
diff --git a/Src/Components/FBasicKernels.hpp b/include/Components/FBasicKernels.hpp
similarity index 100%
rename from Src/Components/FBasicKernels.hpp
rename to include/Components/FBasicKernels.hpp
diff --git a/Src/Components/FBasicParticle.hpp b/include/Components/FBasicParticle.hpp
similarity index 100%
rename from Src/Components/FBasicParticle.hpp
rename to include/Components/FBasicParticle.hpp
diff --git a/Src/Components/FBasicParticleContainer.hpp b/include/Components/FBasicParticleContainer.hpp
similarity index 100%
rename from Src/Components/FBasicParticleContainer.hpp
rename to include/Components/FBasicParticleContainer.hpp
diff --git a/Src/Components/FFmaParticleContainer.hpp b/include/Components/FFmaParticleContainer.hpp
similarity index 100%
rename from Src/Components/FFmaParticleContainer.hpp
rename to include/Components/FFmaParticleContainer.hpp
diff --git a/Src/Components/FParticleType.hpp b/include/Components/FParticleType.hpp
similarity index 100%
rename from Src/Components/FParticleType.hpp
rename to include/Components/FParticleType.hpp
diff --git a/Src/Components/FSimpleIndexedLeaf.hpp b/include/Components/FSimpleIndexedLeaf.hpp
similarity index 100%
rename from Src/Components/FSimpleIndexedLeaf.hpp
rename to include/Components/FSimpleIndexedLeaf.hpp
diff --git a/Src/Components/FSimpleLeaf.hpp b/include/Components/FSimpleLeaf.hpp
similarity index 100%
rename from Src/Components/FSimpleLeaf.hpp
rename to include/Components/FSimpleLeaf.hpp
diff --git a/Src/Components/FSymbolicData.hpp b/include/Components/FSymbolicData.hpp
similarity index 100%
rename from Src/Components/FSymbolicData.hpp
rename to include/Components/FSymbolicData.hpp
diff --git a/Src/Components/FTestCell.hpp b/include/Components/FTestCell.hpp
similarity index 100%
rename from Src/Components/FTestCell.hpp
rename to include/Components/FTestCell.hpp
diff --git a/Src/Components/FTestKernels.hpp b/include/Components/FTestKernels.hpp
similarity index 100%
rename from Src/Components/FTestKernels.hpp
rename to include/Components/FTestKernels.hpp
diff --git a/Src/Components/FTestParticleContainer.hpp b/include/Components/FTestParticleContainer.hpp
similarity index 100%
rename from Src/Components/FTestParticleContainer.hpp
rename to include/Components/FTestParticleContainer.hpp
diff --git a/Src/Components/FTypedLeaf.hpp b/include/Components/FTypedLeaf.hpp
similarity index 100%
rename from Src/Components/FTypedLeaf.hpp
rename to include/Components/FTypedLeaf.hpp
diff --git a/Src/Containers/FAbstractBuffer.hpp b/include/Containers/FAbstractBuffer.hpp
similarity index 100%
rename from Src/Containers/FAbstractBuffer.hpp
rename to include/Containers/FAbstractBuffer.hpp
diff --git a/Src/Containers/FBlockAllocator.hpp b/include/Containers/FBlockAllocator.hpp
similarity index 100%
rename from Src/Containers/FBlockAllocator.hpp
rename to include/Containers/FBlockAllocator.hpp
diff --git a/Src/Containers/FBoolArray.hpp b/include/Containers/FBoolArray.hpp
similarity index 100%
rename from Src/Containers/FBoolArray.hpp
rename to include/Containers/FBoolArray.hpp
diff --git a/Src/Containers/FBufferReader.hpp b/include/Containers/FBufferReader.hpp
similarity index 100%
rename from Src/Containers/FBufferReader.hpp
rename to include/Containers/FBufferReader.hpp
diff --git a/Src/Containers/FBufferWriter.hpp b/include/Containers/FBufferWriter.hpp
similarity index 100%
rename from Src/Containers/FBufferWriter.hpp
rename to include/Containers/FBufferWriter.hpp
diff --git a/Src/Containers/FCoordinateComputer.hpp b/include/Containers/FCoordinateComputer.hpp
similarity index 100%
rename from Src/Containers/FCoordinateComputer.hpp
rename to include/Containers/FCoordinateComputer.hpp
diff --git a/Src/Containers/FLightOctree.hpp b/include/Containers/FLightOctree.hpp
similarity index 100%
rename from Src/Containers/FLightOctree.hpp
rename to include/Containers/FLightOctree.hpp
diff --git a/Src/Containers/FList.hpp b/include/Containers/FList.hpp
similarity index 100%
rename from Src/Containers/FList.hpp
rename to include/Containers/FList.hpp
diff --git a/Src/Containers/FNeighborIndexes.hpp b/include/Containers/FNeighborIndexes.hpp
similarity index 100%
rename from Src/Containers/FNeighborIndexes.hpp
rename to include/Containers/FNeighborIndexes.hpp
diff --git a/Src/Containers/FOctree.hpp b/include/Containers/FOctree.hpp
similarity index 100%
rename from Src/Containers/FOctree.hpp
rename to include/Containers/FOctree.hpp
diff --git a/Src/Containers/FParForEachOctree.hpp b/include/Containers/FParForEachOctree.hpp
similarity index 100%
rename from Src/Containers/FParForEachOctree.hpp
rename to include/Containers/FParForEachOctree.hpp
diff --git a/Src/Containers/FSubOctree.hpp b/include/Containers/FSubOctree.hpp
similarity index 100%
rename from Src/Containers/FSubOctree.hpp
rename to include/Containers/FSubOctree.hpp
diff --git a/Src/Containers/FTreeCoordinate.hpp b/include/Containers/FTreeCoordinate.hpp
similarity index 100%
rename from Src/Containers/FTreeCoordinate.hpp
rename to include/Containers/FTreeCoordinate.hpp
diff --git a/Src/Containers/FVector.hpp b/include/Containers/FVector.hpp
similarity index 100%
rename from Src/Containers/FVector.hpp
rename to include/Containers/FVector.hpp
diff --git a/Src/Core/FAlgorithmBuilder.hpp b/include/Core/FAlgorithmBuilder.hpp
similarity index 100%
rename from Src/Core/FAlgorithmBuilder.hpp
rename to include/Core/FAlgorithmBuilder.hpp
diff --git a/Src/Core/FCoreCommon.hpp b/include/Core/FCoreCommon.hpp
similarity index 100%
rename from Src/Core/FCoreCommon.hpp
rename to include/Core/FCoreCommon.hpp
diff --git a/Src/Core/FFmmAlgorithm.hpp b/include/Core/FFmmAlgorithm.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithm.hpp
rename to include/Core/FFmmAlgorithm.hpp
diff --git a/Src/Core/FFmmAlgorithmNewTask.hpp b/include/Core/FFmmAlgorithmNewTask.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmNewTask.hpp
rename to include/Core/FFmmAlgorithmNewTask.hpp
diff --git a/Src/Core/FFmmAlgorithmOmp4.hpp b/include/Core/FFmmAlgorithmOmp4.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmOmp4.hpp
rename to include/Core/FFmmAlgorithmOmp4.hpp
diff --git a/Src/Core/FFmmAlgorithmPeriodic.hpp b/include/Core/FFmmAlgorithmPeriodic.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmPeriodic.hpp
rename to include/Core/FFmmAlgorithmPeriodic.hpp
diff --git a/Src/Core/FFmmAlgorithmSectionTask.hpp b/include/Core/FFmmAlgorithmSectionTask.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmSectionTask.hpp
rename to include/Core/FFmmAlgorithmSectionTask.hpp
diff --git a/Src/Core/FFmmAlgorithmTask.hpp b/include/Core/FFmmAlgorithmTask.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmTask.hpp
rename to include/Core/FFmmAlgorithmTask.hpp
diff --git a/Src/Core/FFmmAlgorithmThread.hpp b/include/Core/FFmmAlgorithmThread.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmThread.hpp
rename to include/Core/FFmmAlgorithmThread.hpp
diff --git a/Src/Core/FFmmAlgorithmThreadBalance.hpp b/include/Core/FFmmAlgorithmThreadBalance.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmThreadBalance.hpp
rename to include/Core/FFmmAlgorithmThreadBalance.hpp
diff --git a/Src/Core/FFmmAlgorithmThreadProc.hpp b/include/Core/FFmmAlgorithmThreadProc.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmThreadProc.hpp
rename to include/Core/FFmmAlgorithmThreadProc.hpp
diff --git a/Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp b/include/Core/FFmmAlgorithmThreadProcPeriodic.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp
rename to include/Core/FFmmAlgorithmThreadProcPeriodic.hpp
diff --git a/Src/Core/FFmmAlgorithmThreadProcTsm.hpp b/include/Core/FFmmAlgorithmThreadProcTsm.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmThreadProcTsm.hpp
rename to include/Core/FFmmAlgorithmThreadProcTsm.hpp
diff --git a/Src/Core/FFmmAlgorithmThreadTsm.hpp b/include/Core/FFmmAlgorithmThreadTsm.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmThreadTsm.hpp
rename to include/Core/FFmmAlgorithmThreadTsm.hpp
diff --git a/Src/Core/FFmmAlgorithmTsm.hpp b/include/Core/FFmmAlgorithmTsm.hpp
similarity index 100%
rename from Src/Core/FFmmAlgorithmTsm.hpp
rename to include/Core/FFmmAlgorithmTsm.hpp
diff --git a/Src/Core/FP2PExclusion.hpp b/include/Core/FP2PExclusion.hpp
similarity index 100%
rename from Src/Core/FP2PExclusion.hpp
rename to include/Core/FP2PExclusion.hpp
diff --git a/Src/Extensions/FExtendCellType.hpp b/include/Extensions/FExtendCellType.hpp
similarity index 100%
rename from Src/Extensions/FExtendCellType.hpp
rename to include/Extensions/FExtendCellType.hpp
diff --git a/Src/Files/FAbstractLoader.hpp b/include/Files/FAbstractLoader.hpp
similarity index 100%
rename from Src/Files/FAbstractLoader.hpp
rename to include/Files/FAbstractLoader.hpp
diff --git a/Src/Files/FBasicLoader.hpp b/include/Files/FBasicLoader.hpp
similarity index 100%
rename from Src/Files/FBasicLoader.hpp
rename to include/Files/FBasicLoader.hpp
diff --git a/Src/Files/FBlockedMpiInterpolation.hpp b/include/Files/FBlockedMpiInterpolation.hpp
similarity index 100%
rename from Src/Files/FBlockedMpiInterpolation.hpp
rename to include/Files/FBlockedMpiInterpolation.hpp
diff --git a/Src/Files/FDlpolyLoader.hpp b/include/Files/FDlpolyLoader.hpp
similarity index 100%
rename from Src/Files/FDlpolyLoader.hpp
rename to include/Files/FDlpolyLoader.hpp
diff --git a/Src/Files/FExportWriter.hpp b/include/Files/FExportWriter.hpp
similarity index 100%
rename from Src/Files/FExportWriter.hpp
rename to include/Files/FExportWriter.hpp
diff --git a/Src/Files/FFmaGenericLoader.hpp b/include/Files/FFmaGenericLoader.hpp
similarity index 100%
rename from Src/Files/FFmaGenericLoader.hpp
rename to include/Files/FFmaGenericLoader.hpp
diff --git a/Src/Files/FFmaScanfLoader.hpp b/include/Files/FFmaScanfLoader.hpp
similarity index 100%
rename from Src/Files/FFmaScanfLoader.hpp
rename to include/Files/FFmaScanfLoader.hpp
diff --git a/Src/Files/FFmaTsmLoader.hpp b/include/Files/FFmaTsmLoader.hpp
similarity index 100%
rename from Src/Files/FFmaTsmLoader.hpp
rename to include/Files/FFmaTsmLoader.hpp
diff --git a/Src/Files/FGenerateDistribution.hpp b/include/Files/FGenerateDistribution.hpp
similarity index 100%
rename from Src/Files/FGenerateDistribution.hpp
rename to include/Files/FGenerateDistribution.hpp
diff --git a/Src/Files/FHLoader.hpp b/include/Files/FHLoader.hpp
similarity index 100%
rename from Src/Files/FHLoader.hpp
rename to include/Files/FHLoader.hpp
diff --git a/Src/Files/FIOVtk.hpp b/include/Files/FIOVtk.hpp
similarity index 99%
rename from Src/Files/FIOVtk.hpp
rename to include/Files/FIOVtk.hpp
index c741569f9..4dd277b83 100644
--- a/Src/Files/FIOVtk.hpp
+++ b/include/Files/FIOVtk.hpp
@@ -6,7 +6,7 @@
 #include <fstream>
 #include <string>
 //
-#include "../../Src/Utils/FPoint.hpp"
+#include "Utils/FPoint.hpp"
 //
 template <class FReal>
 class FIOVtk {
diff --git a/Src/Files/FMpiFmaDivider.hpp b/include/Files/FMpiFmaDivider.hpp
similarity index 100%
rename from Src/Files/FMpiFmaDivider.hpp
rename to include/Files/FMpiFmaDivider.hpp
diff --git a/Src/Files/FMpiFmaGenericLoader.hpp b/include/Files/FMpiFmaGenericLoader.hpp
similarity index 100%
rename from Src/Files/FMpiFmaGenericLoader.hpp
rename to include/Files/FMpiFmaGenericLoader.hpp
diff --git a/Src/Files/FMpiSplitFmaLoader.hpp b/include/Files/FMpiSplitFmaLoader.hpp
similarity index 100%
rename from Src/Files/FMpiSplitFmaLoader.hpp
rename to include/Files/FMpiSplitFmaLoader.hpp
diff --git a/Src/Files/FMpiStaticTreeBuilder.hpp b/include/Files/FMpiStaticTreeBuilder.hpp
similarity index 100%
rename from Src/Files/FMpiStaticTreeBuilder.hpp
rename to include/Files/FMpiStaticTreeBuilder.hpp
diff --git a/Src/Files/FMpiTreeBuilder.hpp b/include/Files/FMpiTreeBuilder.hpp
similarity index 100%
rename from Src/Files/FMpiTreeBuilder.hpp
rename to include/Files/FMpiTreeBuilder.hpp
diff --git a/Src/Files/FPerLeafLoader.hpp b/include/Files/FPerLeafLoader.hpp
similarity index 100%
rename from Src/Files/FPerLeafLoader.hpp
rename to include/Files/FPerLeafLoader.hpp
diff --git a/Src/Files/FRandomLoader.hpp b/include/Files/FRandomLoader.hpp
similarity index 100%
rename from Src/Files/FRandomLoader.hpp
rename to include/Files/FRandomLoader.hpp
diff --git a/Src/Files/FTreeBuilder.hpp b/include/Files/FTreeBuilder.hpp
similarity index 100%
rename from Src/Files/FTreeBuilder.hpp
rename to include/Files/FTreeBuilder.hpp
diff --git a/Src/Files/FTreeCsvSaver.hpp b/include/Files/FTreeCsvSaver.hpp
similarity index 100%
rename from Src/Files/FTreeCsvSaver.hpp
rename to include/Files/FTreeCsvSaver.hpp
diff --git a/Src/Files/FTreeIO.hpp b/include/Files/FTreeIO.hpp
similarity index 100%
rename from Src/Files/FTreeIO.hpp
rename to include/Files/FTreeIO.hpp
diff --git a/Src/Files/FTreeMpiCsvSaver.hpp b/include/Files/FTreeMpiCsvSaver.hpp
similarity index 100%
rename from Src/Files/FTreeMpiCsvSaver.hpp
rename to include/Files/FTreeMpiCsvSaver.hpp
diff --git a/Src/GroupTree/Core/FBuildGroupTree.hpp b/include/GroupTree/Core/FBuildGroupTree.hpp
similarity index 100%
rename from Src/GroupTree/Core/FBuildGroupTree.hpp
rename to include/GroupTree/Core/FBuildGroupTree.hpp
diff --git a/Src/GroupTree/Core/FCheckResults.hpp b/include/GroupTree/Core/FCheckResults.hpp
similarity index 100%
rename from Src/GroupTree/Core/FCheckResults.hpp
rename to include/GroupTree/Core/FCheckResults.hpp
diff --git a/Src/GroupTree/Core/FDistributedGroupTreeBuilder.hpp b/include/GroupTree/Core/FDistributedGroupTreeBuilder.hpp
similarity index 100%
rename from Src/GroupTree/Core/FDistributedGroupTreeBuilder.hpp
rename to include/GroupTree/Core/FDistributedGroupTreeBuilder.hpp
diff --git a/Src/GroupTree/Core/FDistributedLETGroupTreeValidator.hpp b/include/GroupTree/Core/FDistributedLETGroupTreeValidator.hpp
similarity index 100%
rename from Src/GroupTree/Core/FDistributedLETGroupTreeValidator.hpp
rename to include/GroupTree/Core/FDistributedLETGroupTreeValidator.hpp
diff --git a/Src/GroupTree/Core/FGroupAttachedLeaf.hpp b/include/GroupTree/Core/FGroupAttachedLeaf.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupAttachedLeaf.hpp
rename to include/GroupTree/Core/FGroupAttachedLeaf.hpp
diff --git a/Src/GroupTree/Core/FGroupAttachedLeafDyn.hpp b/include/GroupTree/Core/FGroupAttachedLeafDyn.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupAttachedLeafDyn.hpp
rename to include/GroupTree/Core/FGroupAttachedLeafDyn.hpp
diff --git a/Src/GroupTree/Core/FGroupLinearTree.hpp b/include/GroupTree/Core/FGroupLinearTree.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupLinearTree.hpp
rename to include/GroupTree/Core/FGroupLinearTree.hpp
diff --git a/Src/GroupTree/Core/FGroupOfCells.hpp b/include/GroupTree/Core/FGroupOfCells.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupOfCells.hpp
rename to include/GroupTree/Core/FGroupOfCells.hpp
diff --git a/Src/GroupTree/Core/FGroupOfCellsDyn.hpp b/include/GroupTree/Core/FGroupOfCellsDyn.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupOfCellsDyn.hpp
rename to include/GroupTree/Core/FGroupOfCellsDyn.hpp
diff --git a/Src/GroupTree/Core/FGroupOfParticles.hpp b/include/GroupTree/Core/FGroupOfParticles.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupOfParticles.hpp
rename to include/GroupTree/Core/FGroupOfParticles.hpp
diff --git a/Src/GroupTree/Core/FGroupOfParticlesDyn.hpp b/include/GroupTree/Core/FGroupOfParticlesDyn.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupOfParticlesDyn.hpp
rename to include/GroupTree/Core/FGroupOfParticlesDyn.hpp
diff --git a/Src/GroupTree/Core/FGroupSeqAlgorithm.hpp b/include/GroupTree/Core/FGroupSeqAlgorithm.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupSeqAlgorithm.hpp
rename to include/GroupTree/Core/FGroupSeqAlgorithm.hpp
diff --git a/Src/GroupTree/Core/FGroupTaskAlgorithm.hpp b/include/GroupTree/Core/FGroupTaskAlgorithm.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupTaskAlgorithm.hpp
rename to include/GroupTree/Core/FGroupTaskAlgorithm.hpp
diff --git a/Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp b/include/GroupTree/Core/FGroupTaskDepAlgorithm.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp
rename to include/GroupTree/Core/FGroupTaskDepAlgorithm.hpp
diff --git a/Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp b/include/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp
rename to include/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp
diff --git a/Src/GroupTree/Core/FGroupTaskStarpuImplicitAlgorithm.hpp b/include/GroupTree/Core/FGroupTaskStarpuImplicitAlgorithm.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupTaskStarpuImplicitAlgorithm.hpp
rename to include/GroupTree/Core/FGroupTaskStarpuImplicitAlgorithm.hpp
diff --git a/Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp b/include/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp
rename to include/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp
diff --git a/Src/GroupTree/Core/FGroupTools.hpp b/include/GroupTree/Core/FGroupTools.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupTools.hpp
rename to include/GroupTree/Core/FGroupTools.hpp
diff --git a/Src/GroupTree/Core/FGroupTree.hpp b/include/GroupTree/Core/FGroupTree.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupTree.hpp
rename to include/GroupTree/Core/FGroupTree.hpp
diff --git a/Src/GroupTree/Core/FGroupTreeDyn.hpp b/include/GroupTree/Core/FGroupTreeDyn.hpp
similarity index 100%
rename from Src/GroupTree/Core/FGroupTreeDyn.hpp
rename to include/GroupTree/Core/FGroupTreeDyn.hpp
diff --git a/Src/GroupTree/Core/FOutOfBlockInteraction.hpp b/include/GroupTree/Core/FOutOfBlockInteraction.hpp
similarity index 100%
rename from Src/GroupTree/Core/FOutOfBlockInteraction.hpp
rename to include/GroupTree/Core/FOutOfBlockInteraction.hpp
diff --git a/Src/GroupTree/Core/FP2PGroupParticleContainer.hpp b/include/GroupTree/Core/FP2PGroupParticleContainer.hpp
similarity index 100%
rename from Src/GroupTree/Core/FP2PGroupParticleContainer.hpp
rename to include/GroupTree/Core/FP2PGroupParticleContainer.hpp
diff --git a/Src/GroupTree/Core/starpu_codelet_parameters.h b/include/GroupTree/Core/starpu_codelet_parameters.h
similarity index 100%
rename from Src/GroupTree/Core/starpu_codelet_parameters.h
rename to include/GroupTree/Core/starpu_codelet_parameters.h
diff --git a/Src/GroupTree/Cuda/FCudaCompositeCell.hpp b/include/GroupTree/Cuda/FCudaCompositeCell.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaCompositeCell.hpp
rename to include/GroupTree/Cuda/FCudaCompositeCell.hpp
diff --git a/Src/GroupTree/Cuda/FCudaData.hpp b/include/GroupTree/Cuda/FCudaData.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaData.hpp
rename to include/GroupTree/Cuda/FCudaData.hpp
diff --git a/Src/GroupTree/Cuda/FCudaDeviceWrapper.cu b/include/GroupTree/Cuda/FCudaDeviceWrapper.cu
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaDeviceWrapper.cu
rename to include/GroupTree/Cuda/FCudaDeviceWrapper.cu
diff --git a/Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp b/include/GroupTree/Cuda/FCudaDeviceWrapper.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp
rename to include/GroupTree/Cuda/FCudaDeviceWrapper.hpp
diff --git a/Src/GroupTree/Cuda/FCudaEmptyCellSymb.hpp b/include/GroupTree/Cuda/FCudaEmptyCellSymb.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaEmptyCellSymb.hpp
rename to include/GroupTree/Cuda/FCudaEmptyCellSymb.hpp
diff --git a/Src/GroupTree/Cuda/FCudaEmptyKernel.hpp b/include/GroupTree/Cuda/FCudaEmptyKernel.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaEmptyKernel.hpp
rename to include/GroupTree/Cuda/FCudaEmptyKernel.hpp
diff --git a/Src/GroupTree/Cuda/FCudaGlobal.hpp b/include/GroupTree/Cuda/FCudaGlobal.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaGlobal.hpp
rename to include/GroupTree/Cuda/FCudaGlobal.hpp
diff --git a/Src/GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp b/include/GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp
rename to include/GroupTree/Cuda/FCudaGroupAttachedLeaf.hpp
diff --git a/Src/GroupTree/Cuda/FCudaGroupOfCells.hpp b/include/GroupTree/Cuda/FCudaGroupOfCells.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaGroupOfCells.hpp
rename to include/GroupTree/Cuda/FCudaGroupOfCells.hpp
diff --git a/Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp b/include/GroupTree/Cuda/FCudaGroupOfParticles.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp
rename to include/GroupTree/Cuda/FCudaGroupOfParticles.hpp
diff --git a/Src/GroupTree/Cuda/FCudaStructParams.hpp b/include/GroupTree/Cuda/FCudaStructParams.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaStructParams.hpp
rename to include/GroupTree/Cuda/FCudaStructParams.hpp
diff --git a/Src/GroupTree/Cuda/FCudaTic.hpp b/include/GroupTree/Cuda/FCudaTic.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaTic.hpp
rename to include/GroupTree/Cuda/FCudaTic.hpp
diff --git a/Src/GroupTree/Cuda/FCudaTreeCoordinate.hpp b/include/GroupTree/Cuda/FCudaTreeCoordinate.hpp
similarity index 100%
rename from Src/GroupTree/Cuda/FCudaTreeCoordinate.hpp
rename to include/GroupTree/Cuda/FCudaTreeCoordinate.hpp
diff --git a/Src/GroupTree/OpenCl/FEmptyKernel.cl b/include/GroupTree/OpenCl/FEmptyKernel.cl
similarity index 100%
rename from Src/GroupTree/OpenCl/FEmptyKernel.cl
rename to include/GroupTree/OpenCl/FEmptyKernel.cl
diff --git a/Src/GroupTree/OpenCl/FEmptyOpenCLCode.hpp b/include/GroupTree/OpenCl/FEmptyOpenCLCode.hpp
similarity index 100%
rename from Src/GroupTree/OpenCl/FEmptyOpenCLCode.hpp
rename to include/GroupTree/OpenCl/FEmptyOpenCLCode.hpp
diff --git a/Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp b/include/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp
similarity index 100%
rename from Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp
rename to include/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp
diff --git a/Src/GroupTree/OpenCl/FTextReplacer.hpp b/include/GroupTree/OpenCl/FTextReplacer.hpp
similarity index 100%
rename from Src/GroupTree/OpenCl/FTextReplacer.hpp
rename to include/GroupTree/OpenCl/FTextReplacer.hpp
diff --git a/Src/GroupTree/P2P/FCudaP2P.hpp b/include/GroupTree/P2P/FCudaP2P.hpp
similarity index 100%
rename from Src/GroupTree/P2P/FCudaP2P.hpp
rename to include/GroupTree/P2P/FCudaP2P.hpp
diff --git a/Src/GroupTree/StarPUUtils/FOmpPriorities.hpp b/include/GroupTree/StarPUUtils/FOmpPriorities.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FOmpPriorities.hpp
rename to include/GroupTree/StarPUUtils/FOmpPriorities.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp b/include/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp
rename to include/GroupTree/StarPUUtils/FStarPUCptInteractionsWrapper.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp b/include/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp
rename to include/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp b/include/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp
rename to include/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp b/include/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp
rename to include/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp b/include/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp
rename to include/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp b/include/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp
rename to include/GroupTree/StarPUUtils/FStarPUFmmPrioritiesV2.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp b/include/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp
rename to include/GroupTree/StarPUUtils/FStarPUHeteoprio.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp b/include/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp
rename to include/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp b/include/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp
rename to include/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUReduxCpu.hpp b/include/GroupTree/StarPUUtils/FStarPUReduxCpu.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUReduxCpu.hpp
rename to include/GroupTree/StarPUUtils/FStarPUReduxCpu.hpp
diff --git a/Src/GroupTree/StarPUUtils/FStarPUUtils.hpp b/include/GroupTree/StarPUUtils/FStarPUUtils.hpp
similarity index 100%
rename from Src/GroupTree/StarPUUtils/FStarPUUtils.hpp
rename to include/GroupTree/StarPUUtils/FStarPUUtils.hpp
diff --git a/Src/GroupTree/TestKernel/FCudaTestKernels.hpp b/include/GroupTree/TestKernel/FCudaTestKernels.hpp
similarity index 100%
rename from Src/GroupTree/TestKernel/FCudaTestKernels.hpp
rename to include/GroupTree/TestKernel/FCudaTestKernels.hpp
diff --git a/Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp b/include/GroupTree/TestKernel/FGroupTestParticleContainer.hpp
similarity index 100%
rename from Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp
rename to include/GroupTree/TestKernel/FGroupTestParticleContainer.hpp
diff --git a/Src/GroupTree/TestKernel/FTestKernel.cl b/include/GroupTree/TestKernel/FTestKernel.cl
similarity index 100%
rename from Src/GroupTree/TestKernel/FTestKernel.cl
rename to include/GroupTree/TestKernel/FTestKernel.cl
diff --git a/Src/GroupTree/TestKernel/FTestOpenCLCode.hpp b/include/GroupTree/TestKernel/FTestOpenCLCode.hpp
similarity index 100%
rename from Src/GroupTree/TestKernel/FTestOpenCLCode.hpp
rename to include/GroupTree/TestKernel/FTestOpenCLCode.hpp
diff --git a/Src/GroupTree/Uniform/FUnifCuda.hpp b/include/GroupTree/Uniform/FUnifCuda.hpp
similarity index 100%
rename from Src/GroupTree/Uniform/FUnifCuda.hpp
rename to include/GroupTree/Uniform/FUnifCuda.hpp
diff --git a/Src/GroupTree/Uniform/FUnifCudaSharedData.hpp b/include/GroupTree/Uniform/FUnifCudaSharedData.hpp
similarity index 100%
rename from Src/GroupTree/Uniform/FUnifCudaSharedData.hpp
rename to include/GroupTree/Uniform/FUnifCudaSharedData.hpp
diff --git a/Src/GroupTree/Uniform/FUniformKernel.cl b/include/GroupTree/Uniform/FUniformKernel.cl
similarity index 100%
rename from Src/GroupTree/Uniform/FUniformKernel.cl
rename to include/GroupTree/Uniform/FUniformKernel.cl
diff --git a/Src/GroupTree/Uniform/FUniformOpenCLCode.hpp b/include/GroupTree/Uniform/FUniformOpenCLCode.hpp
similarity index 100%
rename from Src/GroupTree/Uniform/FUniformOpenCLCode.hpp
rename to include/GroupTree/Uniform/FUniformOpenCLCode.hpp
diff --git a/Src/Kernels/Chebyshev/FAbstractChebKernel.hpp b/include/Kernels/Chebyshev/FAbstractChebKernel.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FAbstractChebKernel.hpp
rename to include/Kernels/Chebyshev/FAbstractChebKernel.hpp
diff --git a/Src/Kernels/Chebyshev/FChebCell.hpp b/include/Kernels/Chebyshev/FChebCell.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebCell.hpp
rename to include/Kernels/Chebyshev/FChebCell.hpp
diff --git a/Src/Kernels/Chebyshev/FChebDenseKernel.hpp b/include/Kernels/Chebyshev/FChebDenseKernel.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebDenseKernel.hpp
rename to include/Kernels/Chebyshev/FChebDenseKernel.hpp
diff --git a/Src/Kernels/Chebyshev/FChebDenseM2LHandler.hpp b/include/Kernels/Chebyshev/FChebDenseM2LHandler.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebDenseM2LHandler.hpp
rename to include/Kernels/Chebyshev/FChebDenseM2LHandler.hpp
diff --git a/Src/Kernels/Chebyshev/FChebFlopsSymKernel.hpp b/include/Kernels/Chebyshev/FChebFlopsSymKernel.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebFlopsSymKernel.hpp
rename to include/Kernels/Chebyshev/FChebFlopsSymKernel.hpp
diff --git a/Src/Kernels/Chebyshev/FChebInterpolator.hpp b/include/Kernels/Chebyshev/FChebInterpolator.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebInterpolator.hpp
rename to include/Kernels/Chebyshev/FChebInterpolator.hpp
diff --git a/Src/Kernels/Chebyshev/FChebKernel.hpp b/include/Kernels/Chebyshev/FChebKernel.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebKernel.hpp
rename to include/Kernels/Chebyshev/FChebKernel.hpp
diff --git a/Src/Kernels/Chebyshev/FChebM2LHandler.hpp b/include/Kernels/Chebyshev/FChebM2LHandler.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebM2LHandler.hpp
rename to include/Kernels/Chebyshev/FChebM2LHandler.hpp
diff --git a/Src/Kernels/Chebyshev/FChebRoots.hpp b/include/Kernels/Chebyshev/FChebRoots.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebRoots.hpp
rename to include/Kernels/Chebyshev/FChebRoots.hpp
diff --git a/Src/Kernels/Chebyshev/FChebSymKernel.hpp b/include/Kernels/Chebyshev/FChebSymKernel.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebSymKernel.hpp
rename to include/Kernels/Chebyshev/FChebSymKernel.hpp
diff --git a/Src/Kernels/Chebyshev/FChebSymM2LHandler.hpp b/include/Kernels/Chebyshev/FChebSymM2LHandler.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebSymM2LHandler.hpp
rename to include/Kernels/Chebyshev/FChebSymM2LHandler.hpp
diff --git a/Src/Kernels/Chebyshev/FChebTensor.hpp b/include/Kernels/Chebyshev/FChebTensor.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebTensor.hpp
rename to include/Kernels/Chebyshev/FChebTensor.hpp
diff --git a/Src/Kernels/Chebyshev/FChebTensorialKernel.hpp b/include/Kernels/Chebyshev/FChebTensorialKernel.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebTensorialKernel.hpp
rename to include/Kernels/Chebyshev/FChebTensorialKernel.hpp
diff --git a/Src/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp b/include/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp
similarity index 100%
rename from Src/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp
rename to include/Kernels/Chebyshev/FChebTensorialM2LHandler.hpp
diff --git a/Src/Kernels/FKernelConcepts.hpp b/include/Kernels/FKernelConcepts.hpp
similarity index 100%
rename from Src/Kernels/FKernelConcepts.hpp
rename to include/Kernels/FKernelConcepts.hpp
diff --git a/Src/Kernels/Generic/FGenericData.hpp b/include/Kernels/Generic/FGenericData.hpp
similarity index 100%
rename from Src/Kernels/Generic/FGenericData.hpp
rename to include/Kernels/Generic/FGenericData.hpp
diff --git a/Src/Kernels/Interpolation/FCutOffKernel.hpp b/include/Kernels/Interpolation/FCutOffKernel.hpp
similarity index 100%
rename from Src/Kernels/Interpolation/FCutOffKernel.hpp
rename to include/Kernels/Interpolation/FCutOffKernel.hpp
diff --git a/Src/Kernels/Interpolation/FInterpCell.hpp b/include/Kernels/Interpolation/FInterpCell.hpp
similarity index 100%
rename from Src/Kernels/Interpolation/FInterpCell.hpp
rename to include/Kernels/Interpolation/FInterpCell.hpp
diff --git a/Src/Kernels/Interpolation/FInterpMapping.hpp b/include/Kernels/Interpolation/FInterpMapping.hpp
similarity index 100%
rename from Src/Kernels/Interpolation/FInterpMapping.hpp
rename to include/Kernels/Interpolation/FInterpMapping.hpp
diff --git a/Src/Kernels/Interpolation/FInterpMatrixKernel.hpp b/include/Kernels/Interpolation/FInterpMatrixKernel.hpp
similarity index 100%
rename from Src/Kernels/Interpolation/FInterpMatrixKernel.hpp
rename to include/Kernels/Interpolation/FInterpMatrixKernel.hpp
diff --git a/Src/Kernels/Interpolation/FInterpMatrixKernel_Covariance.hpp b/include/Kernels/Interpolation/FInterpMatrixKernel_Covariance.hpp
similarity index 100%
rename from Src/Kernels/Interpolation/FInterpMatrixKernel_Covariance.hpp
rename to include/Kernels/Interpolation/FInterpMatrixKernel_Covariance.hpp
diff --git a/Src/Kernels/Interpolation/FInterpMatrixKernel_TensorialInteractions.hpp b/include/Kernels/Interpolation/FInterpMatrixKernel_TensorialInteractions.hpp
similarity index 100%
rename from Src/Kernels/Interpolation/FInterpMatrixKernel_TensorialInteractions.hpp
rename to include/Kernels/Interpolation/FInterpMatrixKernel_TensorialInteractions.hpp
diff --git a/Src/Kernels/Interpolation/FInterpP2PKernels.hpp b/include/Kernels/Interpolation/FInterpP2PKernels.hpp
similarity index 100%
rename from Src/Kernels/Interpolation/FInterpP2PKernels.hpp
rename to include/Kernels/Interpolation/FInterpP2PKernels.hpp
diff --git a/Src/Kernels/Interpolation/FInterpSymmetries.hpp b/include/Kernels/Interpolation/FInterpSymmetries.hpp
similarity index 100%
rename from Src/Kernels/Interpolation/FInterpSymmetries.hpp
rename to include/Kernels/Interpolation/FInterpSymmetries.hpp
diff --git a/Src/Kernels/Interpolation/FInterpTensor.hpp b/include/Kernels/Interpolation/FInterpTensor.hpp
similarity index 100%
rename from Src/Kernels/Interpolation/FInterpTensor.hpp
rename to include/Kernels/Interpolation/FInterpTensor.hpp
diff --git a/Src/Kernels/P2P/FP2P.hpp b/include/Kernels/P2P/FP2P.hpp
similarity index 100%
rename from Src/Kernels/P2P/FP2P.hpp
rename to include/Kernels/P2P/FP2P.hpp
diff --git a/Src/Kernels/P2P/FP2PMultiRhs.hpp b/include/Kernels/P2P/FP2PMultiRhs.hpp
similarity index 100%
rename from Src/Kernels/P2P/FP2PMultiRhs.hpp
rename to include/Kernels/P2P/FP2PMultiRhs.hpp
diff --git a/Src/Kernels/P2P/FP2PParticleContainer.hpp b/include/Kernels/P2P/FP2PParticleContainer.hpp
similarity index 100%
rename from Src/Kernels/P2P/FP2PParticleContainer.hpp
rename to include/Kernels/P2P/FP2PParticleContainer.hpp
diff --git a/Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp b/include/Kernels/P2P/FP2PParticleContainerIndexed.hpp
similarity index 100%
rename from Src/Kernels/P2P/FP2PParticleContainerIndexed.hpp
rename to include/Kernels/P2P/FP2PParticleContainerIndexed.hpp
diff --git a/Src/Kernels/P2P/FP2PR.hpp b/include/Kernels/P2P/FP2PR.hpp
similarity index 100%
rename from Src/Kernels/P2P/FP2PR.hpp
rename to include/Kernels/P2P/FP2PR.hpp
diff --git a/Src/Kernels/P2P/FP2PTensorialKij.hpp b/include/Kernels/P2P/FP2PTensorialKij.hpp
similarity index 100%
rename from Src/Kernels/P2P/FP2PTensorialKij.hpp
rename to include/Kernels/P2P/FP2PTensorialKij.hpp
diff --git a/Src/Kernels/Rotation/FRotationCell.hpp b/include/Kernels/Rotation/FRotationCell.hpp
similarity index 100%
rename from Src/Kernels/Rotation/FRotationCell.hpp
rename to include/Kernels/Rotation/FRotationCell.hpp
diff --git a/Src/Kernels/Rotation/FRotationKernel.hpp b/include/Kernels/Rotation/FRotationKernel.hpp
similarity index 100%
rename from Src/Kernels/Rotation/FRotationKernel.hpp
rename to include/Kernels/Rotation/FRotationKernel.hpp
diff --git a/Src/Kernels/Rotation/FRotationOriginalKernel.hpp b/include/Kernels/Rotation/FRotationOriginalKernel.hpp
similarity index 100%
rename from Src/Kernels/Rotation/FRotationOriginalKernel.hpp
rename to include/Kernels/Rotation/FRotationOriginalKernel.hpp
diff --git a/Src/Kernels/Rotation/FRotationParticleContainer.hpp b/include/Kernels/Rotation/FRotationParticleContainer.hpp
similarity index 100%
rename from Src/Kernels/Rotation/FRotationParticleContainer.hpp
rename to include/Kernels/Rotation/FRotationParticleContainer.hpp
diff --git a/Src/Kernels/Spherical/FAbstractSphericalKernel.hpp b/include/Kernels/Spherical/FAbstractSphericalKernel.hpp
similarity index 100%
rename from Src/Kernels/Spherical/FAbstractSphericalKernel.hpp
rename to include/Kernels/Spherical/FAbstractSphericalKernel.hpp
diff --git a/Src/Kernels/Spherical/FHarmonic.hpp b/include/Kernels/Spherical/FHarmonic.hpp
similarity index 100%
rename from Src/Kernels/Spherical/FHarmonic.hpp
rename to include/Kernels/Spherical/FHarmonic.hpp
diff --git a/Src/Kernels/Spherical/FSphericalBlasKernel.hpp b/include/Kernels/Spherical/FSphericalBlasKernel.hpp
similarity index 100%
rename from Src/Kernels/Spherical/FSphericalBlasKernel.hpp
rename to include/Kernels/Spherical/FSphericalBlasKernel.hpp
diff --git a/Src/Kernels/Spherical/FSphericalBlockBlasKernel.hpp b/include/Kernels/Spherical/FSphericalBlockBlasKernel.hpp
similarity index 100%
rename from Src/Kernels/Spherical/FSphericalBlockBlasKernel.hpp
rename to include/Kernels/Spherical/FSphericalBlockBlasKernel.hpp
diff --git a/Src/Kernels/Spherical/FSphericalCell.hpp b/include/Kernels/Spherical/FSphericalCell.hpp
similarity index 100%
rename from Src/Kernels/Spherical/FSphericalCell.hpp
rename to include/Kernels/Spherical/FSphericalCell.hpp
diff --git a/Src/Kernels/Spherical/FSphericalKernel.hpp b/include/Kernels/Spherical/FSphericalKernel.hpp
similarity index 100%
rename from Src/Kernels/Spherical/FSphericalKernel.hpp
rename to include/Kernels/Spherical/FSphericalKernel.hpp
diff --git a/Src/Kernels/Spherical/FSphericalRotationKernel.hpp b/include/Kernels/Spherical/FSphericalRotationKernel.hpp
similarity index 100%
rename from Src/Kernels/Spherical/FSphericalRotationKernel.hpp
rename to include/Kernels/Spherical/FSphericalRotationKernel.hpp
diff --git a/Src/Kernels/Taylor/FTaylorCell.hpp b/include/Kernels/Taylor/FTaylorCell.hpp
similarity index 100%
rename from Src/Kernels/Taylor/FTaylorCell.hpp
rename to include/Kernels/Taylor/FTaylorCell.hpp
diff --git a/Src/Kernels/Taylor/FTaylorFlopsKernel.hpp b/include/Kernels/Taylor/FTaylorFlopsKernel.hpp
similarity index 100%
rename from Src/Kernels/Taylor/FTaylorFlopsKernel.hpp
rename to include/Kernels/Taylor/FTaylorFlopsKernel.hpp
diff --git a/Src/Kernels/Taylor/FTaylorKernel.hpp b/include/Kernels/Taylor/FTaylorKernel.hpp
similarity index 100%
rename from Src/Kernels/Taylor/FTaylorKernel.hpp
rename to include/Kernels/Taylor/FTaylorKernel.hpp
diff --git a/Src/Kernels/Taylor/FTaylorKernelSimple.hpp b/include/Kernels/Taylor/FTaylorKernelSimple.hpp
similarity index 100%
rename from Src/Kernels/Taylor/FTaylorKernelSimple.hpp
rename to include/Kernels/Taylor/FTaylorKernelSimple.hpp
diff --git a/Src/Kernels/Uniform/FAbstractUnifKernel.hpp b/include/Kernels/Uniform/FAbstractUnifKernel.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FAbstractUnifKernel.hpp
rename to include/Kernels/Uniform/FAbstractUnifKernel.hpp
diff --git a/Src/Kernels/Uniform/FUnifCell.hpp b/include/Kernels/Uniform/FUnifCell.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FUnifCell.hpp
rename to include/Kernels/Uniform/FUnifCell.hpp
diff --git a/Src/Kernels/Uniform/FUnifDenseKernel.hpp b/include/Kernels/Uniform/FUnifDenseKernel.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FUnifDenseKernel.hpp
rename to include/Kernels/Uniform/FUnifDenseKernel.hpp
diff --git a/Src/Kernels/Uniform/FUnifInterpolator.hpp b/include/Kernels/Uniform/FUnifInterpolator.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FUnifInterpolator.hpp
rename to include/Kernels/Uniform/FUnifInterpolator.hpp
diff --git a/Src/Kernels/Uniform/FUnifKernel.hpp b/include/Kernels/Uniform/FUnifKernel.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FUnifKernel.hpp
rename to include/Kernels/Uniform/FUnifKernel.hpp
diff --git a/Src/Kernels/Uniform/FUnifM2LHandler.hpp b/include/Kernels/Uniform/FUnifM2LHandler.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FUnifM2LHandler.hpp
rename to include/Kernels/Uniform/FUnifM2LHandler.hpp
diff --git a/Src/Kernels/Uniform/FUnifRoots.hpp b/include/Kernels/Uniform/FUnifRoots.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FUnifRoots.hpp
rename to include/Kernels/Uniform/FUnifRoots.hpp
diff --git a/Src/Kernels/Uniform/FUnifSymM2LHandler.hpp b/include/Kernels/Uniform/FUnifSymM2LHandler.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FUnifSymM2LHandler.hpp
rename to include/Kernels/Uniform/FUnifSymM2LHandler.hpp
diff --git a/Src/Kernels/Uniform/FUnifTensor.hpp b/include/Kernels/Uniform/FUnifTensor.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FUnifTensor.hpp
rename to include/Kernels/Uniform/FUnifTensor.hpp
diff --git a/Src/Kernels/Uniform/FUnifTensorialKernel.hpp b/include/Kernels/Uniform/FUnifTensorialKernel.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FUnifTensorialKernel.hpp
rename to include/Kernels/Uniform/FUnifTensorialKernel.hpp
diff --git a/Src/Kernels/Uniform/FUnifTensorialM2LHandler.hpp b/include/Kernels/Uniform/FUnifTensorialM2LHandler.hpp
similarity index 100%
rename from Src/Kernels/Uniform/FUnifTensorialM2LHandler.hpp
rename to include/Kernels/Uniform/FUnifTensorialM2LHandler.hpp
diff --git a/Src/ScalFmmConfig.h.cmake b/include/ScalFmmConfig.h.cmake
similarity index 100%
rename from Src/ScalFmmConfig.h.cmake
rename to include/ScalFmmConfig.h.cmake
diff --git a/Src/Utils/FAbstractBalanceAlgorithm.hpp b/include/Utils/FAbstractBalanceAlgorithm.hpp
similarity index 100%
rename from Src/Utils/FAbstractBalanceAlgorithm.hpp
rename to include/Utils/FAbstractBalanceAlgorithm.hpp
diff --git a/Src/Utils/FAca.hpp b/include/Utils/FAca.hpp
similarity index 100%
rename from Src/Utils/FAca.hpp
rename to include/Utils/FAca.hpp
diff --git a/Src/Utils/FAlgorithmTimers.hpp b/include/Utils/FAlgorithmTimers.hpp
similarity index 100%
rename from Src/Utils/FAlgorithmTimers.hpp
rename to include/Utils/FAlgorithmTimers.hpp
diff --git a/Src/Utils/FAlignedAllocator.hpp b/include/Utils/FAlignedAllocator.hpp
similarity index 100%
rename from Src/Utils/FAlignedAllocator.hpp
rename to include/Utils/FAlignedAllocator.hpp
diff --git a/Src/Utils/FAlignedMemory.hpp b/include/Utils/FAlignedMemory.hpp
similarity index 100%
rename from Src/Utils/FAlignedMemory.hpp
rename to include/Utils/FAlignedMemory.hpp
diff --git a/Src/Utils/FAssert.hpp b/include/Utils/FAssert.hpp
similarity index 100%
rename from Src/Utils/FAssert.hpp
rename to include/Utils/FAssert.hpp
diff --git a/Src/Utils/FBinding.hpp b/include/Utils/FBinding.hpp
similarity index 100%
rename from Src/Utils/FBinding.hpp
rename to include/Utils/FBinding.hpp
diff --git a/Src/Utils/FBitonicSort.hpp b/include/Utils/FBitonicSort.hpp
similarity index 100%
rename from Src/Utils/FBitonicSort.hpp
rename to include/Utils/FBitonicSort.hpp
diff --git a/Src/Utils/FBlas.hpp b/include/Utils/FBlas.hpp
similarity index 100%
rename from Src/Utils/FBlas.hpp
rename to include/Utils/FBlas.hpp
diff --git a/Src/Utils/FCompareResults.hpp b/include/Utils/FCompareResults.hpp
similarity index 100%
rename from Src/Utils/FCompareResults.hpp
rename to include/Utils/FCompareResults.hpp
diff --git a/Src/Utils/FComplex.hpp b/include/Utils/FComplex.hpp
similarity index 100%
rename from Src/Utils/FComplex.hpp
rename to include/Utils/FComplex.hpp
diff --git a/Src/Utils/FConstFuncs.hpp b/include/Utils/FConstFuncs.hpp
similarity index 100%
rename from Src/Utils/FConstFuncs.hpp
rename to include/Utils/FConstFuncs.hpp
diff --git a/Src/Utils/FDft.hpp b/include/Utils/FDft.hpp
similarity index 99%
rename from Src/Utils/FDft.hpp
rename to include/Utils/FDft.hpp
index 967630bc6..00ed5c1f3 100644
--- a/Src/Utils/FDft.hpp
+++ b/include/Utils/FDft.hpp
@@ -17,6 +17,8 @@
 
 #ifdef SCALFMM_USE_ESSL_AS_FFTW
 #include <fftw3_essl.h>
+#elif defined(SCALFMM_USE_MKL_AS_FFTW)
+#include <fftw/fftw3.h>
 #else
 #include <fftw3.h>
 #endif
diff --git a/Src/Utils/FDoc.hpp b/include/Utils/FDoc.hpp
similarity index 100%
rename from Src/Utils/FDoc.hpp
rename to include/Utils/FDoc.hpp
diff --git a/Src/Utils/FEnv.hpp b/include/Utils/FEnv.hpp
similarity index 100%
rename from Src/Utils/FEnv.hpp
rename to include/Utils/FEnv.hpp
diff --git a/Src/Utils/FEqualize.hpp b/include/Utils/FEqualize.hpp
similarity index 100%
rename from Src/Utils/FEqualize.hpp
rename to include/Utils/FEqualize.hpp
diff --git a/Src/Utils/FFortranMangling.hpp b/include/Utils/FFortranMangling.hpp
similarity index 100%
rename from Src/Utils/FFortranMangling.hpp
rename to include/Utils/FFortranMangling.hpp
diff --git a/Src/Utils/FGlobal.hpp b/include/Utils/FGlobal.hpp
similarity index 100%
rename from Src/Utils/FGlobal.hpp
rename to include/Utils/FGlobal.hpp
diff --git a/Src/Utils/FGlobalPeriodic.hpp b/include/Utils/FGlobalPeriodic.hpp
similarity index 100%
rename from Src/Utils/FGlobalPeriodic.hpp
rename to include/Utils/FGlobalPeriodic.hpp
diff --git a/Src/Utils/FLeafBalance.hpp b/include/Utils/FLeafBalance.hpp
similarity index 100%
rename from Src/Utils/FLeafBalance.hpp
rename to include/Utils/FLeafBalance.hpp
diff --git a/Src/Utils/FLog.hpp b/include/Utils/FLog.hpp
similarity index 100%
rename from Src/Utils/FLog.hpp
rename to include/Utils/FLog.hpp
diff --git a/Src/Utils/FMath.hpp b/include/Utils/FMath.hpp
similarity index 100%
rename from Src/Utils/FMath.hpp
rename to include/Utils/FMath.hpp
diff --git a/Src/Utils/FMemStats.h b/include/Utils/FMemStats.h
similarity index 100%
rename from Src/Utils/FMemStats.h
rename to include/Utils/FMemStats.h
diff --git a/Src/Utils/FMemUtils.hpp b/include/Utils/FMemUtils.hpp
similarity index 100%
rename from Src/Utils/FMemUtils.hpp
rename to include/Utils/FMemUtils.hpp
diff --git a/Src/Utils/FMpi.hpp b/include/Utils/FMpi.hpp
similarity index 100%
rename from Src/Utils/FMpi.hpp
rename to include/Utils/FMpi.hpp
diff --git a/Src/Utils/FNoCopyable.hpp b/include/Utils/FNoCopyable.hpp
similarity index 100%
rename from Src/Utils/FNoCopyable.hpp
rename to include/Utils/FNoCopyable.hpp
diff --git a/Src/Utils/FOffetOf.hpp b/include/Utils/FOffetOf.hpp
similarity index 100%
rename from Src/Utils/FOffetOf.hpp
rename to include/Utils/FOffetOf.hpp
diff --git a/Src/Utils/FOstreamTuple.hpp b/include/Utils/FOstreamTuple.hpp
similarity index 100%
rename from Src/Utils/FOstreamTuple.hpp
rename to include/Utils/FOstreamTuple.hpp
diff --git a/Src/Utils/FParObject.hpp b/include/Utils/FParObject.hpp
similarity index 100%
rename from Src/Utils/FParObject.hpp
rename to include/Utils/FParObject.hpp
diff --git a/Src/Utils/FParameterNames.hpp b/include/Utils/FParameterNames.hpp
similarity index 100%
rename from Src/Utils/FParameterNames.hpp
rename to include/Utils/FParameterNames.hpp
diff --git a/Src/Utils/FParameters.hpp b/include/Utils/FParameters.hpp
similarity index 100%
rename from Src/Utils/FParameters.hpp
rename to include/Utils/FParameters.hpp
diff --git a/Src/Utils/FPartitionsMapping.hpp b/include/Utils/FPartitionsMapping.hpp
similarity index 100%
rename from Src/Utils/FPartitionsMapping.hpp
rename to include/Utils/FPartitionsMapping.hpp
diff --git a/Src/Utils/FPoint.hpp b/include/Utils/FPoint.hpp
similarity index 100%
rename from Src/Utils/FPoint.hpp
rename to include/Utils/FPoint.hpp
diff --git a/Src/Utils/FQuickSort.hpp b/include/Utils/FQuickSort.hpp
similarity index 100%
rename from Src/Utils/FQuickSort.hpp
rename to include/Utils/FQuickSort.hpp
diff --git a/Src/Utils/FQuickSortMpi.hpp b/include/Utils/FQuickSortMpi.hpp
similarity index 100%
rename from Src/Utils/FQuickSortMpi.hpp
rename to include/Utils/FQuickSortMpi.hpp
diff --git a/Src/Utils/FRepeatAction.hpp b/include/Utils/FRepeatAction.hpp
similarity index 100%
rename from Src/Utils/FRepeatAction.hpp
rename to include/Utils/FRepeatAction.hpp
diff --git a/Src/Utils/FSignalHandler.h b/include/Utils/FSignalHandler.h
similarity index 100%
rename from Src/Utils/FSignalHandler.h
rename to include/Utils/FSignalHandler.h
diff --git a/Src/Utils/FSmartPointer.hpp b/include/Utils/FSmartPointer.hpp
similarity index 100%
rename from Src/Utils/FSmartPointer.hpp
rename to include/Utils/FSmartPointer.hpp
diff --git a/Src/Utils/FSpherical.hpp b/include/Utils/FSpherical.hpp
similarity index 100%
rename from Src/Utils/FSpherical.hpp
rename to include/Utils/FSpherical.hpp
diff --git a/Src/Utils/FStdAlignPolyfill.hpp b/include/Utils/FStdAlignPolyfill.hpp
similarity index 100%
rename from Src/Utils/FStdAlignPolyfill.hpp
rename to include/Utils/FStdAlignPolyfill.hpp
diff --git a/Src/Utils/FSvd.hpp b/include/Utils/FSvd.hpp
similarity index 100%
rename from Src/Utils/FSvd.hpp
rename to include/Utils/FSvd.hpp
diff --git a/Src/Utils/FTaskTimer.hpp b/include/Utils/FTaskTimer.hpp
similarity index 100%
rename from Src/Utils/FTaskTimer.hpp
rename to include/Utils/FTaskTimer.hpp
diff --git a/Src/Utils/FTemplate.hpp b/include/Utils/FTemplate.hpp
similarity index 100%
rename from Src/Utils/FTemplate.hpp
rename to include/Utils/FTemplate.hpp
diff --git a/Src/Utils/FTic.hpp b/include/Utils/FTic.hpp
similarity index 100%
rename from Src/Utils/FTic.hpp
rename to include/Utils/FTic.hpp
diff --git a/Src/Utils/FTypePack.hpp b/include/Utils/FTypePack.hpp
similarity index 100%
rename from Src/Utils/FTypePack.hpp
rename to include/Utils/FTypePack.hpp
diff --git a/Src/Utils/make_unique.hpp b/include/Utils/make_unique.hpp
similarity index 100%
rename from Src/Utils/make_unique.hpp
rename to include/Utils/make_unique.hpp
diff --git a/Src/Utils/stdComplex.hpp b/include/Utils/stdComplex.hpp
similarity index 100%
rename from Src/Utils/stdComplex.hpp
rename to include/Utils/stdComplex.hpp
diff --git a/Src/Utils/variadic_container.hpp b/include/Utils/variadic_container.hpp
similarity index 100%
rename from Src/Utils/variadic_container.hpp
rename to include/Utils/variadic_container.hpp
diff --git a/Contribs/inria/algorithm/distributed/distribute.hpp b/include/inria/algorithm/distributed/distribute.hpp
similarity index 100%
rename from Contribs/inria/algorithm/distributed/distribute.hpp
rename to include/inria/algorithm/distributed/distribute.hpp
diff --git a/Contribs/inria/algorithm/distributed/impl_sort/binary_search.hpp b/include/inria/algorithm/distributed/impl_sort/binary_search.hpp
similarity index 100%
rename from Contribs/inria/algorithm/distributed/impl_sort/binary_search.hpp
rename to include/inria/algorithm/distributed/impl_sort/binary_search.hpp
diff --git a/Contribs/inria/algorithm/distributed/mpi.hpp b/include/inria/algorithm/distributed/mpi.hpp
similarity index 100%
rename from Contribs/inria/algorithm/distributed/mpi.hpp
rename to include/inria/algorithm/distributed/mpi.hpp
diff --git a/Contribs/inria/algorithm/distributed/sort.hpp b/include/inria/algorithm/distributed/sort.hpp
similarity index 100%
rename from Contribs/inria/algorithm/distributed/sort.hpp
rename to include/inria/algorithm/distributed/sort.hpp
diff --git a/Contribs/inria/algorithm/distributed/unique.hpp b/include/inria/algorithm/distributed/unique.hpp
similarity index 100%
rename from Contribs/inria/algorithm/distributed/unique.hpp
rename to include/inria/algorithm/distributed/unique.hpp
diff --git a/Contribs/inria/checker.hpp b/include/inria/checker.hpp
similarity index 100%
rename from Contribs/inria/checker.hpp
rename to include/inria/checker.hpp
diff --git a/Contribs/inria/ct_array.hpp b/include/inria/ct_array.hpp
similarity index 100%
rename from Contribs/inria/ct_array.hpp
rename to include/inria/ct_array.hpp
diff --git a/Contribs/inria/detection_idiom.hpp b/include/inria/detection_idiom.hpp
similarity index 100%
rename from Contribs/inria/detection_idiom.hpp
rename to include/inria/detection_idiom.hpp
diff --git a/Contribs/inria/integer_sequence.hpp b/include/inria/integer_sequence.hpp
similarity index 98%
rename from Contribs/inria/integer_sequence.hpp
rename to include/inria/integer_sequence.hpp
index d9042ee56..ebb859add 100644
--- a/Contribs/inria/integer_sequence.hpp
+++ b/include/inria/integer_sequence.hpp
@@ -13,7 +13,7 @@
 
 
 #if __cplusplus < 201103L
-#error "The definition of integer_sequence needs at least c++11."
+//#error "The definition of integer_sequence needs at least c++11."
 #endif
 
 
diff --git a/Contribs/inria/io.hpp b/include/inria/io.hpp
similarity index 100%
rename from Contribs/inria/io.hpp
rename to include/inria/io.hpp
diff --git a/Contribs/inria/linear_tree/balance_tree.hpp b/include/inria/linear_tree/balance_tree.hpp
similarity index 100%
rename from Contribs/inria/linear_tree/balance_tree.hpp
rename to include/inria/linear_tree/balance_tree.hpp
diff --git a/Contribs/inria/linear_tree/configuration.hpp b/include/inria/linear_tree/configuration.hpp
similarity index 100%
rename from Contribs/inria/linear_tree/configuration.hpp
rename to include/inria/linear_tree/configuration.hpp
diff --git a/Contribs/inria/linear_tree/distributed_regions_to_linear_tree.hpp b/include/inria/linear_tree/distributed_regions_to_linear_tree.hpp
similarity index 100%
rename from Contribs/inria/linear_tree/distributed_regions_to_linear_tree.hpp
rename to include/inria/linear_tree/distributed_regions_to_linear_tree.hpp
diff --git a/Contribs/inria/linear_tree/gather_octant_weights.hpp b/include/inria/linear_tree/gather_octant_weights.hpp
similarity index 100%
rename from Contribs/inria/linear_tree/gather_octant_weights.hpp
rename to include/inria/linear_tree/gather_octant_weights.hpp
diff --git a/Contribs/inria/linear_tree/linear_tree.hpp b/include/inria/linear_tree/linear_tree.hpp
similarity index 100%
rename from Contribs/inria/linear_tree/linear_tree.hpp
rename to include/inria/linear_tree/linear_tree.hpp
diff --git a/Contribs/inria/linear_tree/linearize.hpp b/include/inria/linear_tree/linearize.hpp
similarity index 100%
rename from Contribs/inria/linear_tree/linearize.hpp
rename to include/inria/linear_tree/linearize.hpp
diff --git a/Contribs/inria/linear_tree/node.hpp b/include/inria/linear_tree/node.hpp
similarity index 100%
rename from Contribs/inria/linear_tree/node.hpp
rename to include/inria/linear_tree/node.hpp
diff --git a/Contribs/inria/linear_tree/node_info_traits.hpp b/include/inria/linear_tree/node_info_traits.hpp
similarity index 100%
rename from Contribs/inria/linear_tree/node_info_traits.hpp
rename to include/inria/linear_tree/node_info_traits.hpp
diff --git a/Contribs/inria/linear_tree/region.hpp b/include/inria/linear_tree/region.hpp
similarity index 100%
rename from Contribs/inria/linear_tree/region.hpp
rename to include/inria/linear_tree/region.hpp
diff --git a/Contribs/inria/linear_tree/weight_traits.hpp b/include/inria/linear_tree/weight_traits.hpp
similarity index 100%
rename from Contribs/inria/linear_tree/weight_traits.hpp
rename to include/inria/linear_tree/weight_traits.hpp
diff --git a/Contribs/inria/logic.hpp b/include/inria/logic.hpp
similarity index 100%
rename from Contribs/inria/logic.hpp
rename to include/inria/logic.hpp
diff --git a/Contribs/inria/meta.hpp b/include/inria/meta.hpp
similarity index 100%
rename from Contribs/inria/meta.hpp
rename to include/inria/meta.hpp
diff --git a/Contribs/inria/ostream_joiner.hpp b/include/inria/ostream_joiner.hpp
similarity index 100%
rename from Contribs/inria/ostream_joiner.hpp
rename to include/inria/ostream_joiner.hpp
diff --git a/Contribs/inria/ostream_typeinfo.hpp b/include/inria/ostream_typeinfo.hpp
similarity index 100%
rename from Contribs/inria/ostream_typeinfo.hpp
rename to include/inria/ostream_typeinfo.hpp
diff --git a/Contribs/inria/require_input.hpp b/include/inria/require_input.hpp
similarity index 100%
rename from Contribs/inria/require_input.hpp
rename to include/inria/require_input.hpp
diff --git a/Contribs/inria/span.hpp b/include/inria/span.hpp
similarity index 100%
rename from Contribs/inria/span.hpp
rename to include/inria/span.hpp
diff --git a/Contribs/inria/tcli/exceptions.hpp b/include/inria/tcli/exceptions.hpp
similarity index 100%
rename from Contribs/inria/tcli/exceptions.hpp
rename to include/inria/tcli/exceptions.hpp
diff --git a/Contribs/inria/tcli/help_descriptor.hpp b/include/inria/tcli/help_descriptor.hpp
similarity index 100%
rename from Contribs/inria/tcli/help_descriptor.hpp
rename to include/inria/tcli/help_descriptor.hpp
diff --git a/Contribs/inria/tcli/impl_tcli/meta.hpp b/include/inria/tcli/impl_tcli/meta.hpp
similarity index 100%
rename from Contribs/inria/tcli/impl_tcli/meta.hpp
rename to include/inria/tcli/impl_tcli/meta.hpp
diff --git a/Contribs/inria/tcli/impl_tcli/parameter_model.hpp b/include/inria/tcli/impl_tcli/parameter_model.hpp
similarity index 100%
rename from Contribs/inria/tcli/impl_tcli/parameter_model.hpp
rename to include/inria/tcli/impl_tcli/parameter_model.hpp
diff --git a/Contribs/inria/tcli/impl_tcli/utils.hpp b/include/inria/tcli/impl_tcli/utils.hpp
similarity index 100%
rename from Contribs/inria/tcli/impl_tcli/utils.hpp
rename to include/inria/tcli/impl_tcli/utils.hpp
diff --git a/Contribs/inria/tcli/tcli.hpp b/include/inria/tcli/tcli.hpp
similarity index 100%
rename from Contribs/inria/tcli/tcli.hpp
rename to include/inria/tcli/tcli.hpp
diff --git a/Contribs/inria/utils.hpp b/include/inria/utils.hpp
similarity index 100%
rename from Contribs/inria/utils.hpp
rename to include/inria/utils.hpp
diff --git a/Contribs/inria/version.hpp b/include/inria/version.hpp
similarity index 100%
rename from Contribs/inria/version.hpp
rename to include/inria/version.hpp
diff --git a/Contribs/json.hpp b/include/json.hpp
similarity index 100%
rename from Contribs/json.hpp
rename to include/json.hpp
diff --git a/scalfmmConfig.cmake.in b/scalfmmConfig.cmake.in
new file mode 100644
index 000000000..6ffb39495
--- /dev/null
+++ b/scalfmmConfig.cmake.in
@@ -0,0 +1,74 @@
+#-----------------------------------------------------------------------------
+#
+# SCALFMMConfig.cmake - SCALFMM CMake configuration file for external projects.
+#
+# This file is configured by SCALFMM and used by the SCALFMM.cmake module
+# to load SCALFMM's settings for an external project.
+#
+
+@PACKAGE_INIT@
+
+if(NOT TARGET @PROJECT_NAME@::@PROJECT_NAME@)
+  list(APPEND CMAKE_MODULE_PATH "@MORSE_CMAKE_MODULE_PATH@/find")
+  set(IMPORTED_LIBS @SCALFMM_LIBRARIES@)
+  set(BLA_VENDOR @BLA_VENDOR@)
+  include(CMakeFindDependencyMacro)
+  foreach(lib IN LISTS IMPORTED_LIBS)
+    find_dependency(${lib})
+    if(NOT ${lib}_FOUND)
+      message(FATAL_ERROR "MISSING ${lib} DEPENDENCY !")
+    else()
+      message(STATUS "Found ${lib} dependency.")
+    endif()
+  endforeach()
+  include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake")
+endif()
+
+
+#@SCALFMM_CONFIG_INSTALL_ONLY@
+##
+#SET(SCALFMM_VERSION_MAJOR "@SCALFMM_MAJOR_VERSION@")
+#SET(SCALFMM_VERSION_MINOR "@SCALFMM_MINOR_VERSION@")
+#SET(SCALFMM_VERSION_BUILD  "@SCALFMM_BUILD_VERSION@")
+##
+#SET(SCALFMM_PREFIX        "@CMAKE_INSTALL_PREFIX@")
+#SET(SCALFMM_INCLUDES_DIR   "@CMAKE_INSTALL_PREFIX@/include")
+#SET(SCALFMM_INCLUDES_ADD "@SCALFMM_INCLUDES@")
+#SET(SCALFMM_LIBRARIES_DIR "@CMAKE_INSTALL_PREFIX@/lib")
+#SET(SCALFMM_LIBRARIES_ADD "@SCALFMM_COMPILE_LIBS@")
+#SET(SCALFMM_LIBRARY_NAME  "@scalfmm_lib@")
+#SET(SCALFMM_CXX_FLAGS     "@SCALFMM_CXX_FLAGS@ @CMAKE_CXX_FLAGS@")
+##
+#SET(SCALFMM_SOURCE_DIR	   "@SCALFMM_SOURCE_DIR@")
+#SET(SCALFMM_BUILD_SHARED_LIBS "@BUILD_SHARED_LIBS@")
+#SET(SCALFMM_USE_FILE	   "@SCALFMM_USE_FILE@")
+##
+#SET(SCALFMM_BUILD_TYPE     "@CMAKE_BUILD_TYPE@")
+##
+## SCALFMM Options
+##
+#SET(SCALFMM_USE_ADDONS           "@SCALFMM_USE_ADDONS@")
+#SET(SCALFMM_USE_MPI              "@SCALFMM_USE_MPI@")
+#SET(SCALFMM_USE_BLAS             "@SCALFMM_USE_BLAS@")
+#SET(SCALFMM_USE_FFT              "@SCALFMM_USE_FFT@")
+#SET(SCALFMM_USE_MKL              "@SCALFMM_USE_MKL_AS_BLAS@")
+#SET(SCALFMM_FLAGS                "@SCALFMM_FLAGS_OPTI@")
+#SET(SCALFMM_USE_MEM_STATS        "@SCALFMM_USE_MEM_STATS@") 
+#SET(SCALFMM_USE_LOG              "@SCALFMM_USE_LOG@")
+#SET(SCALFMM_USE_OMP4             "@SCALFMM_USE_OMP4@")
+#SET(SCALFMM_USE_STARPU           "@SCALFMM_USE_STARPU@")
+#SET(SCALFMM_USE_SSE              "@SCALFMM_USE_SSE@")
+#SET(SCALFMM_USE_AVX              "@SCALFMM_USE_AVX@")
+##
+#SET(SCALFMM_DOC_TAGS           "@CMAKE_BINARY_DIR@/Doc/scalfmm.tag")
+#
+##
+#IF(SCALFMM_USE_ADDONS) 
+#  SET(SCALFMM_LIBRARIES "-L${SCALFMM_LIBRARIES_DIR} -l${SCALFMM_LIBRARY_NAME} ${SCALFMM_LIBRARIES_ADD}" )
+#ELSE()
+#  SET(SCALFMM_LIBRARIES "-L${SCALFMM_LIBRARIES_DIR} -l${SCALFMM_LIBRARY_NAME}" )
+#ENDIF()
+#
+#
+##SCALFMM_BUILD_TESTS => OFF
+##SCALFMM_BUILD_UTESTS => OFF
diff --git a/Src/Utils/FAlgorithmTimers.cpp b/src/FAlgorithmTimers.cpp
similarity index 92%
rename from Src/Utils/FAlgorithmTimers.cpp
rename to src/FAlgorithmTimers.cpp
index b30b4e04f..c1e23ed17 100644
--- a/Src/Utils/FAlgorithmTimers.cpp
+++ b/src/FAlgorithmTimers.cpp
@@ -1,4 +1,4 @@
-#include "FAlgorithmTimers.hpp"
+#include <Utils/FAlgorithmTimers.hpp>
 
 constexpr const char* FAlgorithmTimers::P2MTimer;
 constexpr const char* FAlgorithmTimers::M2MTimer;
diff --git a/Src/Utils/FLog.cpp b/src/FLog.cpp
similarity index 84%
rename from Src/Utils/FLog.cpp
rename to src/FLog.cpp
index f4542e1ff..95fe52333 100644
--- a/Src/Utils/FLog.cpp
+++ b/src/FLog.cpp
@@ -1,6 +1,6 @@
 // See LICENCE file at project root
 
-#include "FLog.hpp"
+#include <Utils/FLog.hpp>
 
 #ifdef SCALFMM_USE_LOG
 
diff --git a/Src/Utils/FMemStats.cpp b/src/FMemStats.cpp
similarity index 98%
rename from Src/Utils/FMemStats.cpp
rename to src/FMemStats.cpp
index 760b61b0a..0e9f629f1 100644
--- a/Src/Utils/FMemStats.cpp
+++ b/src/FMemStats.cpp
@@ -1,5 +1,5 @@
 // See LICENCE file at project root
-#include "FMemStats.h"
+#include <Utils/FMemStats.h>
 
 FMemStats FMemStats::controler;
 
diff --git a/Src/Utils/FMpi.cpp b/src/FMpi.cpp
similarity index 62%
rename from Src/Utils/FMpi.cpp
rename to src/FMpi.cpp
index 6ca6e5021..a8fc30eff 100644
--- a/Src/Utils/FMpi.cpp
+++ b/src/FMpi.cpp
@@ -1,5 +1,5 @@
 // @FUSE_MPI
 
-#include "Utils/FMpi.hpp"
+#include <Utils/FMpi.hpp>
 
 int FMpi::instanceCount = 0;
diff --git a/Src/Utils/FSignalHandler.cpp b/src/FSignalHandler.cpp
similarity index 97%
rename from Src/Utils/FSignalHandler.cpp
rename to src/FSignalHandler.cpp
index 3a17d84f3..3662180b6 100644
--- a/Src/Utils/FSignalHandler.cpp
+++ b/src/FSignalHandler.cpp
@@ -6,8 +6,8 @@
  * the trace is print when a signal is caught.
  */
 
-#include "FGlobal.hpp"
-#include "FSignalHandler.h"
+#include <Utils/FGlobal.hpp>
+#include <Utils/FSignalHandler.h>
 
 
 //< Singleton/Controler of the signal system.
-- 
GitLab