DEV: makefile: add a new "range" target to iteratively build all commits

This will iterate over all commits in the range passed in RANGE, or all
those from master to RANGE if no ".." exists in RANGE, and run "make all"
with the exact same variables. This aims to ease the verification that
no build failure exists inside a series. In case of error, it prints the
faulty commit and stops there with the tree checked out. Example:

  $ make-disctcc range RANGE=HEAD
  Found 14 commit(s) in range master..HEAD.
  Current branch is 20230809-plock+tbl+peers-4
  Starting to building now...
  [ 1/14 ]   392922bc5 #############################
  (...)
  Done! 14 commit(s) built successfully for RANGE master..HEAD

Maybe in the future it will automatically use HEAD as a default for RANGE
depending on the feedback.

It's not listed in the help target so as not to encourage users to try it
as it can very quickly become confusing due to the checkouts.

(cherry picked from commit 06d34d40db701c9c3c9b623bf33ee52b3c20b159)
[wt: backported to help validating backports]
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit 2da213c0b6c6bfe071d3fd7f502242a6f6c4b40c)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 8fa05334326c6e26e5c450d2a6f05f868260977c)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 3be308307f14c8334546a3240c39d37c78571690)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
1 file changed