diff --git a/README.md b/README.md index 468cb5a8..7c10cb0d 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,16 @@ bitcoind as a shared object. This may not be ideal yet. #### Compiling bticoind as a library +##### Dependencies + + - Boost + - Bost Header Files (`/usr/include/boost`) + + - Berkeley DB + + - LevelDB Header Files (included in bitcoin source repo, leveldb itself + unnecessary, libbitcoind.so is already linked to them) + ``` bash # ensure clean up $ make clean @@ -63,7 +73,7 @@ Without `--enable-library`, the Makefile with compile bitcoind with -fPIE ``` bash $ cd ~/work/node_modules/bitcoind.js -$ PYTHON=/usr/bin/python2.7 make gyp +$ BITCOIN_DIR=~/bitcoin PYTHON=/usr/bin/python2.7 make ``` #### Running bitcoind.js diff --git a/binding.gyp b/binding.gyp index d31e33cd..72c07839 100644 --- a/binding.gyp +++ b/binding.gyp @@ -2,17 +2,23 @@ 'targets': [{ 'target_name': 'bitcoindjs', 'include_dirs' : [ - '/usr/include', + # standard include: + # '/usr/include', '=105000 && (BOOST_HAS_NANOSLEEP==0 || BOOST_VERSION>=105200)', { + 'variables': { + 'BOOST_SLEEP': 'HAVE_WORKING_BOOST_SLEEP_FOR', + }, + #'defines': [ + # 'HAVE_WORKING_BOOST_SLEEP_FOR', + # # Assume libbitcoind.so is always + # # compiled with wallet support. + # 'ENABLE_WALLET', + #], + }, { # !(BOOST_VERSION>=105000) ... + 'variables': { + 'BOOST_SLEEP': 'HAVE_WORKING_BOOST_SLEEP', + }, + #'defines': [ + # 'HAVE_WORKING_BOOST_SLEEP', + # # Assume libbitcoind.so is always + # # compiled with wallet support. + # 'ENABLE_WALLET', + #], + }], + ], + 'sources': [ + './src/bitcoindjs.cc', + ], + 'defines': [ + # TODO: Figure out how to detect BOOST_SLEEP in gyp. + # 'HAVE_WORKING_BOOST_SLEEP', + '<(BOOST_SLEEP)', + # Assume libbitcoind.so is always + # compiled with wallet support. + 'ENABLE_WALLET', + ], + 'conditions': [ + ], + 'cflags_cc': [ + '-fexceptions', + '-frtti', + ], + 'libraries': [ + # standard libs: + # '-L/usr/lib', + # '-L/usr/local/lib', + # boost: + '-lboost_system', + '-lboost_filesystem', + '-lboost_program_options', + '-lboost_thread', + '-lboost_chrono', + # bitcoind: + '= 105000 && (BOOST_HAS_NANOSLEEP == 0 || BOOST_VERSION >= 105200)', { + 'defines': [ + 'HAVE_WORKING_BOOST_SLEEP_FOR', + ], + }, { # !(BOOST_VERSION>=105000) ... + 'defines': [ + 'HAVE_WORKING_BOOST_SLEEP', + ], + }], + ], + 'sources': [ + './src/bitcoindjs.cc', + ], + 'defines': [ + # Assume libbitcoind.so is always + # compiled with wallet support. + '= 105000 && (BOOST_HAS_NANOSLEEP == 0 || BOOST_VERSION >= 105200)', { + 'defines': [ + 'HAVE_WORKING_BOOST_SLEEP_FOR', + ], + }, { # !(BOOST_VERSION>=105000) ... + 'defines': [ + 'HAVE_WORKING_BOOST_SLEEP', + ], + }], + ], + 'sources': [ + './src/bitcoindjs.cc', + ], + 'defines': [ + ' vImportFiles; threadGroup.create_thread(boost::bind(&ThreadImport, vImportFiles)); - StartNode(threadGroup); + // StartNode(threadGroup); + + AppInit2(threadGroup); #ifdef ENABLE_WALLET if (pwalletMain) {