Commit Graph

170 Commits

Author SHA1 Message Date
Ștefan Talpalaru f63014bddb
libnimbus.a and statically linked wrapper examples 2019-08-02 18:13:50 +02:00
Ștefan Talpalaru c75e491d76
more renaming 2019-08-02 18:13:50 +02:00
Ștefan Talpalaru 1d7e14dc1b
refactor the C and Go wrapper build system
- moved "nimbus/api" to "wrappers"
- renamed files
- replaced the build scripts with Makefile targets
- set the rpath relative to the test binary's location so it can look
  for libnimbus.so there at runtime
- libnimbus.so.0 required on Linux, apparently
- compiled all the Nimbus code with `--app:lib`, not just one file (this
  required skipping a proc in "nimbus/config.nim" because it uses an API
  that's unavailable in libraries)
- removed static linking from the Go wrapper. It doesn't make sense at a
  global level, when using a shared Nimbus library. To selectively link
  static libraries, we should probably be specifying them as *.a. I did
  build a static libnimbus.a, as a test, but it insisted on dlopen-ing a
  shared version of itself which looked too ugly to continue.
2019-08-02 18:13:47 +02:00
Ștefan Talpalaru 6bcf4effbb
Makefile: check the Go compiler version 2019-07-11 15:34:22 +02:00
Zahary Karadjov d5fe4488de
Merge branch 'libp2p-testnet' into devel 2019-06-24 05:45:37 +03:00
Zahary Karadjov 7785b31431 For some reason, git's env variables are not defined inside the docker build env 2019-06-20 19:23:46 +03:00
Zahary Karadjov eb825051fd [Makefile] support Nimble packages with an inner src directory 2019-06-20 18:52:28 +03:00
Ștefan Talpalaru 9d8aa105ef
build_nim.sh: refactoring and CI caching 2019-06-12 13:53:34 +02:00
Ștefan Talpalaru 688fbd2145 nim_needs_rebuilding.sh and build_nim.sh 2019-06-12 11:42:31 +03:00
Ștefan Talpalaru a0066abf95
CI: cache the Nim compiler binaries between builds 2019-06-10 02:05:32 +02:00
Ștefan Talpalaru dd29d66b8c
ctags: add "func" symbols 2019-05-01 11:06:10 +02:00
Ștefan Talpalaru da5900b706
Makefile: fix the fetch-dlls target 2019-04-24 20:59:16 +02:00
Ștefan Talpalaru 39a2c5d3c7
bump submodules 2019-04-19 22:27:21 +02:00
Ștefan Talpalaru d2f0a3827d
Makefile: check if the C compiler exists 2019-04-19 13:38:37 +02:00
Ștefan Talpalaru 859968cdf2
Makefile fix 2019-04-19 12:49:14 +02:00
Ștefan Talpalaru 20d18e3af3
Windows: delete nimbus.nims on `mingw32-make update` 2019-04-17 18:37:30 +02:00
Ștefan Talpalaru 0412ecfc4f
libminiupnpc.a and libnatpmp.a: fix Windows compilation 2019-04-17 14:42:56 +02:00
Ștefan Talpalaru 8a3ef31ec4
tools and tests end up linking to the NAT libraries too 2019-04-17 04:19:56 +02:00
Ștefan Talpalaru d4aff04cbd
NAT port mapping 2019-04-17 03:56:28 +02:00
Ștefan Talpalaru b212d2ee21
Windows: copy all DLLs to vendor/nim-beacon-chain/build/ 2019-04-12 23:59:20 +02:00
Ștefan Talpalaru 7b1e031f89
we no longer need to rebuild Nimble 2019-04-12 15:33:12 +02:00
Ștefan Talpalaru b6f6795a17
rebuild the Nim compiler after the corresponding submodule is updated 2019-04-12 14:39:37 +02:00
Ștefan Talpalaru 8150199581
Makefile: low verbosity by default 2019-03-29 18:08:39 +01:00
Ștefan Talpalaru 3908c0e570
Makefile: rebuild Nimble in release mode 2019-03-29 16:29:04 +01:00
Ștefan Talpalaru 12a9904710
Makefile: echo "Building the Nim compiler." 2019-03-29 15:27:19 +01:00
Ștefan Talpalaru bb61c08fc2
Makefile: remove the "eth2_network_simulation" target
from the Nimbus Makefile, since it's now in teh nim-beacon-chain one.

Also bump vendor/nim-beacon-chain and vendor/nim-chronos
2019-03-28 16:32:03 +01:00
Ștefan Talpalaru 535cf1772c
Makefile: moved some reusable vars in common.mk for nim-beacon-chain
- also introduced TOOLS_DIRS for readability and ease  of maintenance
2019-03-26 19:23:07 +01:00
Ștefan Talpalaru 9f0c945336 CI: use a release build for the test suite (#278)
* CI: use a release build for the test suite

Makefile: the "testsuite" target is no longer needed

* rename EXTRA_NIM_PARAMS to NIMFLAGS
2019-03-16 18:54:30 -06:00
Jacek Sieka 9bd5b02f93
ci: make everything (#270)
* ci: make everything
* remove tools from test target, do avoid duplicate work in CI
2019-03-14 14:11:31 -06:00
Ștefan Talpalaru de3cf9ad2f
Makefile: don't override the test suite's loglevel by default 2019-03-12 23:50:49 +01:00
Ștefan Talpalaru 83d811ca1c Makefile: allow arbitrary nim params through EXTRA_NIM_PARAMS 2019-03-12 13:29:10 +02:00
Ștefan Talpalaru fba31263d4 Makefile: specify the Chronicles log level 2019-03-12 13:29:10 +02:00
Ștefan Talpalaru e1e56211ba
update libp2p-related submodules and its build process 2019-03-07 01:11:48 +01:00
Ștefan Talpalaru 4326d98434
testsuite: build the tools in parallel 2019-02-28 00:07:23 +01:00
Ștefan Talpalaru 36575d9451
Makefile: make "test-libp2p-daemon" a phony target 2019-02-27 13:58:55 +01:00
andri lim 14d1c28982 new member of premix tool set 2019-02-27 13:44:01 +02:00
Ștefan Talpalaru 12d18a1fd6 build p2pd and run some client tests
(with `make V=0 test-libp2p-daemon`)
2019-02-27 13:33:18 +02:00
Ștefan Talpalaru 2abf779668 fix rebase 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 9806110979 Makefile: better "github-ssh" target 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 5fcfa70be4 test-reproducibility: coloured messages 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru e9565258a6 Windows: disable timestamps in PE headers 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru a96976cd0a custom nimcache dir 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 05535591f1 quiet compiler building 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 0f656125ac macOS doesn't have "md5sum" 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 90dcb20d35 let the Makefile manage the symlink 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru da79a7e996 very simple reproducibility test
Additional changes:
- Makefile verbosity control
- nimble.sh can now run in parallel on the same *.nimble file
- nimble.sh no longer used in the Makefile, in favour of a nimbus.nims
  symlink that eliminates race risks in parallel jobs
- nimbus.nimble takes extra params in the command line, with the caveat
  that they also apply to nim
- setCommand() replaced with exec(), to avoid splitting param strings
2019-02-24 10:41:05 +02:00
Ștefan Talpalaru e8d654ed0f Windows: allow architecture override 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 50860e3817 Makefile: delete tool binaries in the "clean" target 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 63b8ce8c00 Windows: take into account the .exe suffix 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 69440a6b4c Makefile comments 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 74196c87ea don't bother rebuilding Nimble, since we don't use it 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 21f96bc19e macOS "ln" doesn't support "-r" 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru c07006030d update submodules 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 44a88bbf4c use "nim" instead of "nimble" to run *.nimble tasks 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru f8faa16e76 various fixes and improvements
- "vendor/Nim/dist" might not exist
- work around build_all.sh not liking a symbolic link for csources
- submodule rename: asyndispatch2 -> chronos
- allow parallel building of Nim csources
- Windows testing
- go back to detached HEADs for reproducible historical builds
- update submodules
- document workflows
2019-02-24 10:41:05 +02:00
Ștefan Talpalaru b7d5de3bed update Makefile comments 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru f98902e2e5 add submodules for csources and Nimble 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 53acac205a fix the github-ssh `make` target 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 16296cbe72 add submodules 2019-02-24 10:41:05 +02:00
Ștefan Talpalaru 500820c9e4 Makefile: bring GITHUB_REPOS up to date 2019-02-23 18:50:12 +02:00
Mamy Ratsimbazafy e1812eb7ce
Prepare for AD2 rebranding to chronos (#225)
* Prepare for AD2 rebranding to chronos - https://github.com/status-im/nim-asyncdispatch2/pull/20

* fix nimble path to chronos

* nim-eth and nim-chronos merged into nimble packages

* fix nimble package name
2019-02-06 19:03:36 +01:00
Yuriy Glukhov 481c6cf4ed Use nim-eth (#224) 2019-02-05 20:15:50 +01:00
Ștefan Talpalaru ede45648e7 Premix-related changes
- build all tools using the Makefile and place them in ./build
- add copyright header to Makefile
- premix/readme.md edited to fix some errors, improve descriptions and
  document Makefile usage
- link the Premix documentation in the main README.md
- also build `hunter` in the nimble tests
- refactored the file and directory search so all debugging tools can be run
  from the top-level dir like this: `./build/<tool> ...`
- write all JSON debugging data in the current directory
- add JSON files generated in the top-level dir to .gitignore
- Nimbus now exits with an exception after dumping debug data and
  running `premix` on it
2019-01-28 12:38:23 +02:00
Bruno Škvorc 85b979ec32 Missing r flag added to remove command (#219) 2019-01-24 14:34:26 +01:00
Zahary Karadjov 3619090cb4 Fix a changed path 2019-01-21 20:17:29 +02:00
Ștefan Talpalaru e267254b4c Makefile modifications
- dependency repos moved to "vendor/<package name>"; delete
  "vendor/repos" by hand after making sure it contains no unpushed work
- fixed the "validator_keygen" build and merged it with that of "beacon_node"
2019-01-09 22:26:40 +02:00
Ștefan Talpalaru 262eefac26 - marked the phony targets explicitly
- replaced `nimble` with `nim` for compiling, since `nim` already knows
  how to add the Nimble packages to its module path
- better target dependencies for "beacon_node" and "validator_keygen"
2019-01-09 14:25:00 +02:00
Ștefan Talpalaru afb76ff65c rebuild Nimble's package db when cloning newly added REPOS items 2019-01-09 14:25:00 +02:00
Zahary Karadjov 8b054858b3 Add build targets for nim-beacon-chain 2019-01-09 14:25:00 +02:00
Ștefan Talpalaru bd9d15d947 new build system
- isolate dependencies (both Git repos and ".nimble" dir) in "vendor"
- ensure that everything is compiled using our version of Nim with
  something as simple as "make"
- pull the latest changes with "make update"
- re-create Nimble's package dir and re-build the Nim compiler automatically when needed
- "env.sh" script that can be used to prefix any command that needs to use
  "nim" or "nimble" from our Nim repo
- move the top level nim.cfg to nimbus/nim.cfg so it doesn't apply to
  deps
- "fetch-dlls" `make` target for Windows to get precompiled Snappy, RocksDB and SQLite DLLs
2019-01-09 14:25:00 +02:00