Commit Graph

12 Commits

Author SHA1 Message Date
Steven Allen
6b0f9f71e0 build: use protoc-gen-* from gomod
Also,

* Make it possible to override the PROTOC binary.
* Remove gx targets.
2019-06-05 10:57:43 -07:00
Jakub Sztandera
7f80485d93 mk: remove gx from Makefiles
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-03-05 18:33:58 +01:00
Steven Allen
5f1b796365 upgrade gx/gx-go
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-10-09 12:36:22 +01:00
Dominic Della Valle
62153f9457 Update dist_root
License: MIT
Signed-off-by: Dominic Della Valle <ddvpublic@gmail.com>
2018-06-07 12:28:22 -04:00
Łukasz Magiera
22a25ef15c switch minimum go version to go 1.10
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
Signed-off-by: Victor Bjelkholm <git@victor.earth>
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-05-16 12:43:20 +01:00
Dominic Della Valle
e613e9dcfc Fix make deps on Windows
License: MIT
Signed-off-by: Dominic Della Valle <ddvpublic@gmail.com>
2018-02-13 17:10:25 -05:00
Jeromy
1a75c40f5b require go1.9
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-12-04 09:33:20 -08:00
Łukasz Magiera
c2603538fe docs: Require go 1.8
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-07-07 20:02:42 +02:00
Jakub Sztandera
f66f2f079d
Update gx to version 0.11
Previous version 0.10 was built with faulty version of Go 1.7 which has
problems with TCP -> DNS -> UDP timeouts.

This results in many failed calls to `gx install`

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-21 18:21:16 +01:00
Jakub Sztandera
e5a1097d52
Update gx
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:41 +01:00
Jakub Sztandera
545f03e9c3
Jenkins CI
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:41 +01:00
Jakub Sztandera
f630222580
make: rework makefiles for non-recursive make and add sharness coverage
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: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:40 +01:00