This reduces the amount of libsnark code being compiled by making a special cut-down version of libff with only altbn128 support and the necessities, everything else is templated code and doesn't need a library.
This also reduces the number of duplicate compile flags, the compile flags are fully controlled in the ethsnarks/CMakeLists.txt file.
By default it's built with DEBUG enabled, for this reasons some bugs were caught were previously I was building with debug / assertions turned off.
However, the CMakeLists.txt file could be cleaned up, and things like optimisations and aggressive optimisations added back in for release / non-debug builds.
When Travis is building a tag, I think the optimisations etc. should be turned on.
This reduces the amount of libsnark code being compiled by making a special cut-down version of
libff
with only altbn128 support and the necessities, everything else is templated code and doesn't need a library.This also reduces the number of duplicate compile flags, the compile flags are fully controlled in the
ethsnarks/CMakeLists.txt
file.By default it's built with DEBUG enabled, for this reasons some bugs were caught were previously I was building with debug / assertions turned off.
However, the CMakeLists.txt file could be cleaned up, and things like optimisations and aggressive optimisations added back in for release / non-debug builds.
When Travis is building a tag, I think the optimisations etc. should be turned on.