Include *.tcc files in the list of files to be installed and exclude
tests and examples. The original commit got the CMake syntax wrong,
excluding *.tcc files and including examples.
Since the tests take a while to compile and link, and install depends
on all, users would have to build the tests even if they don't need
them. Create a new "check" target that has the tests in it, and remove
the tests from all.
This change removes prepare-depends.sh and Makefile, replacing it with
a CMake-based build system and git submodules of the needed
dependencies.
Notably, this simplifies the build of libsnark to be just
git clone --recursive git://github.com/scipr-lab/libsnark.git
cd libsnark
mkdir build && cd build && cmake .. && make
Since CMake also supports Ninja (apt-get install ninja-build on Debian
and derivatives), an even faster build could be obtained by using
cmake -GNinja .. && ninja
README.md has been updated to reflect the new build system.
All options supported by the Makefile are also supported by the CMake.
As an added benefit, users of libsnark can embed libsnark as a git
submodule and add it to their CMakeLists.txt, without having to
install it.
This change is a rebase of the earlier patch sent to the scipr-lab
developers, updated for new features introduced since then.
This means users of libsnark no longer need to remember to add -lzm if and only if libsnark was built with CURVE=B128.
'make install' now installs library files selectively (libsnark.* and maybe supercop.a but not libzm.a).
Also tweak formatting formatting of block entry to drop "[0]} and better align with block exit.
Tested only on Linux, might generate compile or (informative) runtime errors on other platforms.
* Use and clean up .d(ependency) files for executables's objects too.
* Rename OBJS and SRCS to LIB_OBJS and LIB_SRCS to clarify these don't include executables.
* Also, add index to libsnark.a and allow it as a target even if doing a non-static build.
- Reflect many of the recent additions and refactoring in libsnark
(at least at the level of brief mentions and pointers).
- More build instructions/hints.
- Minor cleanups.
- Refactor CXXFLAGS so that feature flags and optimization flags can be easily overriden from command line
- Add NO_SUPERCOP=1 option
- Avoid need to manually create ./depinst directory when ./prepare-depends is not needed (i.e., when BN128 and SUPERCOP are not used)
- Fix the flags for static build
- Build executables that need GTest even if we used an existing GTest rather than compiling it
- Minor cleanups and comments