diff options
author | Sven Gothel <[email protected]> | 2021-03-02 04:38:07 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2021-03-02 04:38:07 +0100 |
commit | 8185e020ddc8d62670e4093b4656d3791df28370 (patch) | |
tree | 8a6000494a481b84548e861702a4bf25b706be3e /README.md |
Initial commit - Skeleton Project
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..2a357ae --- /dev/null +++ b/README.md @@ -0,0 +1,89 @@ +Elevator - An Update Process (C++, ...) +======================================== + +Goals +============ +This project aims to provide a secure update process, +elevating your installed firm- and software. + +Supported Platforms +=================== + +C++17 and better. + +Building Binaries +========================= + +This project uses the following git submodules +- [Jau Library](https://jausoft.com/cgit/jaulib.git/about/) +- lala + +Installing build dependencies on Debian (10 or 11): +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.sh} +apt install git +apt install build-essential g++ gcc libc-dev libpthread-stubs0-dev +apt install libunwind8 libunwind-dev +apt install cmake cmake-extras extra-cmake-modules pkg-config +apt install doxygen graphviz +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For a generic build use: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.sh} +CPU_COUNT=`getconf _NPROCESSORS_ONLN` +git clone https://jausoft.com/cgit/elevator.git +cd elevator +mkdir build +cd build +cmake -DBUILDJAVA=ON -DBUILDEXAMPLES=ON -DBUILD_TESTING=ON .. +make -j $CPU_COUNT install test doc +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The install target of the last command will create the include/ and lib/ directories with a copy of +the headers and library objects respectively in your build location. Note that +doing an out-of-source build may cause issues when rebuilding later on. + +Our cmake configure has a number of options, *cmake-gui* or *ccmake* can show +you all the options. The interesting ones are detailed below: + +Changing install path from /usr/local to /usr +~~~~~~~~~~~~~ +-DCMAKE_INSTALL_PREFIX=/usr +~~~~~~~~~~~~~ +Building debug build: +~~~~~~~~~~~~~ +-DDEBUG=ON +~~~~~~~~~~~~~ +Disable stripping native lib even in non debug build: +~~~~~~~~~~~~~ +-DUSE_STRIP=OFF +~~~~~~~~~~~~~ +Building debug and instrumentation (sanitizer) build: +~~~~~~~~~~~~~ +-DDEBUG=ON -DINSTRUMENTATION=ON +~~~~~~~~~~~~~ +Using clang instead of gcc: +~~~~~~~~~~~~~ +-DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ +~~~~~~~~~~~~~ +Cross-compiling on a different system: +~~~~~~~~~~~~~ +-DCMAKE_CXX_FLAGS:STRING=-m32 -march=i586 +-DCMAKE_C_FLAGS:STRING=-m32 -march=i586 +~~~~~~~~~~~~~ +To build documentation run: +~~~~~~~~~~~~~ +make doc +~~~~~~~~~~~~~ + + +Changes +============ + +**1.0.0** + +* First stable release (TODO) + +**0.0.0** + +* Kick-off + |