1. 12 Feb, 2017 2 commits
    • Jakub Sztandera's avatar
      make: fix PATH escaping · 1d3e0393
      Jakub Sztandera authored
      License: MIT
      Signed-off-by: default avatarJakub Sztandera <kubuxu@protonmail.ch>
      1d3e0393
    • Jakub Sztandera's avatar
      make: rework makefiles for non-recursive make and add sharness coverage · f6302225
      Jakub Sztandera authored
      This commit introduces non-recursive Makefile infrastructure that replaces current Makefile infrastructure.
      It also generally cleanups the Makefiles, separates them into nicer sub-modules and centralizes common operations into single definitions.
      
      It allows to depend on any target that is defined in the makefile, this means that for example `gx install` is called once when `make build test_expensive_sharness` is called instead of 4 or 5 times.
      
      It also makes the dependencies much cleaner and allows for reuse of modules. For example sharness coverage collection (WIP) uses sharness target with amended PATH, previously it might have been possible but not without wiring in the coverage collection into sharness make runner code.
      
      Yes, it is more complex but not much more. There are few rules that have to be followed and few complexities added but IMHO it is worth it.
      
      How to NR-make:
      1. If make is to generate some file via a target, it MUST be defined in Rules.mk file in the directory of the target.
      2. `Rules.mk` file MUST have `include mk/header.mk` statement as the first line and `include mk/footer.mk` statement as the last line (apart from project root `Rules.mk`).
      3. It then MUST be included by the closest `Rules.mk` file up the directory tree.
      4. Inside a `Rules.mk` special variable accessed as `$(d)` is defined. Its value is current directory, use it so if the `Rules.mk` file is moved in the tree it still works without a problem. Caution: this variable is not available in the recipe part and MUST NOT be used. Use name of the target or prerequisite to extract it if you need it.
      5. Make has only one global scope, this means that name conflicts are a thing. Names SHOULD  follow `VAR_NAME_$(d)` convention. There are exceptions from this rule in form of well defined global variables. Examples: General lists `TGT_BIN`, `CLEAN`; General targets: `TEST`, `COVERAGE`; General variables: `GOFLAGS`, `DEPS_GO`.
      3. Any rules, definitions or variables that fit some family SHOULD be defined in `mk/$family.mk` file and included from project root `Rules.mk`
      
      License: MIT
      Signed-off-by: default avatarJakub Sztandera <kubuxu@protonmail.ch>
      f6302225
  2. 10 Jan, 2017 1 commit
  3. 06 Dec, 2016 3 commits
  4. 04 Dec, 2016 2 commits
  5. 02 Dec, 2016 2 commits
  6. 24 Nov, 2016 1 commit
  7. 26 Sep, 2016 1 commit
  8. 31 Aug, 2016 2 commits
  9. 23 Aug, 2016 2 commits
  10. 04 Aug, 2016 5 commits
  11. 19 Jul, 2016 1 commit
  12. 16 Jul, 2016 2 commits
  13. 17 Jun, 2016 1 commit
  14. 14 Jun, 2016 1 commit
    • Jakub Sztandera's avatar
      Fix DHT tests failing because of repeated addresses · 32cdbbdf
      Jakub Sztandera authored
      Due to SO_REUSE_PORT it is possible for a localhost:0
      address to repeat. This causes failure in DHT tests
      where we spun up a lot of nodes inside test.
      
      As for a birthday paradox it is enough to use 140
      ports to get 20% chance for collision which was causing
      failure in our case.
      
      The fix is to disable REUSE_PORT routine for the
      tests and leave it running for sharness tests where
      not that many addresses are used at the same time.
      
      License: MIT
      Signed-off-by: default avatarJakub Sztandera <kubuxu@protonmail.ch>
      32cdbbdf
  15. 05 Jun, 2016 1 commit
  16. 17 May, 2016 1 commit
    • Lars Gierth's avatar
      build: specify a dist.ipfs.io hash · 864e3055
      Lars Gierth authored
      Right now bin/dist_get trusts whatever DNS resolver is active.
      This change enables it to verify what it downloads.
      Verification itself remains TODO.
      
      This will work best with a unixfs-hash tool which is TODO too.
      It'd just do the equivalent of `ipfs add -n -r <dirOrFile>`.
      
      License: MIT
      Signed-off-by: default avatarLars Gierth <larsg@systemli.org>
      864e3055
  17. 16 May, 2016 1 commit
  18. 09 May, 2016 5 commits
  19. 04 May, 2016 2 commits
  20. 28 Apr, 2016 1 commit
    • Kevin Atkinson's avatar
      Refactor Makefile. · 31421aea
      Kevin Atkinson authored
      Move the go commands that should run under cmd/ipfs in the Makefile in
      cmd/ipfs rather than doing a "cd cmd/ipfs && go ..." in the root
      Makefile.
      
      The "cd cmd/ipfs && go ..." lines causes problems with GNU Emacs's
      compilation mode.  With the current setup Emacs is unable to jump to
      the location of the error outputted by go compiler as it can not find
      the source file.  The problem is that the embedded "cd" command causes
      Emacs's compilation mode to lose track of the current directory and
      thus attempts to look for the source file in the wrong directory.
      
      License: MIT
      Signed-off-by: default avatarKevin Atkinson <k@kevina.org>
      31421aea
  21. 27 Apr, 2016 1 commit
  22. 13 Apr, 2016 1 commit
  23. 28 Mar, 2016 1 commit