From a2d7c036e0c5590a86296c17a65e3a980d81f411 Mon Sep 17 00:00:00 2001 From: ca333 Date: Sun, 22 Oct 2017 04:08:53 +0200 Subject: [PATCH] darwin 333 --- depends/packages/boost.mk | 11 ++++++++++- depends/packages/libgmp.mk | 6 ++++++ depends/packages/libsnark.mk | 13 +++++++------ depends/packages/packages.mk | 2 +- src/crypto/equihash.cpp | 3 ++- src/gtest/test_transaction.cpp | 25 +++++++++++++++++++++++++ src/primitives/transaction.h | 3 +++ user-config.jam | 1 + 8 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 user-config.jam diff --git a/depends/packages/boost.mk b/depends/packages/boost.mk index a2e820163..679faacde 100644 --- a/depends/packages/boost.mk +++ b/depends/packages/boost.mk @@ -19,6 +19,7 @@ $(package)_config_opts_i686_linux=address-model=32 architecture=x86 $(package)_toolset_$(host_os)=gcc $(package)_archiver_$(host_os)=$($(package)_ar) $(package)_toolset_darwin=gcc +$(package)_archiver_darwin=$($(package)_ar) $(package)_config_libraries=chrono,filesystem,program_options,system,thread,test $(package)_cxxflags=-fvisibility=hidden $(package)_cxxflags_linux=-fPIC @@ -34,10 +35,18 @@ define $(package)_config_cmds ./bootstrap.sh --without-icu --with-libraries=$(boost_config_libraries) endef +ifeq ($(host_os),linux) define $(package)_build_cmds ./b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) cxxflags=-std=c++11 stage endef - define $(package)_stage_cmds ./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) cxxflags=-std=c++11 install endef +else +define $(package)_build_cmds + ./b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage +endef +define $(package)_stage_cmds + ./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install +endef +endif diff --git a/depends/packages/libgmp.mk b/depends/packages/libgmp.mk index 4a05377e2..f06e4a6c4 100644 --- a/depends/packages/libgmp.mk +++ b/depends/packages/libgmp.mk @@ -29,9 +29,15 @@ define $(package)_config_cmds $($(package)_autoconf) --host=$(host) --build=$(build) endef +ifeq ($(build_os),darwin) +define $(package)_build_cmds + $(MAKE) +endef +else define $(package)_build_cmds $(MAKE) CPPFLAGS='-fPIC' endef +endif define $(package)_stage_cmds $(MAKE) DESTDIR=$($(package)_staging_dir) install ; echo '=== staging find for $(package):' ; find $($(package)_staging_dir) diff --git a/depends/packages/libsnark.mk b/depends/packages/libsnark.mk index 62a171ac6..00c897d73 100644 --- a/depends/packages/libsnark.mk +++ b/depends/packages/libsnark.mk @@ -9,23 +9,24 @@ $(package)_git_commit=3854b20c25e8bc567aab2b558dec84d45f4a3e73 $(package)_dependencies=libgmp libsodium ifeq ($(build_os),darwin) +define $(package)_set_vars + $(package)_build_env=CC="$($(package)_cc)" CXX="$($(package)_cxx)" + $(package)_build_env+=CXXFLAGS="$($(package)_cxxflags) -DBINARY_OUTPUT -DSTATICLIB -DNO_PT_COMPRESSION=1 " +endef define $(package)_build_cmds -CC=gcc-5 CXX=g++-5 CXXFLAGS="-arch x86_64 -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=0 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT + $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64" endef else ifeq ($(host_os),mingw32) define $(package)_build_cmds -CXX="x86_64-w64-mingw32-g++-posix" CXXFLAGS="-DBINARY_OUTPUT -DPTW32_STATIC_LIB -DSTATICLIB -DNO_PT_COMPRESSION=1 -fopenmp" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64" + CXX="x86_64-w64-mingw32-g++-posix" CXXFLAGS="-DBINARY_OUTPUT -DPTW32_STATIC_LIB -DSTATICLIB -DNO_PT_COMPRESSION=1 -fopenmp" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64" endef else define $(package)_build_cmds -CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64" + CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64" endef endif - - - define $(package)_stage_cmds $(MAKE) install STATIC=1 DEPINST=$(host_prefix) PREFIX=$($(package)_staging_dir)$(host_prefix) CURVE=ALT_BN128 NO_SUPERCOP=1 endef diff --git a/depends/packages/packages.mk b/depends/packages/packages.mk index 3cf52d62f..b1951431a 100644 --- a/depends/packages/packages.mk +++ b/depends/packages/packages.mk @@ -1,7 +1,7 @@ rust_packages := rust librustzcash zcash_packages := libsnark libgmp libsodium -ifeq ($(build_os),linux) +ifeq ($(host_os),linux) packages := boost openssl libevent zeromq $(zcash_packages) googletest googlemock else packages := boost openssl libevent zeromq $(zcash_packages) googletest googlemock libcurl diff --git a/src/crypto/equihash.cpp b/src/crypto/equihash.cpp index 7da805bc8..9e6d18590 100644 --- a/src/crypto/equihash.cpp +++ b/src/crypto/equihash.cpp @@ -28,6 +28,7 @@ #include +/* #ifdef __APPLE__ #include #include @@ -51,7 +52,7 @@ #define __LITTLE_ENDIAN LITTLE_ENDIAN #define __BYTE_ORDER BYTE_ORDER #endif - +*/ EhSolverCancelledException solver_cancelled; template diff --git a/src/gtest/test_transaction.cpp b/src/gtest/test_transaction.cpp index a339f7652..e75588685 100644 --- a/src/gtest/test_transaction.cpp +++ b/src/gtest/test_transaction.cpp @@ -38,8 +38,13 @@ TEST(Transaction, JSDescriptionRandomized) { libzcash::JSOutput(addr, 50), libzcash::JSOutput(addr, 50) }; + #ifdef __LP64__ // required for building on MacOS + boost::array inputMap; + boost::array outputMap; + #else boost::array inputMap; boost::array outputMap; + #endif { auto jsdesc = JSDescription::Randomized( @@ -48,12 +53,22 @@ TEST(Transaction, JSDescriptionRandomized) { inputMap, outputMap, 0, 0, false); + #ifdef __LP64__ // required for building on MacOS + std::set inputSet(inputMap.begin(), inputMap.end()); + std::set expectedInputSet {0, 1}; + #else std::set inputSet(inputMap.begin(), inputMap.end()); std::set expectedInputSet {0, 1}; + #endif EXPECT_EQ(expectedInputSet, inputSet); + #ifdef __LP64__ // required for building on MacOS + std::set outputSet(outputMap.begin(), outputMap.end()); + std::set expectedOutputSet {0, 1}; + #else std::set outputSet(outputMap.begin(), outputMap.end()); std::set expectedOutputSet {0, 1}; + #endif EXPECT_EQ(expectedOutputSet, outputSet); } @@ -64,8 +79,13 @@ TEST(Transaction, JSDescriptionRandomized) { inputMap, outputMap, 0, 0, false, GenZero); + #ifdef __LP64__ // required for building on MacOS + boost::array expectedInputMap {1, 0}; + boost::array expectedOutputMap {1, 0}; + #else boost::array expectedInputMap {1, 0}; boost::array expectedOutputMap {1, 0}; + #endif EXPECT_EQ(expectedInputMap, inputMap); EXPECT_EQ(expectedOutputMap, outputMap); } @@ -77,8 +97,13 @@ TEST(Transaction, JSDescriptionRandomized) { inputMap, outputMap, 0, 0, false, GenMax); + #ifdef __LP64__ // required for building on MacOS + boost::array expectedInputMap {0, 1}; + boost::array expectedOutputMap {0, 1}; + #else boost::array expectedInputMap {0, 1}; boost::array expectedOutputMap {0, 1}; + #endif EXPECT_EQ(expectedInputMap, inputMap); EXPECT_EQ(expectedOutputMap, outputMap); } diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index b42dfeda0..699b7a89f 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -12,7 +12,10 @@ #include "serialize.h" #include "uint256.h" #include "consensus/consensus.h" + +#ifndef __APPLE__ #include +#endif #include diff --git a/user-config.jam b/user-config.jam new file mode 100644 index 000000000..e473b46e7 --- /dev/null +++ b/user-config.jam @@ -0,0 +1 @@ +using : : : " " "" "" "" "" "" : ;