From a55c186a74aff36a4be6803770d6f07ec8534ec6 Mon Sep 17 00:00:00 2001 From: syd Date: Fri, 24 Nov 2017 13:54:17 -0500 Subject: [PATCH] Fix libsnark dependency build. This changes libsnark to build in-place, instead of copying first to a build directory. Previously, modifications made to the original sources wouldn't get rebuilt without a 'make clean' because users would be pointing to the copies. This closes #2689. --- src/Makefile.am | 16 +-- src/snark/.gitignore | 83 +++++------ src/snark/Makefile | 134 +++++++++--------- .../algebra/curves/alt_bn128/alt_bn128_g1.cpp | 0 .../algebra/curves/alt_bn128/alt_bn128_g1.hpp | 0 .../algebra/curves/alt_bn128/alt_bn128_g2.cpp | 0 .../algebra/curves/alt_bn128/alt_bn128_g2.hpp | 0 .../curves/alt_bn128/alt_bn128_init.cpp | 0 .../curves/alt_bn128/alt_bn128_init.hpp | 0 .../curves/alt_bn128/alt_bn128_pairing.cpp | 0 .../curves/alt_bn128/alt_bn128_pairing.hpp | 0 .../algebra/curves/alt_bn128/alt_bn128_pp.cpp | 0 .../algebra/curves/alt_bn128/alt_bn128_pp.hpp | 0 .../algebra/curves/curve_utils.hpp | 0 .../algebra/curves/curve_utils.tcc | 0 .../algebra/curves/public_params.hpp | 0 .../algebra/curves/tests/test_bilinearity.cpp | 0 .../algebra/curves/tests/test_groups.cpp | 0 .../domains/basic_radix2_domain.hpp | 0 .../domains/basic_radix2_domain.tcc | 0 .../domains/basic_radix2_domain_aux.hpp | 0 .../domains/basic_radix2_domain_aux.tcc | 0 .../evaluation_domain/evaluation_domain.hpp | 0 .../evaluation_domain/evaluation_domain.tcc | 0 .../algebra/exponentiation/exponentiation.hpp | 0 .../algebra/exponentiation/exponentiation.tcc | 0 .../algebra/fields/bigint.hpp | 0 .../algebra/fields/bigint.tcc | 0 .../algebra/fields/field_utils.hpp | 0 .../algebra/fields/field_utils.tcc | 0 .../{src => libsnark}/algebra/fields/fp.hpp | 0 .../{src => libsnark}/algebra/fields/fp.tcc | 0 .../algebra/fields/fp12_2over3over2.hpp | 0 .../algebra/fields/fp12_2over3over2.tcc | 0 .../{src => libsnark}/algebra/fields/fp2.hpp | 0 .../{src => libsnark}/algebra/fields/fp2.tcc | 0 .../algebra/fields/fp6_3over2.hpp | 0 .../algebra/fields/fp6_3over2.tcc | 0 .../algebra/fields/fp_aux.tcc | 0 .../algebra/fields/tests/test_bigint.cpp | 0 .../algebra/fields/tests/test_fields.cpp | 0 .../knowledge_commitment.hpp | 0 .../knowledge_commitment.tcc | 0 .../scalar_multiplication/kc_multiexp.hpp | 0 .../scalar_multiplication/kc_multiexp.tcc | 0 .../scalar_multiplication/multiexp.hpp | 0 .../scalar_multiplication/multiexp.tcc | 0 .../algebra/scalar_multiplication/wnaf.hpp | 0 .../algebra/scalar_multiplication/wnaf.tcc | 0 .../common/assert_except.hpp | 0 .../data_structures/accumulation_vector.hpp | 0 .../data_structures/accumulation_vector.tcc | 0 .../common/data_structures/merkle_tree.hpp | 0 .../common/data_structures/merkle_tree.tcc | 0 .../common/data_structures/sparse_vector.hpp | 0 .../common/data_structures/sparse_vector.tcc | 0 .../common/default_types/ec_pp.hpp | 0 .../default_types/r1cs_ppzksnark_pp.hpp | 0 .../{src => libsnark}/common/profiling.cpp | 0 .../{src => libsnark}/common/profiling.hpp | 0 .../common/serialization.hpp | 0 .../common/serialization.tcc | 0 .../common/template_utils.hpp | 0 src/snark/{src => libsnark}/common/utils.cpp | 0 src/snark/{src => libsnark}/common/utils.hpp | 0 src/snark/{src => libsnark}/common/utils.tcc | 0 .../gadgetlib1/constraint_profiling.cpp | 0 .../gadgetlib1/constraint_profiling.hpp | 0 .../gadgetlib1/examples/simple_example.hpp | 0 .../gadgetlib1/examples/simple_example.tcc | 0 .../{src => libsnark}/gadgetlib1/gadget.hpp | 0 .../{src => libsnark}/gadgetlib1/gadget.tcc | 0 .../gadgetlib1/gadgets/basic_gadgets.hpp | 0 .../gadgetlib1/gadgets/basic_gadgets.tcc | 0 .../gadgetlib1/gadgets/gadget_from_r1cs.hpp | 0 .../gadgetlib1/gadgets/gadget_from_r1cs.tcc | 0 .../gadgets/hashes/digest_selector_gadget.hpp | 0 .../gadgets/hashes/digest_selector_gadget.tcc | 0 .../gadgetlib1/gadgets/hashes/hash_io.hpp | 0 .../gadgetlib1/gadgets/hashes/hash_io.tcc | 0 .../gadgets/hashes/sha256/sha256_aux.hpp | 0 .../gadgets/hashes/sha256/sha256_aux.tcc | 0 .../hashes/sha256/sha256_components.hpp | 0 .../hashes/sha256/sha256_components.tcc | 0 .../gadgets/hashes/sha256/sha256_gadget.hpp | 0 .../gadgets/hashes/sha256/sha256_gadget.tcc | 0 .../tests/generate_sha256_gadget_tests.py | 0 .../hashes/sha256/tests/pypy_sha256.py | 0 .../sha256/tests/test_sha256_gadget.cpp | 0 .../merkle_authentication_path_variable.hpp | 0 .../merkle_authentication_path_variable.tcc | 0 .../merkle_tree_check_read_gadget.hpp | 0 .../merkle_tree_check_read_gadget.tcc | 0 .../merkle_tree_check_update_gadget.hpp | 0 .../merkle_tree_check_update_gadget.tcc | 0 .../tests/test_merkle_tree_gadgets.cpp | 0 .../gadgetlib1/pb_variable.hpp | 0 .../gadgetlib1/pb_variable.tcc | 0 .../gadgetlib1/protoboard.hpp | 0 .../gadgetlib1/protoboard.tcc | 0 src/snark/{src => libsnark}/gtests.cpp | 0 .../reductions/r1cs_to_qap/r1cs_to_qap.hpp | 0 .../reductions/r1cs_to_qap/r1cs_to_qap.tcc | 0 .../relations/arithmetic_programs/qap/qap.hpp | 0 .../relations/arithmetic_programs/qap/qap.tcc | 0 .../qap/tests/test_qap.cpp | 0 .../r1cs/examples/r1cs_examples.hpp | 0 .../r1cs/examples/r1cs_examples.tcc | 0 .../r1cs/r1cs.hpp | 0 .../r1cs/r1cs.tcc | 0 .../{src => libsnark}/relations/variable.hpp | 0 .../{src => libsnark}/relations/variable.tcc | 0 .../examples/run_r1cs_ppzksnark.hpp | 0 .../examples/run_r1cs_ppzksnark.tcc | 0 .../profiling/profile_r1cs_ppzksnark.cpp | 0 .../r1cs_ppzksnark/r1cs_ppzksnark.hpp | 0 .../r1cs_ppzksnark/r1cs_ppzksnark.tcc | 0 .../r1cs_ppzksnark/r1cs_ppzksnark_params.hpp | 0 .../tests/test_r1cs_ppzksnark.cpp | 0 119 files changed, 114 insertions(+), 119 deletions(-) rename src/snark/{src => libsnark}/algebra/curves/alt_bn128/alt_bn128_g1.cpp (100%) rename src/snark/{src => libsnark}/algebra/curves/alt_bn128/alt_bn128_g1.hpp (100%) rename src/snark/{src => libsnark}/algebra/curves/alt_bn128/alt_bn128_g2.cpp (100%) rename src/snark/{src => libsnark}/algebra/curves/alt_bn128/alt_bn128_g2.hpp (100%) rename src/snark/{src => libsnark}/algebra/curves/alt_bn128/alt_bn128_init.cpp (100%) rename src/snark/{src => libsnark}/algebra/curves/alt_bn128/alt_bn128_init.hpp (100%) rename src/snark/{src => libsnark}/algebra/curves/alt_bn128/alt_bn128_pairing.cpp (100%) rename src/snark/{src => libsnark}/algebra/curves/alt_bn128/alt_bn128_pairing.hpp (100%) rename src/snark/{src => libsnark}/algebra/curves/alt_bn128/alt_bn128_pp.cpp (100%) rename src/snark/{src => libsnark}/algebra/curves/alt_bn128/alt_bn128_pp.hpp (100%) rename src/snark/{src => libsnark}/algebra/curves/curve_utils.hpp (100%) rename src/snark/{src => libsnark}/algebra/curves/curve_utils.tcc (100%) rename src/snark/{src => libsnark}/algebra/curves/public_params.hpp (100%) rename src/snark/{src => libsnark}/algebra/curves/tests/test_bilinearity.cpp (100%) rename src/snark/{src => libsnark}/algebra/curves/tests/test_groups.cpp (100%) rename src/snark/{src => libsnark}/algebra/evaluation_domain/domains/basic_radix2_domain.hpp (100%) rename src/snark/{src => libsnark}/algebra/evaluation_domain/domains/basic_radix2_domain.tcc (100%) rename src/snark/{src => libsnark}/algebra/evaluation_domain/domains/basic_radix2_domain_aux.hpp (100%) rename src/snark/{src => libsnark}/algebra/evaluation_domain/domains/basic_radix2_domain_aux.tcc (100%) rename src/snark/{src => libsnark}/algebra/evaluation_domain/evaluation_domain.hpp (100%) rename src/snark/{src => libsnark}/algebra/evaluation_domain/evaluation_domain.tcc (100%) rename src/snark/{src => libsnark}/algebra/exponentiation/exponentiation.hpp (100%) rename src/snark/{src => libsnark}/algebra/exponentiation/exponentiation.tcc (100%) rename src/snark/{src => libsnark}/algebra/fields/bigint.hpp (100%) rename src/snark/{src => libsnark}/algebra/fields/bigint.tcc (100%) rename src/snark/{src => libsnark}/algebra/fields/field_utils.hpp (100%) rename src/snark/{src => libsnark}/algebra/fields/field_utils.tcc (100%) rename src/snark/{src => libsnark}/algebra/fields/fp.hpp (100%) rename src/snark/{src => libsnark}/algebra/fields/fp.tcc (100%) rename src/snark/{src => libsnark}/algebra/fields/fp12_2over3over2.hpp (100%) rename src/snark/{src => libsnark}/algebra/fields/fp12_2over3over2.tcc (100%) rename src/snark/{src => libsnark}/algebra/fields/fp2.hpp (100%) rename src/snark/{src => libsnark}/algebra/fields/fp2.tcc (100%) rename src/snark/{src => libsnark}/algebra/fields/fp6_3over2.hpp (100%) rename src/snark/{src => libsnark}/algebra/fields/fp6_3over2.tcc (100%) rename src/snark/{src => libsnark}/algebra/fields/fp_aux.tcc (100%) rename src/snark/{src => libsnark}/algebra/fields/tests/test_bigint.cpp (100%) rename src/snark/{src => libsnark}/algebra/fields/tests/test_fields.cpp (100%) rename src/snark/{src => libsnark}/algebra/knowledge_commitment/knowledge_commitment.hpp (100%) rename src/snark/{src => libsnark}/algebra/knowledge_commitment/knowledge_commitment.tcc (100%) rename src/snark/{src => libsnark}/algebra/scalar_multiplication/kc_multiexp.hpp (100%) rename src/snark/{src => libsnark}/algebra/scalar_multiplication/kc_multiexp.tcc (100%) rename src/snark/{src => libsnark}/algebra/scalar_multiplication/multiexp.hpp (100%) rename src/snark/{src => libsnark}/algebra/scalar_multiplication/multiexp.tcc (100%) rename src/snark/{src => libsnark}/algebra/scalar_multiplication/wnaf.hpp (100%) rename src/snark/{src => libsnark}/algebra/scalar_multiplication/wnaf.tcc (100%) rename src/snark/{src => libsnark}/common/assert_except.hpp (100%) rename src/snark/{src => libsnark}/common/data_structures/accumulation_vector.hpp (100%) rename src/snark/{src => libsnark}/common/data_structures/accumulation_vector.tcc (100%) rename src/snark/{src => libsnark}/common/data_structures/merkle_tree.hpp (100%) rename src/snark/{src => libsnark}/common/data_structures/merkle_tree.tcc (100%) rename src/snark/{src => libsnark}/common/data_structures/sparse_vector.hpp (100%) rename src/snark/{src => libsnark}/common/data_structures/sparse_vector.tcc (100%) rename src/snark/{src => libsnark}/common/default_types/ec_pp.hpp (100%) rename src/snark/{src => libsnark}/common/default_types/r1cs_ppzksnark_pp.hpp (100%) rename src/snark/{src => libsnark}/common/profiling.cpp (100%) rename src/snark/{src => libsnark}/common/profiling.hpp (100%) rename src/snark/{src => libsnark}/common/serialization.hpp (100%) rename src/snark/{src => libsnark}/common/serialization.tcc (100%) rename src/snark/{src => libsnark}/common/template_utils.hpp (100%) rename src/snark/{src => libsnark}/common/utils.cpp (100%) rename src/snark/{src => libsnark}/common/utils.hpp (100%) rename src/snark/{src => libsnark}/common/utils.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/constraint_profiling.cpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/constraint_profiling.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/examples/simple_example.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/examples/simple_example.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadget.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadget.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/basic_gadgets.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/basic_gadgets.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/gadget_from_r1cs.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/gadget_from_r1cs.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/digest_selector_gadget.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/digest_selector_gadget.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/hash_io.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/hash_io.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/sha256/sha256_aux.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/sha256/sha256_aux.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/sha256/sha256_components.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/sha256/sha256_components.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/sha256/sha256_gadget.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/sha256/sha256_gadget.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/sha256/tests/generate_sha256_gadget_tests.py (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/sha256/tests/pypy_sha256.py (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/hashes/sha256/tests/test_sha256_gadget.cpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_read_gadget.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_read_gadget.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_update_gadget.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_update_gadget.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/gadgets/merkle_tree/tests/test_merkle_tree_gadgets.cpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/pb_variable.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/pb_variable.tcc (100%) rename src/snark/{src => libsnark}/gadgetlib1/protoboard.hpp (100%) rename src/snark/{src => libsnark}/gadgetlib1/protoboard.tcc (100%) rename src/snark/{src => libsnark}/gtests.cpp (100%) rename src/snark/{src => libsnark}/reductions/r1cs_to_qap/r1cs_to_qap.hpp (100%) rename src/snark/{src => libsnark}/reductions/r1cs_to_qap/r1cs_to_qap.tcc (100%) rename src/snark/{src => libsnark}/relations/arithmetic_programs/qap/qap.hpp (100%) rename src/snark/{src => libsnark}/relations/arithmetic_programs/qap/qap.tcc (100%) rename src/snark/{src => libsnark}/relations/arithmetic_programs/qap/tests/test_qap.cpp (100%) rename src/snark/{src => libsnark}/relations/constraint_satisfaction_problems/r1cs/examples/r1cs_examples.hpp (100%) rename src/snark/{src => libsnark}/relations/constraint_satisfaction_problems/r1cs/examples/r1cs_examples.tcc (100%) rename src/snark/{src => libsnark}/relations/constraint_satisfaction_problems/r1cs/r1cs.hpp (100%) rename src/snark/{src => libsnark}/relations/constraint_satisfaction_problems/r1cs/r1cs.tcc (100%) rename src/snark/{src => libsnark}/relations/variable.hpp (100%) rename src/snark/{src => libsnark}/relations/variable.tcc (100%) rename src/snark/{src => libsnark}/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.hpp (100%) rename src/snark/{src => libsnark}/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.tcc (100%) rename src/snark/{src => libsnark}/zk_proof_systems/ppzksnark/r1cs_ppzksnark/profiling/profile_r1cs_ppzksnark.cpp (100%) rename src/snark/{src => libsnark}/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.hpp (100%) rename src/snark/{src => libsnark}/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.tcc (100%) rename src/snark/{src => libsnark}/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark_params.hpp (100%) rename src/snark/{src => libsnark}/zk_proof_systems/ppzksnark/r1cs_ppzksnark/tests/test_r1cs_ppzksnark.cpp (100%) diff --git a/src/Makefile.am b/src/Makefile.am index 25038c1ee..44b4d8281 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -23,8 +23,8 @@ BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS) BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include -BITCOIN_INCLUDES += -I$(srcdir)/snark/build/include -BITCOIN_INCLUDES += -I$(srcdir)/snark/build/include/libsnark +BITCOIN_INCLUDES += -I$(srcdir)/snark +BITCOIN_INCLUDES += -I$(srcdir)/snark/libsnark BITCOIN_INCLUDES += -I$(srcdir)/univalue/include LIBBITCOIN_SERVER=libbitcoin_server.a @@ -34,19 +34,13 @@ LIBBITCOIN_CLI=libbitcoin_cli.a LIBBITCOIN_UTIL=libbitcoin_util.a LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a LIBSECP256K1=secp256k1/libsecp256k1.la -LIBSNARK=snark/build/lib/libsnark.a +LIBSNARK=snark/libsnark.a LIBUNIVALUE=univalue/libunivalue.la LIBZCASH=libzcash.a $(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*) $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F) -# A phony target is included here to ensure libsnark is built first, so that its -# header files are collated for use in later build steps. -# See https://stackoverflow.com/a/10726725 --include collate-libsnark -collate-libsnark: $(LIBSNARK) - LIBSNARK_CXXFLAGS = -fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1 -fstack-protector-all LIBSNARK_CONFIG_FLAGS = CURVE=ALT_BN128 NO_PROCPS=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT NO_COPY_DEPINST=1 NO_COMPILE_LIBGTEST=1 if HAVE_OPENMP @@ -54,10 +48,10 @@ LIBSNARK_CONFIG_FLAGS += MULTICORE=1 endif $(LIBSNARK): $(wildcard snark/src/*) - $(AM_V_at) CXXFLAGS="$(LIBSNARK_CXXFLAGS)" $(MAKE) $(AM_MAKEFLAGS) -C snark/ install PREFIX=$(srcdir)/build DEPINST="$(LIBSNARK_DEPINST)" $(LIBSNARK_CONFIG_FLAGS) OPTFLAGS="-O2 -march=x86-64" + $(AM_V_at) CXXFLAGS="$(LIBSNARK_CXXFLAGS)" $(MAKE) $(AM_MAKEFLAGS) -C snark/ DEPINST="$(LIBSNARK_DEPINST)" $(LIBSNARK_CONFIG_FLAGS) OPTFLAGS="-O2 -march=x86-64" libsnark-tests: $(wildcard snark/src/*) - $(AM_V_at) CXXFLAGS="$(LIBSNARK_CXXFLAGS)" $(MAKE) $(AM_MAKEFLAGS) -C snark/ check PREFIX=$(srcdir)/build DEPINST="$(LIBSNARK_DEPINST)" $(LIBSNARK_CONFIG_FLAGS) OPTFLAGS="-O2 -march=x86-64" + $(AM_V_at) CXXFLAGS="$(LIBSNARK_CXXFLAGS)" $(MAKE) $(AM_MAKEFLAGS) -C snark/ check DEPINST="$(LIBSNARK_DEPINST)" $(LIBSNARK_CONFIG_FLAGS) OPTFLAGS="-O2 -march=x86-64" $(LIBUNIVALUE): $(wildcard univalue/lib/*) $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C univalue/ diff --git a/src/snark/.gitignore b/src/snark/.gitignore index bb48e1aba..ea2a20f44 100644 --- a/src/snark/.gitignore +++ b/src/snark/.gitignore @@ -2,49 +2,50 @@ *.a *.so *.d +libsnark/gtests depinst/ depsrc/ README.html doxygen/ -src/gtests -src/gadgetlib2/examples/tutorial -src/gadgetlib2/tests/gadgetlib2_test +libsnark/gtests +libsnark/gadgetlib2/examples/tutorial +libsnark/gadgetlib2/tests/gadgetlib2_test -src/algebra/curves/tests/test_bilinearity -src/algebra/curves/tests/test_groups -src/algebra/fields/tests/test_fields -src/common/routing_algorithms/profiling/profile_routing_algorithms -src/common/routing_algorithms/tests/test_routing_algorithms -src/gadgetlib1/gadgets/cpu_checkers/fooram/examples/test_fooram -src/gadgetlib1/gadgets/hashes/knapsack/tests/test_knapsack_gadget -src/gadgetlib1/gadgets/hashes/sha256/tests/test_sha256_gadget -src/gadgetlib1/gadgets/merkle_tree/tests/test_merkle_tree_gadgets -src/gadgetlib1/gadgets/routing/profiling/profile_routing_gadgets -src/gadgetlib1/gadgets/set_commitment/tests/test_set_commitment_gadget -src/gadgetlib1/gadgets/verifiers/tests/test_r1cs_ppzksnark_verifier_gadget -src/reductions/ram_to_r1cs/examples/demo_arithmetization -src/relations/arithmetic_programs/qap/tests/test_qap -src/relations/arithmetic_programs/ssp/tests/test_ssp -src/zk_proof_systems/pcd/r1cs_pcd/r1cs_mp_ppzkpcd/profiling/profile_r1cs_mp_ppzkpcd -src/zk_proof_systems/pcd/r1cs_pcd/r1cs_mp_ppzkpcd/tests/test_r1cs_mp_ppzkpcd -src/zk_proof_systems/pcd/r1cs_pcd/r1cs_sp_ppzkpcd/profiling/profile_r1cs_sp_ppzkpcd -src/zk_proof_systems/pcd/r1cs_pcd/r1cs_sp_ppzkpcd/tests/test_r1cs_sp_ppzkpcd -src/zk_proof_systems/ppzkadsnark/r1cs_ppzkadsnark/examples/demo_r1cs_ppzkadsnark -src/zk_proof_systems/ppzksnark/bacs_ppzksnark/profiling/profile_bacs_ppzksnark -src/zk_proof_systems/ppzksnark/bacs_ppzksnark/tests/test_bacs_ppzksnark -src/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/profiling/profile_r1cs_gg_ppzksnark -src/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/tests/test_r1cs_gg_ppzksnark -src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/profiling/profile_r1cs_ppzksnark -src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/tests/test_r1cs_ppzksnark -src/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark -src/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_generator -src/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_prover -src/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_verifier -src/zk_proof_systems/ppzksnark/ram_ppzksnark/profiling/profile_ram_ppzksnark -src/zk_proof_systems/ppzksnark/ram_ppzksnark/tests/test_ram_ppzksnark -src/zk_proof_systems/ppzksnark/tbcs_ppzksnark/profiling/profile_tbcs_ppzksnark -src/zk_proof_systems/ppzksnark/tbcs_ppzksnark/tests/test_tbcs_ppzksnark -src/zk_proof_systems/ppzksnark/uscs_ppzksnark/profiling/profile_uscs_ppzksnark -src/zk_proof_systems/ppzksnark/uscs_ppzksnark/tests/test_uscs_ppzksnark -src/zk_proof_systems/zksnark/ram_zksnark/profiling/profile_ram_zksnark -src/zk_proof_systems/zksnark/ram_zksnark/tests/test_ram_zksnark +libsnark/algebra/curves/tests/test_bilinearity +libsnark/algebra/curves/tests/test_groups +libsnark/algebra/fields/tests/test_fields +libsnark/common/routing_algorithms/profiling/profile_routing_algorithms +libsnark/common/routing_algorithms/tests/test_routing_algorithms +libsnark/gadgetlib1/gadgets/cpu_checkers/fooram/examples/test_fooram +libsnark/gadgetlib1/gadgets/hashes/knapsack/tests/test_knapsack_gadget +libsnark/gadgetlib1/gadgets/hashes/sha256/tests/test_sha256_gadget +libsnark/gadgetlib1/gadgets/merkle_tree/tests/test_merkle_tree_gadgets +libsnark/gadgetlib1/gadgets/routing/profiling/profile_routing_gadgets +libsnark/gadgetlib1/gadgets/set_commitment/tests/test_set_commitment_gadget +libsnark/gadgetlib1/gadgets/verifiers/tests/test_r1cs_ppzksnark_verifier_gadget +libsnark/reductions/ram_to_r1cs/examples/demo_arithmetization +libsnark/relations/arithmetic_programs/qap/tests/test_qap +libsnark/relations/arithmetic_programs/ssp/tests/test_ssp +libsnark/zk_proof_systems/pcd/r1cs_pcd/r1cs_mp_ppzkpcd/profiling/profile_r1cs_mp_ppzkpcd +libsnark/zk_proof_systems/pcd/r1cs_pcd/r1cs_mp_ppzkpcd/tests/test_r1cs_mp_ppzkpcd +libsnark/zk_proof_systems/pcd/r1cs_pcd/r1cs_sp_ppzkpcd/profiling/profile_r1cs_sp_ppzkpcd +libsnark/zk_proof_systems/pcd/r1cs_pcd/r1cs_sp_ppzkpcd/tests/test_r1cs_sp_ppzkpcd +libsnark/zk_proof_systems/ppzkadsnark/r1cs_ppzkadsnark/examples/demo_r1cs_ppzkadsnark +libsnark/zk_proof_systems/ppzksnark/bacs_ppzksnark/profiling/profile_bacs_ppzksnark +libsnark/zk_proof_systems/ppzksnark/bacs_ppzksnark/tests/test_bacs_ppzksnark +libsnark/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/profiling/profile_r1cs_gg_ppzksnark +libsnark/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/tests/test_r1cs_gg_ppzksnark +libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/profiling/profile_r1cs_ppzksnark +libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/tests/test_r1cs_ppzksnark +libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark +libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_generator +libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_prover +libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_verifier +libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/profiling/profile_ram_ppzksnark +libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/tests/test_ram_ppzksnark +libsnark/zk_proof_systems/ppzksnark/tbcs_ppzksnark/profiling/profile_tbcs_ppzksnark +libsnark/zk_proof_systems/ppzksnark/tbcs_ppzksnark/tests/test_tbcs_ppzksnark +libsnark/zk_proof_systems/ppzksnark/uscs_ppzksnark/profiling/profile_uscs_ppzksnark +libsnark/zk_proof_systems/ppzksnark/uscs_ppzksnark/tests/test_uscs_ppzksnark +libsnark/zk_proof_systems/zksnark/ram_zksnark/profiling/profile_ram_zksnark +libsnark/zk_proof_systems/zksnark/ram_zksnark/tests/test_ram_zksnark diff --git a/src/snark/Makefile b/src/snark/Makefile index 1583facf7..b865f992f 100644 --- a/src/snark/Makefile +++ b/src/snark/Makefile @@ -17,7 +17,7 @@ CXXFLAGS += -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wno-comment -Wfatal- DEPSRC = depsrc DEPINST = depinst -CXXFLAGS += -I$(DEPINST)/include -Isrc +CXXFLAGS += -I$(DEPINST)/include -Ilibsnark LDFLAGS += -L$(DEPINST)/lib -Wl,-rpath,$(DEPINST)/lib LDLIBS += -lgmpxx -lgmp -lboost_program_options-mt -lsodium # List of .a files to include within libsnark.a and libsnark.so: @@ -44,23 +44,23 @@ ifneq ($(NO_SUPERCOP),1) endif LIB_SRCS = \ - src/algebra/curves/alt_bn128/alt_bn128_g1.cpp \ - src/algebra/curves/alt_bn128/alt_bn128_g2.cpp \ - src/algebra/curves/alt_bn128/alt_bn128_init.cpp \ - src/algebra/curves/alt_bn128/alt_bn128_pairing.cpp \ - src/algebra/curves/alt_bn128/alt_bn128_pp.cpp \ - src/common/profiling.cpp \ - src/common/utils.cpp \ - src/gadgetlib1/constraint_profiling.cpp \ + libsnark/algebra/curves/alt_bn128/alt_bn128_g1.cpp \ + libsnark/algebra/curves/alt_bn128/alt_bn128_g2.cpp \ + libsnark/algebra/curves/alt_bn128/alt_bn128_init.cpp \ + libsnark/algebra/curves/alt_bn128/alt_bn128_pairing.cpp \ + libsnark/algebra/curves/alt_bn128/alt_bn128_pp.cpp \ + libsnark/common/profiling.cpp \ + libsnark/common/utils.cpp \ + libsnark/gadgetlib1/constraint_profiling.cpp \ ifeq ($(CURVE),BN128) LIB_SRCS += \ - src/algebra/curves/bn128/bn128_g1.cpp \ - src/algebra/curves/bn128/bn128_g2.cpp \ - src/algebra/curves/bn128/bn128_gt.cpp \ - src/algebra/curves/bn128/bn128_init.cpp \ - src/algebra/curves/bn128/bn128_pairing.cpp \ - src/algebra/curves/bn128/bn128_pp.cpp + libsnark/algebra/curves/bn128/bn128_g1.cpp \ + libsnark/algebra/curves/bn128/bn128_g2.cpp \ + libsnark/algebra/curves/bn128/bn128_gt.cpp \ + libsnark/algebra/curves/bn128/bn128_init.cpp \ + libsnark/algebra/curves/bn128/bn128_pairing.cpp \ + libsnark/algebra/curves/bn128/bn128_pp.cpp CXXFLAGS += -DBN_SUPPORT_SNARK AR_LIBS += $(DEPINST)/lib/libzm.a @@ -68,56 +68,56 @@ endif # FIXME: most of these are broken due to removed code. DISABLED_EXECUTABLES = \ - src/common/routing_algorithms/profiling/profile_routing_algorithms \ - src/common/routing_algorithms/tests/test_routing_algorithms \ - src/gadgetlib1/gadgets/cpu_checkers/fooram/examples/test_fooram \ - src/gadgetlib1/gadgets/hashes/knapsack/tests/test_knapsack_gadget \ - src/gadgetlib1/gadgets/routing/profiling/profile_routing_gadgets \ - src/gadgetlib1/gadgets/set_commitment/tests/test_set_commitment_gadget \ - src/gadgetlib1/gadgets/verifiers/tests/test_r1cs_ppzksnark_verifier_gadget \ - src/reductions/ram_to_r1cs/examples/demo_arithmetization \ - src/relations/arithmetic_programs/ssp/tests/test_ssp \ - src/zk_proof_systems/pcd/r1cs_pcd/r1cs_mp_ppzkpcd/profiling/profile_r1cs_mp_ppzkpcd \ - src/zk_proof_systems/pcd/r1cs_pcd/r1cs_mp_ppzkpcd/tests/test_r1cs_mp_ppzkpcd \ - src/zk_proof_systems/pcd/r1cs_pcd/r1cs_sp_ppzkpcd/profiling/profile_r1cs_sp_ppzkpcd \ - src/zk_proof_systems/pcd/r1cs_pcd/r1cs_sp_ppzkpcd/tests/test_r1cs_sp_ppzkpcd \ - src/zk_proof_systems/ppzksnark/bacs_ppzksnark/profiling/profile_bacs_ppzksnark \ - src/zk_proof_systems/ppzksnark/bacs_ppzksnark/tests/test_bacs_ppzksnark \ - src/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/profiling/profile_r1cs_gg_ppzksnark \ - src/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/tests/test_r1cs_gg_ppzksnark \ - src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/profiling/profile_r1cs_ppzksnark \ - src/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark \ - src/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_generator \ - src/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_prover \ - src/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_verifier \ - src/zk_proof_systems/ppzksnark/ram_ppzksnark/profiling/profile_ram_ppzksnark \ - src/zk_proof_systems/ppzksnark/ram_ppzksnark/tests/test_ram_ppzksnark \ - src/zk_proof_systems/ppzksnark/tbcs_ppzksnark/profiling/profile_tbcs_ppzksnark \ - src/zk_proof_systems/ppzksnark/tbcs_ppzksnark/tests/test_tbcs_ppzksnark \ - src/zk_proof_systems/ppzksnark/uscs_ppzksnark/profiling/profile_uscs_ppzksnark \ - src/zk_proof_systems/ppzksnark/uscs_ppzksnark/tests/test_uscs_ppzksnark \ - src/zk_proof_systems/zksnark/ram_zksnark/profiling/profile_ram_zksnark \ - src/zk_proof_systems/zksnark/ram_zksnark/tests/test_ram_zksnark + libsnark/common/routing_algorithms/profiling/profile_routing_algorithms \ + libsnark/common/routing_algorithms/tests/test_routing_algorithms \ + libsnark/gadgetlib1/gadgets/cpu_checkers/fooram/examples/test_fooram \ + libsnark/gadgetlib1/gadgets/hashes/knapsack/tests/test_knapsack_gadget \ + libsnark/gadgetlib1/gadgets/routing/profiling/profile_routing_gadgets \ + libsnark/gadgetlib1/gadgets/set_commitment/tests/test_set_commitment_gadget \ + libsnark/gadgetlib1/gadgets/verifiers/tests/test_r1cs_ppzksnark_verifier_gadget \ + libsnark/reductions/ram_to_r1cs/examples/demo_arithmetization \ + libsnark/relations/arithmetic_programs/ssp/tests/test_ssp \ + libsnark/zk_proof_systems/pcd/r1cs_pcd/r1cs_mp_ppzkpcd/profiling/profile_r1cs_mp_ppzkpcd \ + libsnark/zk_proof_systems/pcd/r1cs_pcd/r1cs_mp_ppzkpcd/tests/test_r1cs_mp_ppzkpcd \ + libsnark/zk_proof_systems/pcd/r1cs_pcd/r1cs_sp_ppzkpcd/profiling/profile_r1cs_sp_ppzkpcd \ + libsnark/zk_proof_systems/pcd/r1cs_pcd/r1cs_sp_ppzkpcd/tests/test_r1cs_sp_ppzkpcd \ + libsnark/zk_proof_systems/ppzksnark/bacs_ppzksnark/profiling/profile_bacs_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/bacs_ppzksnark/tests/test_bacs_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/profiling/profile_r1cs_gg_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/tests/test_r1cs_gg_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/profiling/profile_r1cs_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_generator \ + libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_prover \ + libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/examples/demo_ram_ppzksnark_verifier \ + libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/profiling/profile_ram_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/tests/test_ram_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/tbcs_ppzksnark/profiling/profile_tbcs_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/tbcs_ppzksnark/tests/test_tbcs_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/uscs_ppzksnark/profiling/profile_uscs_ppzksnark \ + libsnark/zk_proof_systems/ppzksnark/uscs_ppzksnark/tests/test_uscs_ppzksnark \ + libsnark/zk_proof_systems/zksnark/ram_zksnark/profiling/profile_ram_zksnark \ + libsnark/zk_proof_systems/zksnark/ram_zksnark/tests/test_ram_zksnark EXECUTABLES = EXECUTABLES_WITH_GTEST = EXECUTABLES_WITH_SUPERCOP = \ - src/zk_proof_systems/ppzkadsnark/r1cs_ppzkadsnark/examples/demo_r1cs_ppzkadsnark + libsnark/zk_proof_systems/ppzkadsnark/r1cs_ppzkadsnark/examples/demo_r1cs_ppzkadsnark -GTEST_TESTS = src/gtests +GTEST_TESTS = libsnark/gtests GTEST_SRCS = \ - src/algebra/curves/tests/test_bilinearity.cpp \ - src/algebra/curves/tests/test_groups.cpp \ - src/algebra/fields/tests/test_bigint.cpp \ - src/algebra/fields/tests/test_fields.cpp \ - src/gadgetlib1/gadgets/hashes/sha256/tests/test_sha256_gadget.cpp \ - src/gadgetlib1/gadgets/merkle_tree/tests/test_merkle_tree_gadgets.cpp \ - src/relations/arithmetic_programs/qap/tests/test_qap.cpp \ - src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/tests/test_r1cs_ppzksnark.cpp \ - src/gtests.cpp + libsnark/algebra/curves/tests/test_bilinearity.cpp \ + libsnark/algebra/curves/tests/test_groups.cpp \ + libsnark/algebra/fields/tests/test_bigint.cpp \ + libsnark/algebra/fields/tests/test_fields.cpp \ + libsnark/gadgetlib1/gadgets/hashes/sha256/tests/test_sha256_gadget.cpp \ + libsnark/gadgetlib1/gadgets/merkle_tree/tests/test_merkle_tree_gadgets.cpp \ + libsnark/relations/arithmetic_programs/qap/tests/test_qap.cpp \ + libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/tests/test_r1cs_ppzksnark.cpp \ + libsnark/gtests.cpp DOCS = README.html @@ -192,7 +192,7 @@ $(LIB_OBJS) $(if $(NO_GTEST),,$(GTEST_OBJS)) $(EXEC_OBJS): %.o: %.cpp LIBGTEST_A = $(DEPINST)/lib/libgtest.a -$(LIBGTEST_A): $(GTESTDIR)/src/gtest-all.cc $(DEPINST_EXISTS) +$(LIBGTEST_A): $(GTESTDIR)/libsnark/gtest-all.cc $(DEPINST_EXISTS) $(CXX) -o $(DEPINST)/lib/gtest-all.o -I $(GTESTDIR) -c -isystem $(GTESTDIR)/include $< $(CXXFLAGS) $(AR) -rv $(LIBGTEST_A) $(DEPINST)/lib/gtest-all.o @@ -205,13 +205,13 @@ $(LIBSNARK_A): $(LIB_OBJS) $(AR_LIBS) libsnark.so: $(LIBSNARK_A) $(DEPINST_EXISTS) $(CXX) -o $@ --shared -Wl,--whole-archive $(LIBSNARK_A) $(CXXFLAGS) $(LDFLAGS) -Wl,--no-whole-archive $(LDLIBS) -src/gadgetlib2/tests/gadgetlib2_test: \ - src/gadgetlib2/tests/adapters_UTEST.cpp \ - src/gadgetlib2/tests/constraint_UTEST.cpp \ - src/gadgetlib2/tests/gadget_UTEST.cpp \ - src/gadgetlib2/tests/integration_UTEST.cpp \ - src/gadgetlib2/tests/protoboard_UTEST.cpp \ - src/gadgetlib2/tests/variable_UTEST.cpp +libsnark/gadgetlib2/tests/gadgetlib2_test: \ + libsnark/gadgetlib2/tests/adapters_UTEST.cpp \ + libsnark/gadgetlib2/tests/constraint_UTEST.cpp \ + libsnark/gadgetlib2/tests/gadget_UTEST.cpp \ + libsnark/gadgetlib2/tests/integration_UTEST.cpp \ + libsnark/gadgetlib2/tests/protoboard_UTEST.cpp \ + libsnark/gadgetlib2/tests/variable_UTEST.cpp $(EXECUTABLES): %: %.o $(LIBSNARK_A) $(DEPINST_EXISTS) $(CXX) -o $@ $@.o $(LIBSNARK_A) $(CXXFLAGS) $(LDFLAGS) $(LDLIBS) @@ -243,10 +243,10 @@ ifeq ($(PREFIX),) install: $(error Please provide PREFIX. E.g. make install PREFIX=/usr) else -HEADERS_SRC=$(shell find src -name '*.hpp' -o -name '*.tcc') -HEADERS_DEST=$(patsubst src/%,$(PREFIX)/include/libsnark/%,$(HEADERS_SRC)) +HEADERS_SRC=$(shell find libsnark -name '*.hpp' -o -name '*.tcc') +HEADERS_DEST=$(patsubst libsnark/%,$(PREFIX)/include/libsnark/%,$(HEADERS_SRC)) -$(HEADERS_DEST): $(PREFIX)/include/libsnark/%: src/% +$(HEADERS_DEST): $(PREFIX)/include/libsnark/%: libsnark/% mkdir -p $(shell dirname $@) cp $< $@ diff --git a/src/snark/src/algebra/curves/alt_bn128/alt_bn128_g1.cpp b/src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_g1.cpp similarity index 100% rename from src/snark/src/algebra/curves/alt_bn128/alt_bn128_g1.cpp rename to src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_g1.cpp diff --git a/src/snark/src/algebra/curves/alt_bn128/alt_bn128_g1.hpp b/src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_g1.hpp similarity index 100% rename from src/snark/src/algebra/curves/alt_bn128/alt_bn128_g1.hpp rename to src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_g1.hpp diff --git a/src/snark/src/algebra/curves/alt_bn128/alt_bn128_g2.cpp b/src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_g2.cpp similarity index 100% rename from src/snark/src/algebra/curves/alt_bn128/alt_bn128_g2.cpp rename to src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_g2.cpp diff --git a/src/snark/src/algebra/curves/alt_bn128/alt_bn128_g2.hpp b/src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_g2.hpp similarity index 100% rename from src/snark/src/algebra/curves/alt_bn128/alt_bn128_g2.hpp rename to src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_g2.hpp diff --git a/src/snark/src/algebra/curves/alt_bn128/alt_bn128_init.cpp b/src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_init.cpp similarity index 100% rename from src/snark/src/algebra/curves/alt_bn128/alt_bn128_init.cpp rename to src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_init.cpp diff --git a/src/snark/src/algebra/curves/alt_bn128/alt_bn128_init.hpp b/src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_init.hpp similarity index 100% rename from src/snark/src/algebra/curves/alt_bn128/alt_bn128_init.hpp rename to src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_init.hpp diff --git a/src/snark/src/algebra/curves/alt_bn128/alt_bn128_pairing.cpp b/src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_pairing.cpp similarity index 100% rename from src/snark/src/algebra/curves/alt_bn128/alt_bn128_pairing.cpp rename to src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_pairing.cpp diff --git a/src/snark/src/algebra/curves/alt_bn128/alt_bn128_pairing.hpp b/src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_pairing.hpp similarity index 100% rename from src/snark/src/algebra/curves/alt_bn128/alt_bn128_pairing.hpp rename to src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_pairing.hpp diff --git a/src/snark/src/algebra/curves/alt_bn128/alt_bn128_pp.cpp b/src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_pp.cpp similarity index 100% rename from src/snark/src/algebra/curves/alt_bn128/alt_bn128_pp.cpp rename to src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_pp.cpp diff --git a/src/snark/src/algebra/curves/alt_bn128/alt_bn128_pp.hpp b/src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_pp.hpp similarity index 100% rename from src/snark/src/algebra/curves/alt_bn128/alt_bn128_pp.hpp rename to src/snark/libsnark/algebra/curves/alt_bn128/alt_bn128_pp.hpp diff --git a/src/snark/src/algebra/curves/curve_utils.hpp b/src/snark/libsnark/algebra/curves/curve_utils.hpp similarity index 100% rename from src/snark/src/algebra/curves/curve_utils.hpp rename to src/snark/libsnark/algebra/curves/curve_utils.hpp diff --git a/src/snark/src/algebra/curves/curve_utils.tcc b/src/snark/libsnark/algebra/curves/curve_utils.tcc similarity index 100% rename from src/snark/src/algebra/curves/curve_utils.tcc rename to src/snark/libsnark/algebra/curves/curve_utils.tcc diff --git a/src/snark/src/algebra/curves/public_params.hpp b/src/snark/libsnark/algebra/curves/public_params.hpp similarity index 100% rename from src/snark/src/algebra/curves/public_params.hpp rename to src/snark/libsnark/algebra/curves/public_params.hpp diff --git a/src/snark/src/algebra/curves/tests/test_bilinearity.cpp b/src/snark/libsnark/algebra/curves/tests/test_bilinearity.cpp similarity index 100% rename from src/snark/src/algebra/curves/tests/test_bilinearity.cpp rename to src/snark/libsnark/algebra/curves/tests/test_bilinearity.cpp diff --git a/src/snark/src/algebra/curves/tests/test_groups.cpp b/src/snark/libsnark/algebra/curves/tests/test_groups.cpp similarity index 100% rename from src/snark/src/algebra/curves/tests/test_groups.cpp rename to src/snark/libsnark/algebra/curves/tests/test_groups.cpp diff --git a/src/snark/src/algebra/evaluation_domain/domains/basic_radix2_domain.hpp b/src/snark/libsnark/algebra/evaluation_domain/domains/basic_radix2_domain.hpp similarity index 100% rename from src/snark/src/algebra/evaluation_domain/domains/basic_radix2_domain.hpp rename to src/snark/libsnark/algebra/evaluation_domain/domains/basic_radix2_domain.hpp diff --git a/src/snark/src/algebra/evaluation_domain/domains/basic_radix2_domain.tcc b/src/snark/libsnark/algebra/evaluation_domain/domains/basic_radix2_domain.tcc similarity index 100% rename from src/snark/src/algebra/evaluation_domain/domains/basic_radix2_domain.tcc rename to src/snark/libsnark/algebra/evaluation_domain/domains/basic_radix2_domain.tcc diff --git a/src/snark/src/algebra/evaluation_domain/domains/basic_radix2_domain_aux.hpp b/src/snark/libsnark/algebra/evaluation_domain/domains/basic_radix2_domain_aux.hpp similarity index 100% rename from src/snark/src/algebra/evaluation_domain/domains/basic_radix2_domain_aux.hpp rename to src/snark/libsnark/algebra/evaluation_domain/domains/basic_radix2_domain_aux.hpp diff --git a/src/snark/src/algebra/evaluation_domain/domains/basic_radix2_domain_aux.tcc b/src/snark/libsnark/algebra/evaluation_domain/domains/basic_radix2_domain_aux.tcc similarity index 100% rename from src/snark/src/algebra/evaluation_domain/domains/basic_radix2_domain_aux.tcc rename to src/snark/libsnark/algebra/evaluation_domain/domains/basic_radix2_domain_aux.tcc diff --git a/src/snark/src/algebra/evaluation_domain/evaluation_domain.hpp b/src/snark/libsnark/algebra/evaluation_domain/evaluation_domain.hpp similarity index 100% rename from src/snark/src/algebra/evaluation_domain/evaluation_domain.hpp rename to src/snark/libsnark/algebra/evaluation_domain/evaluation_domain.hpp diff --git a/src/snark/src/algebra/evaluation_domain/evaluation_domain.tcc b/src/snark/libsnark/algebra/evaluation_domain/evaluation_domain.tcc similarity index 100% rename from src/snark/src/algebra/evaluation_domain/evaluation_domain.tcc rename to src/snark/libsnark/algebra/evaluation_domain/evaluation_domain.tcc diff --git a/src/snark/src/algebra/exponentiation/exponentiation.hpp b/src/snark/libsnark/algebra/exponentiation/exponentiation.hpp similarity index 100% rename from src/snark/src/algebra/exponentiation/exponentiation.hpp rename to src/snark/libsnark/algebra/exponentiation/exponentiation.hpp diff --git a/src/snark/src/algebra/exponentiation/exponentiation.tcc b/src/snark/libsnark/algebra/exponentiation/exponentiation.tcc similarity index 100% rename from src/snark/src/algebra/exponentiation/exponentiation.tcc rename to src/snark/libsnark/algebra/exponentiation/exponentiation.tcc diff --git a/src/snark/src/algebra/fields/bigint.hpp b/src/snark/libsnark/algebra/fields/bigint.hpp similarity index 100% rename from src/snark/src/algebra/fields/bigint.hpp rename to src/snark/libsnark/algebra/fields/bigint.hpp diff --git a/src/snark/src/algebra/fields/bigint.tcc b/src/snark/libsnark/algebra/fields/bigint.tcc similarity index 100% rename from src/snark/src/algebra/fields/bigint.tcc rename to src/snark/libsnark/algebra/fields/bigint.tcc diff --git a/src/snark/src/algebra/fields/field_utils.hpp b/src/snark/libsnark/algebra/fields/field_utils.hpp similarity index 100% rename from src/snark/src/algebra/fields/field_utils.hpp rename to src/snark/libsnark/algebra/fields/field_utils.hpp diff --git a/src/snark/src/algebra/fields/field_utils.tcc b/src/snark/libsnark/algebra/fields/field_utils.tcc similarity index 100% rename from src/snark/src/algebra/fields/field_utils.tcc rename to src/snark/libsnark/algebra/fields/field_utils.tcc diff --git a/src/snark/src/algebra/fields/fp.hpp b/src/snark/libsnark/algebra/fields/fp.hpp similarity index 100% rename from src/snark/src/algebra/fields/fp.hpp rename to src/snark/libsnark/algebra/fields/fp.hpp diff --git a/src/snark/src/algebra/fields/fp.tcc b/src/snark/libsnark/algebra/fields/fp.tcc similarity index 100% rename from src/snark/src/algebra/fields/fp.tcc rename to src/snark/libsnark/algebra/fields/fp.tcc diff --git a/src/snark/src/algebra/fields/fp12_2over3over2.hpp b/src/snark/libsnark/algebra/fields/fp12_2over3over2.hpp similarity index 100% rename from src/snark/src/algebra/fields/fp12_2over3over2.hpp rename to src/snark/libsnark/algebra/fields/fp12_2over3over2.hpp diff --git a/src/snark/src/algebra/fields/fp12_2over3over2.tcc b/src/snark/libsnark/algebra/fields/fp12_2over3over2.tcc similarity index 100% rename from src/snark/src/algebra/fields/fp12_2over3over2.tcc rename to src/snark/libsnark/algebra/fields/fp12_2over3over2.tcc diff --git a/src/snark/src/algebra/fields/fp2.hpp b/src/snark/libsnark/algebra/fields/fp2.hpp similarity index 100% rename from src/snark/src/algebra/fields/fp2.hpp rename to src/snark/libsnark/algebra/fields/fp2.hpp diff --git a/src/snark/src/algebra/fields/fp2.tcc b/src/snark/libsnark/algebra/fields/fp2.tcc similarity index 100% rename from src/snark/src/algebra/fields/fp2.tcc rename to src/snark/libsnark/algebra/fields/fp2.tcc diff --git a/src/snark/src/algebra/fields/fp6_3over2.hpp b/src/snark/libsnark/algebra/fields/fp6_3over2.hpp similarity index 100% rename from src/snark/src/algebra/fields/fp6_3over2.hpp rename to src/snark/libsnark/algebra/fields/fp6_3over2.hpp diff --git a/src/snark/src/algebra/fields/fp6_3over2.tcc b/src/snark/libsnark/algebra/fields/fp6_3over2.tcc similarity index 100% rename from src/snark/src/algebra/fields/fp6_3over2.tcc rename to src/snark/libsnark/algebra/fields/fp6_3over2.tcc diff --git a/src/snark/src/algebra/fields/fp_aux.tcc b/src/snark/libsnark/algebra/fields/fp_aux.tcc similarity index 100% rename from src/snark/src/algebra/fields/fp_aux.tcc rename to src/snark/libsnark/algebra/fields/fp_aux.tcc diff --git a/src/snark/src/algebra/fields/tests/test_bigint.cpp b/src/snark/libsnark/algebra/fields/tests/test_bigint.cpp similarity index 100% rename from src/snark/src/algebra/fields/tests/test_bigint.cpp rename to src/snark/libsnark/algebra/fields/tests/test_bigint.cpp diff --git a/src/snark/src/algebra/fields/tests/test_fields.cpp b/src/snark/libsnark/algebra/fields/tests/test_fields.cpp similarity index 100% rename from src/snark/src/algebra/fields/tests/test_fields.cpp rename to src/snark/libsnark/algebra/fields/tests/test_fields.cpp diff --git a/src/snark/src/algebra/knowledge_commitment/knowledge_commitment.hpp b/src/snark/libsnark/algebra/knowledge_commitment/knowledge_commitment.hpp similarity index 100% rename from src/snark/src/algebra/knowledge_commitment/knowledge_commitment.hpp rename to src/snark/libsnark/algebra/knowledge_commitment/knowledge_commitment.hpp diff --git a/src/snark/src/algebra/knowledge_commitment/knowledge_commitment.tcc b/src/snark/libsnark/algebra/knowledge_commitment/knowledge_commitment.tcc similarity index 100% rename from src/snark/src/algebra/knowledge_commitment/knowledge_commitment.tcc rename to src/snark/libsnark/algebra/knowledge_commitment/knowledge_commitment.tcc diff --git a/src/snark/src/algebra/scalar_multiplication/kc_multiexp.hpp b/src/snark/libsnark/algebra/scalar_multiplication/kc_multiexp.hpp similarity index 100% rename from src/snark/src/algebra/scalar_multiplication/kc_multiexp.hpp rename to src/snark/libsnark/algebra/scalar_multiplication/kc_multiexp.hpp diff --git a/src/snark/src/algebra/scalar_multiplication/kc_multiexp.tcc b/src/snark/libsnark/algebra/scalar_multiplication/kc_multiexp.tcc similarity index 100% rename from src/snark/src/algebra/scalar_multiplication/kc_multiexp.tcc rename to src/snark/libsnark/algebra/scalar_multiplication/kc_multiexp.tcc diff --git a/src/snark/src/algebra/scalar_multiplication/multiexp.hpp b/src/snark/libsnark/algebra/scalar_multiplication/multiexp.hpp similarity index 100% rename from src/snark/src/algebra/scalar_multiplication/multiexp.hpp rename to src/snark/libsnark/algebra/scalar_multiplication/multiexp.hpp diff --git a/src/snark/src/algebra/scalar_multiplication/multiexp.tcc b/src/snark/libsnark/algebra/scalar_multiplication/multiexp.tcc similarity index 100% rename from src/snark/src/algebra/scalar_multiplication/multiexp.tcc rename to src/snark/libsnark/algebra/scalar_multiplication/multiexp.tcc diff --git a/src/snark/src/algebra/scalar_multiplication/wnaf.hpp b/src/snark/libsnark/algebra/scalar_multiplication/wnaf.hpp similarity index 100% rename from src/snark/src/algebra/scalar_multiplication/wnaf.hpp rename to src/snark/libsnark/algebra/scalar_multiplication/wnaf.hpp diff --git a/src/snark/src/algebra/scalar_multiplication/wnaf.tcc b/src/snark/libsnark/algebra/scalar_multiplication/wnaf.tcc similarity index 100% rename from src/snark/src/algebra/scalar_multiplication/wnaf.tcc rename to src/snark/libsnark/algebra/scalar_multiplication/wnaf.tcc diff --git a/src/snark/src/common/assert_except.hpp b/src/snark/libsnark/common/assert_except.hpp similarity index 100% rename from src/snark/src/common/assert_except.hpp rename to src/snark/libsnark/common/assert_except.hpp diff --git a/src/snark/src/common/data_structures/accumulation_vector.hpp b/src/snark/libsnark/common/data_structures/accumulation_vector.hpp similarity index 100% rename from src/snark/src/common/data_structures/accumulation_vector.hpp rename to src/snark/libsnark/common/data_structures/accumulation_vector.hpp diff --git a/src/snark/src/common/data_structures/accumulation_vector.tcc b/src/snark/libsnark/common/data_structures/accumulation_vector.tcc similarity index 100% rename from src/snark/src/common/data_structures/accumulation_vector.tcc rename to src/snark/libsnark/common/data_structures/accumulation_vector.tcc diff --git a/src/snark/src/common/data_structures/merkle_tree.hpp b/src/snark/libsnark/common/data_structures/merkle_tree.hpp similarity index 100% rename from src/snark/src/common/data_structures/merkle_tree.hpp rename to src/snark/libsnark/common/data_structures/merkle_tree.hpp diff --git a/src/snark/src/common/data_structures/merkle_tree.tcc b/src/snark/libsnark/common/data_structures/merkle_tree.tcc similarity index 100% rename from src/snark/src/common/data_structures/merkle_tree.tcc rename to src/snark/libsnark/common/data_structures/merkle_tree.tcc diff --git a/src/snark/src/common/data_structures/sparse_vector.hpp b/src/snark/libsnark/common/data_structures/sparse_vector.hpp similarity index 100% rename from src/snark/src/common/data_structures/sparse_vector.hpp rename to src/snark/libsnark/common/data_structures/sparse_vector.hpp diff --git a/src/snark/src/common/data_structures/sparse_vector.tcc b/src/snark/libsnark/common/data_structures/sparse_vector.tcc similarity index 100% rename from src/snark/src/common/data_structures/sparse_vector.tcc rename to src/snark/libsnark/common/data_structures/sparse_vector.tcc diff --git a/src/snark/src/common/default_types/ec_pp.hpp b/src/snark/libsnark/common/default_types/ec_pp.hpp similarity index 100% rename from src/snark/src/common/default_types/ec_pp.hpp rename to src/snark/libsnark/common/default_types/ec_pp.hpp diff --git a/src/snark/src/common/default_types/r1cs_ppzksnark_pp.hpp b/src/snark/libsnark/common/default_types/r1cs_ppzksnark_pp.hpp similarity index 100% rename from src/snark/src/common/default_types/r1cs_ppzksnark_pp.hpp rename to src/snark/libsnark/common/default_types/r1cs_ppzksnark_pp.hpp diff --git a/src/snark/src/common/profiling.cpp b/src/snark/libsnark/common/profiling.cpp similarity index 100% rename from src/snark/src/common/profiling.cpp rename to src/snark/libsnark/common/profiling.cpp diff --git a/src/snark/src/common/profiling.hpp b/src/snark/libsnark/common/profiling.hpp similarity index 100% rename from src/snark/src/common/profiling.hpp rename to src/snark/libsnark/common/profiling.hpp diff --git a/src/snark/src/common/serialization.hpp b/src/snark/libsnark/common/serialization.hpp similarity index 100% rename from src/snark/src/common/serialization.hpp rename to src/snark/libsnark/common/serialization.hpp diff --git a/src/snark/src/common/serialization.tcc b/src/snark/libsnark/common/serialization.tcc similarity index 100% rename from src/snark/src/common/serialization.tcc rename to src/snark/libsnark/common/serialization.tcc diff --git a/src/snark/src/common/template_utils.hpp b/src/snark/libsnark/common/template_utils.hpp similarity index 100% rename from src/snark/src/common/template_utils.hpp rename to src/snark/libsnark/common/template_utils.hpp diff --git a/src/snark/src/common/utils.cpp b/src/snark/libsnark/common/utils.cpp similarity index 100% rename from src/snark/src/common/utils.cpp rename to src/snark/libsnark/common/utils.cpp diff --git a/src/snark/src/common/utils.hpp b/src/snark/libsnark/common/utils.hpp similarity index 100% rename from src/snark/src/common/utils.hpp rename to src/snark/libsnark/common/utils.hpp diff --git a/src/snark/src/common/utils.tcc b/src/snark/libsnark/common/utils.tcc similarity index 100% rename from src/snark/src/common/utils.tcc rename to src/snark/libsnark/common/utils.tcc diff --git a/src/snark/src/gadgetlib1/constraint_profiling.cpp b/src/snark/libsnark/gadgetlib1/constraint_profiling.cpp similarity index 100% rename from src/snark/src/gadgetlib1/constraint_profiling.cpp rename to src/snark/libsnark/gadgetlib1/constraint_profiling.cpp diff --git a/src/snark/src/gadgetlib1/constraint_profiling.hpp b/src/snark/libsnark/gadgetlib1/constraint_profiling.hpp similarity index 100% rename from src/snark/src/gadgetlib1/constraint_profiling.hpp rename to src/snark/libsnark/gadgetlib1/constraint_profiling.hpp diff --git a/src/snark/src/gadgetlib1/examples/simple_example.hpp b/src/snark/libsnark/gadgetlib1/examples/simple_example.hpp similarity index 100% rename from src/snark/src/gadgetlib1/examples/simple_example.hpp rename to src/snark/libsnark/gadgetlib1/examples/simple_example.hpp diff --git a/src/snark/src/gadgetlib1/examples/simple_example.tcc b/src/snark/libsnark/gadgetlib1/examples/simple_example.tcc similarity index 100% rename from src/snark/src/gadgetlib1/examples/simple_example.tcc rename to src/snark/libsnark/gadgetlib1/examples/simple_example.tcc diff --git a/src/snark/src/gadgetlib1/gadget.hpp b/src/snark/libsnark/gadgetlib1/gadget.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadget.hpp rename to src/snark/libsnark/gadgetlib1/gadget.hpp diff --git a/src/snark/src/gadgetlib1/gadget.tcc b/src/snark/libsnark/gadgetlib1/gadget.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadget.tcc rename to src/snark/libsnark/gadgetlib1/gadget.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/basic_gadgets.hpp b/src/snark/libsnark/gadgetlib1/gadgets/basic_gadgets.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/basic_gadgets.hpp rename to src/snark/libsnark/gadgetlib1/gadgets/basic_gadgets.hpp diff --git a/src/snark/src/gadgetlib1/gadgets/basic_gadgets.tcc b/src/snark/libsnark/gadgetlib1/gadgets/basic_gadgets.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/basic_gadgets.tcc rename to src/snark/libsnark/gadgetlib1/gadgets/basic_gadgets.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/gadget_from_r1cs.hpp b/src/snark/libsnark/gadgetlib1/gadgets/gadget_from_r1cs.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/gadget_from_r1cs.hpp rename to src/snark/libsnark/gadgetlib1/gadgets/gadget_from_r1cs.hpp diff --git a/src/snark/src/gadgetlib1/gadgets/gadget_from_r1cs.tcc b/src/snark/libsnark/gadgetlib1/gadgets/gadget_from_r1cs.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/gadget_from_r1cs.tcc rename to src/snark/libsnark/gadgetlib1/gadgets/gadget_from_r1cs.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/digest_selector_gadget.hpp b/src/snark/libsnark/gadgetlib1/gadgets/hashes/digest_selector_gadget.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/digest_selector_gadget.hpp rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/digest_selector_gadget.hpp diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/digest_selector_gadget.tcc b/src/snark/libsnark/gadgetlib1/gadgets/hashes/digest_selector_gadget.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/digest_selector_gadget.tcc rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/digest_selector_gadget.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/hash_io.hpp b/src/snark/libsnark/gadgetlib1/gadgets/hashes/hash_io.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/hash_io.hpp rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/hash_io.hpp diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/hash_io.tcc b/src/snark/libsnark/gadgetlib1/gadgets/hashes/hash_io.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/hash_io.tcc rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/hash_io.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_aux.hpp b/src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_aux.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_aux.hpp rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_aux.hpp diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_aux.tcc b/src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_aux.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_aux.tcc rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_aux.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_components.hpp b/src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_components.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_components.hpp rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_components.hpp diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_components.tcc b/src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_components.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_components.tcc rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_components.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_gadget.hpp b/src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_gadget.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_gadget.hpp rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_gadget.hpp diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_gadget.tcc b/src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_gadget.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/sha256/sha256_gadget.tcc rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/sha256_gadget.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/sha256/tests/generate_sha256_gadget_tests.py b/src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/tests/generate_sha256_gadget_tests.py similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/sha256/tests/generate_sha256_gadget_tests.py rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/tests/generate_sha256_gadget_tests.py diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/sha256/tests/pypy_sha256.py b/src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/tests/pypy_sha256.py similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/sha256/tests/pypy_sha256.py rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/tests/pypy_sha256.py diff --git a/src/snark/src/gadgetlib1/gadgets/hashes/sha256/tests/test_sha256_gadget.cpp b/src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/tests/test_sha256_gadget.cpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/hashes/sha256/tests/test_sha256_gadget.cpp rename to src/snark/libsnark/gadgetlib1/gadgets/hashes/sha256/tests/test_sha256_gadget.cpp diff --git a/src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.hpp b/src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.hpp rename to src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.hpp diff --git a/src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.tcc b/src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.tcc rename to src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_read_gadget.hpp b/src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_read_gadget.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_read_gadget.hpp rename to src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_read_gadget.hpp diff --git a/src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_read_gadget.tcc b/src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_read_gadget.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_read_gadget.tcc rename to src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_read_gadget.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_update_gadget.hpp b/src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_update_gadget.hpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_update_gadget.hpp rename to src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_update_gadget.hpp diff --git a/src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_update_gadget.tcc b/src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_update_gadget.tcc similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_update_gadget.tcc rename to src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/merkle_tree_check_update_gadget.tcc diff --git a/src/snark/src/gadgetlib1/gadgets/merkle_tree/tests/test_merkle_tree_gadgets.cpp b/src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/tests/test_merkle_tree_gadgets.cpp similarity index 100% rename from src/snark/src/gadgetlib1/gadgets/merkle_tree/tests/test_merkle_tree_gadgets.cpp rename to src/snark/libsnark/gadgetlib1/gadgets/merkle_tree/tests/test_merkle_tree_gadgets.cpp diff --git a/src/snark/src/gadgetlib1/pb_variable.hpp b/src/snark/libsnark/gadgetlib1/pb_variable.hpp similarity index 100% rename from src/snark/src/gadgetlib1/pb_variable.hpp rename to src/snark/libsnark/gadgetlib1/pb_variable.hpp diff --git a/src/snark/src/gadgetlib1/pb_variable.tcc b/src/snark/libsnark/gadgetlib1/pb_variable.tcc similarity index 100% rename from src/snark/src/gadgetlib1/pb_variable.tcc rename to src/snark/libsnark/gadgetlib1/pb_variable.tcc diff --git a/src/snark/src/gadgetlib1/protoboard.hpp b/src/snark/libsnark/gadgetlib1/protoboard.hpp similarity index 100% rename from src/snark/src/gadgetlib1/protoboard.hpp rename to src/snark/libsnark/gadgetlib1/protoboard.hpp diff --git a/src/snark/src/gadgetlib1/protoboard.tcc b/src/snark/libsnark/gadgetlib1/protoboard.tcc similarity index 100% rename from src/snark/src/gadgetlib1/protoboard.tcc rename to src/snark/libsnark/gadgetlib1/protoboard.tcc diff --git a/src/snark/src/gtests.cpp b/src/snark/libsnark/gtests.cpp similarity index 100% rename from src/snark/src/gtests.cpp rename to src/snark/libsnark/gtests.cpp diff --git a/src/snark/src/reductions/r1cs_to_qap/r1cs_to_qap.hpp b/src/snark/libsnark/reductions/r1cs_to_qap/r1cs_to_qap.hpp similarity index 100% rename from src/snark/src/reductions/r1cs_to_qap/r1cs_to_qap.hpp rename to src/snark/libsnark/reductions/r1cs_to_qap/r1cs_to_qap.hpp diff --git a/src/snark/src/reductions/r1cs_to_qap/r1cs_to_qap.tcc b/src/snark/libsnark/reductions/r1cs_to_qap/r1cs_to_qap.tcc similarity index 100% rename from src/snark/src/reductions/r1cs_to_qap/r1cs_to_qap.tcc rename to src/snark/libsnark/reductions/r1cs_to_qap/r1cs_to_qap.tcc diff --git a/src/snark/src/relations/arithmetic_programs/qap/qap.hpp b/src/snark/libsnark/relations/arithmetic_programs/qap/qap.hpp similarity index 100% rename from src/snark/src/relations/arithmetic_programs/qap/qap.hpp rename to src/snark/libsnark/relations/arithmetic_programs/qap/qap.hpp diff --git a/src/snark/src/relations/arithmetic_programs/qap/qap.tcc b/src/snark/libsnark/relations/arithmetic_programs/qap/qap.tcc similarity index 100% rename from src/snark/src/relations/arithmetic_programs/qap/qap.tcc rename to src/snark/libsnark/relations/arithmetic_programs/qap/qap.tcc diff --git a/src/snark/src/relations/arithmetic_programs/qap/tests/test_qap.cpp b/src/snark/libsnark/relations/arithmetic_programs/qap/tests/test_qap.cpp similarity index 100% rename from src/snark/src/relations/arithmetic_programs/qap/tests/test_qap.cpp rename to src/snark/libsnark/relations/arithmetic_programs/qap/tests/test_qap.cpp diff --git a/src/snark/src/relations/constraint_satisfaction_problems/r1cs/examples/r1cs_examples.hpp b/src/snark/libsnark/relations/constraint_satisfaction_problems/r1cs/examples/r1cs_examples.hpp similarity index 100% rename from src/snark/src/relations/constraint_satisfaction_problems/r1cs/examples/r1cs_examples.hpp rename to src/snark/libsnark/relations/constraint_satisfaction_problems/r1cs/examples/r1cs_examples.hpp diff --git a/src/snark/src/relations/constraint_satisfaction_problems/r1cs/examples/r1cs_examples.tcc b/src/snark/libsnark/relations/constraint_satisfaction_problems/r1cs/examples/r1cs_examples.tcc similarity index 100% rename from src/snark/src/relations/constraint_satisfaction_problems/r1cs/examples/r1cs_examples.tcc rename to src/snark/libsnark/relations/constraint_satisfaction_problems/r1cs/examples/r1cs_examples.tcc diff --git a/src/snark/src/relations/constraint_satisfaction_problems/r1cs/r1cs.hpp b/src/snark/libsnark/relations/constraint_satisfaction_problems/r1cs/r1cs.hpp similarity index 100% rename from src/snark/src/relations/constraint_satisfaction_problems/r1cs/r1cs.hpp rename to src/snark/libsnark/relations/constraint_satisfaction_problems/r1cs/r1cs.hpp diff --git a/src/snark/src/relations/constraint_satisfaction_problems/r1cs/r1cs.tcc b/src/snark/libsnark/relations/constraint_satisfaction_problems/r1cs/r1cs.tcc similarity index 100% rename from src/snark/src/relations/constraint_satisfaction_problems/r1cs/r1cs.tcc rename to src/snark/libsnark/relations/constraint_satisfaction_problems/r1cs/r1cs.tcc diff --git a/src/snark/src/relations/variable.hpp b/src/snark/libsnark/relations/variable.hpp similarity index 100% rename from src/snark/src/relations/variable.hpp rename to src/snark/libsnark/relations/variable.hpp diff --git a/src/snark/src/relations/variable.tcc b/src/snark/libsnark/relations/variable.tcc similarity index 100% rename from src/snark/src/relations/variable.tcc rename to src/snark/libsnark/relations/variable.tcc diff --git a/src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.hpp b/src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.hpp similarity index 100% rename from src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.hpp rename to src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.hpp diff --git a/src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.tcc b/src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.tcc similarity index 100% rename from src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.tcc rename to src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.tcc diff --git a/src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/profiling/profile_r1cs_ppzksnark.cpp b/src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/profiling/profile_r1cs_ppzksnark.cpp similarity index 100% rename from src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/profiling/profile_r1cs_ppzksnark.cpp rename to src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/profiling/profile_r1cs_ppzksnark.cpp diff --git a/src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.hpp b/src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.hpp similarity index 100% rename from src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.hpp rename to src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.hpp diff --git a/src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.tcc b/src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.tcc similarity index 100% rename from src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.tcc rename to src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.tcc diff --git a/src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark_params.hpp b/src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark_params.hpp similarity index 100% rename from src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark_params.hpp rename to src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark_params.hpp diff --git a/src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/tests/test_r1cs_ppzksnark.cpp b/src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/tests/test_r1cs_ppzksnark.cpp similarity index 100% rename from src/snark/src/zk_proof_systems/ppzksnark/r1cs_ppzksnark/tests/test_r1cs_ppzksnark.cpp rename to src/snark/libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/tests/test_r1cs_ppzksnark.cpp