forked from cburstedde/libsc
-
Notifications
You must be signed in to change notification settings - Fork 0
The "sc" auxiliary library
License
hannesbrandt/libsc
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# The SC Library This is the `README` file for `libsc`. The SC Library provides support for parallel scientific applications. Copyright (C) 2010 The University of Texas System Additional copyright (C) 2011 individual authors `libsc` is written by Carsten Burstedde, Lucas C. Wilcox, Tobin Isaac, and others. `libsc` is free software released under the GNU Lesser General Public Licence version 2.1 (or, at your option, any later version). The official web page for source code and documentation is [p4est.org](https://www.p4est.org/). Please send bug reports and ideas for contribution to `[email protected]`. You are also welcome to post issues on [github](https://www.github.com/cburstedde/libsc.git). Please see the `CONTRIBUTING` file and our [coding standards](doc/coding_standards.txt) for details. ## Building `libsc` The build instructions for `p4est` also apply to standalone builds of `libsc`. ### Autotools The autotools build chain is fully supported. In a fresh checkout, you may run `./bootstrap` to create the `configure` script. Calling `make` will regenerate the tools configuration as needed. Only in rare cases `./bootstrap` will have to be run again. The script depends on existing `autoconf`, `automake`, `libtool` and `pkg-config` tools. Calling `bootstrap` is *not* required for unpacked `tar` archives, or after pulling fresh code. We recommend running `configure` with a relative path from an empty build directory. Try configure --help for options and switches. For development with MPI: cd empty/build/directory ../relative/path/to/configure --enable-mpi --enable-debug \ CFLAGS="-O0 -g -Wall -Wextra -Wno-unused-parameter" make -j8 V=0 To run tests in parallel, run make -j2 check V=0 and to pack a distribution tarball, call `bootstrap` and mkdir -p build && cd build && ../configure make -j3 distcheck V=0 The `V=0` environment variable significantly unclutters console output. So far, we have not made `V=0` the default. ### CMake For faster builds that work on Windows as well as MacOS and Linux, and that are easily usable from other CMake projects, libsc can be built directly, or used via FetchContent or ExternalProject from other CMake projects. MPI and OpenMP are enabled by default, and the default build configuration is Release: cmake -B build cmake --build build --parallel To disable MPI: cmake -B build -Dmpi=no To disable OpenMP: cmake -B build -Dopenmp=no To compile with debug options: cmake -B build -DCMAKE_BUILD_TYPE=Debug Optionally, run self-tests: cd build ctest Optionally, install `libsc` like: cmake -B build -DCMAKE_INSTALL_PREFIX=~/local cmake --install build The optional examples can be built and tested like: cd example cmake -B build cmake --build build cd build ctest Here are a few compilers known to work with `libsc` via CMake: * GCC or Clang (Linux, MacOS, Windows) * Intel Classic `icc` (Linux, MacOS) * Intel NextGen LLVM `icx` (Linux, MacOS, Windows). #### Distribution packages For developers, source and binary distribution packages are generated after building `libsc` by: cpack --config build/CPackSourceConfig.cmake cpack --config build/CPackConfig.cmake which creates files: * `build/package/SC-<version>-Source.zip` containing source code * `build/package/SC-<version>-<platform>.zip` containing binary libraries and executables suitable for computers of same operating system and compatible CPU arch
About
The "sc" auxiliary library
Resources
License
Code of conduct
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- C 90.1%
- M4 5.5%
- CMake 1.8%
- Makefile 1.0%
- Shell 0.8%
- Perl 0.7%
- JavaScript 0.1%