HowTo: Build and test MFEM, syntax for each build-system

MFEM has two build systems: - Makefile. We will refer to it as "original Makefile" - CMake, an out-of-source build system generator, that will generate a build-system in Makefile or another language like Ninja.

The most important difference between the two is that CMake being an out-of-source build system, it will require the creation of a build directory, and all commands will be run from there. The original Makefile system will build the code in source from the root directory.

cd <mfem-root-dir>
make config [...options...]
make all -j 8   # Build everything
make test       # Run the tests
cd <mfem-root-dir>
mkdir build
cd build
cmake [...options...] ..   # Note the ".."
make -j 8                  # Build MFEM
make tests -j 8            # Build unit-tests
make examples -j 8         # Build examples
make miniapps -j 8         # Build miniapps
make test                  # Run the tests
cd <mfem-root-dir>
mkdir build
cd build
cmake [...options...] ..                  # Note the ".."
cmake --build . -j 8                      # Build MFEM
cmake --build . --target tests -j 8       # Build unit-tests
cmake --build . --target examples -j 8    # Build examples
cmake --build . --target miniapps -j 8    # Build miniapps
ctest --output-on-failure -T test         # Run the tests
cd <mfem-root-dir>
mkdir build
cd build
cmake [...options...] -GNinja ..          # Note the ".."
cmake --build . -j 8                      # Build MFEM
cmake --build . --target tests -j 8       # Build unit-tests
cmake --build . --target examples -j 8    # Build examples
cmake --build . --target miniapps -j 8    # Build miniapps
ctest --output-on-failure -T test         # Run the tests