CONTRIB: move some dev-specific tools to dev/

The following directories were moved from contrib/ to dev/ to make their
use case a bit clearer. In short, only developers are expected to ever
go there. The makefile was updated to build and clean from these ones.

base64/  flags/  hpack/  plug_qdisc/  poll/  tcploop/  trace/
diff --git a/.github/workflows/contrib.yml b/.github/workflows/contrib.yml
index 4b88938..4c328fd 100644
--- a/.github/workflows/contrib.yml
+++ b/.github/workflows/contrib.yml
@@ -13,12 +13,12 @@
     - name: Compile contrib/halog/halog
       run: |
         make contrib/halog/halog
-    - name: Compile contrib/debug/flags
+    - name: Compile dev/flags/flags
       run: |
-        make contrib/debug/flags
-    - name: Compile contrib/poll/poll
+        make dev/flags/flags
+    - name: Compile dev/poll/poll
       run: |
-        make contrib/poll/poll
-    - name: Compile contrib/hpack
+        make dev/poll/poll
+    - name: Compile dev/hpack
       run: |
-        make -C contrib/hpack
+        make -C dev/hpack
diff --git a/.gitignore b/.gitignore
index fdbc66a..0e2f78a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@
 !/VERDATE
 !/VERSION
 !/contrib
+!/dev
 !/doc
 !/ebtree
 !/examples
@@ -37,18 +38,18 @@
 *.orig
 *.bak
 # And reject some specific files
-/contrib/base64/base64rev
 /contrib/halog/halog
 /contrib/ip6range/ip6range
 /contrib/iprange/iprange
 /contrib/systemd/haproxy.service
 /contrib/spoa_example/spoa
-contrib/debug/flags
-contrib/poll/poll
+dev/base64/base64rev-gen
+dev/flags/flags
+dev/poll/poll
+dev/tcploop/tcploop
+dev/hpack/decode
+dev/hpack/gen-rht
 contrib/mod_defender/defender
 contrib/modsecurity/modsecurity
-contrib/hpack/decode
-contrib/hpack/gen-rht
-contrib/tcploop/tcploop
 /src/dlmalloc.c
 /tests/test_hashes
diff --git a/Makefile b/Makefile
index fc62b13..d5c1c5f 100644
--- a/Makefile
+++ b/Makefile
@@ -929,14 +929,14 @@
 contrib/halog/halog:
 	$(Q)$(MAKE) -C contrib/halog halog CC='$(cmd_CC)' OPTIMIZE='$(COPTS)'
 
-contrib/debug/flags:
-	$(Q)$(MAKE) -C contrib/debug flags CC='$(cmd_CC)' OPTIMIZE='$(COPTS)'
+dev/flags/flags: dev/flags/flags.o
+	$(cmd_LD) $(LDFLAGS) -o $@ $^ $(LDOPTS)
 
-contrib/debug/poll:
-	$(Q)$(MAKE) -C contrib/debug poll CC='$(cmd_CC)' OPTIMIZE='$(COPTS)'
+dev/poll/poll:
+	$(Q)$(MAKE) -C dev/poll poll CC='$(cmd_CC)' OPTIMIZE='$(COPTS)'
 
-contrib/tcploop/tcploop:
-	$(Q)$(MAKE) -C contrib/tcploop tcploop CC='$(cmd_CC)' OPTIMIZE='$(COPTS)'
+dev/tcploop/tcploop:
+	$(Q)$(MAKE) -C dev/tcploop tcploop CC='$(cmd_CC)' OPTIMIZE='$(COPTS)'
 
 # rebuild it every time
 .PHONY: src/version.c
@@ -991,11 +991,11 @@
 
 clean:
 	$(Q)rm -f *.[oas] src/*.[oas] haproxy test .build_opts .build_opts.new
-	$(Q)for dir in . src include/* doc; do rm -f $$dir/*~ $$dir/*.rej $$dir/core; done
+	$(Q)for dir in . src dev/* include/* doc; do rm -f $$dir/*~ $$dir/*.rej $$dir/core; done
 	$(Q)rm -f haproxy-$(VERSION).tar.gz haproxy-$(VERSION)$(SUBVERS)$(EXTRAVERSION).tar.gz
 	$(Q)rm -f haproxy-$(VERSION) haproxy-$(VERSION)$(SUBVERS)$(EXTRAVERSION) nohup.out gmon.out
-	$(Q)rm -f contrib/*/*.[oas] contrib/*/*/*.[oas] contrib/*/*/*/*.[oas]
-	$(Q)rm -f contrib/halog/halog contrib/debug/flags contrib/poll/poll contrib/tcploop/tcploop
+	$(Q)rm -f {dev,contrib}/*/*.[oas] {dev,contrib}/*/*/*.[oas] {dev,contrib}/*/*/*/*.[oas]
+	$(Q)rm -f contrib/halog/halog dev/flags/flags dev/poll/poll dev/tcploop/tcploop
 
 tags:
 	$(Q)find src include \( -name '*.c' -o -name '*.h' \) -print0 | \
diff --git a/contrib/base64/base64rev-gen.c b/dev/base64/base64rev-gen.c
similarity index 100%
rename from contrib/base64/base64rev-gen.c
rename to dev/base64/base64rev-gen.c
diff --git a/contrib/debug/Makefile b/dev/flags/Makefile
similarity index 100%
rename from contrib/debug/Makefile
rename to dev/flags/Makefile
diff --git a/contrib/debug/flags.c b/dev/flags/flags.c
similarity index 100%
rename from contrib/debug/flags.c
rename to dev/flags/flags.c
diff --git a/contrib/debug/show-fd-to-flags.sh b/dev/flags/show-fd-to-flags.sh
similarity index 100%
rename from contrib/debug/show-fd-to-flags.sh
rename to dev/flags/show-fd-to-flags.sh
diff --git a/contrib/hpack/Makefile b/dev/hpack/Makefile
similarity index 100%
rename from contrib/hpack/Makefile
rename to dev/hpack/Makefile
diff --git a/contrib/hpack/decode.c b/dev/hpack/decode.c
similarity index 98%
rename from contrib/hpack/decode.c
rename to dev/hpack/decode.c
index c924e48..ae82512 100644
--- a/contrib/hpack/decode.c
+++ b/dev/hpack/decode.c
@@ -2,7 +2,7 @@
  * HPACK stream decoder. Takes a series of hex codes on stdin using one line
  * per HEADERS frame. Spaces, tabs, CR, '-' and ',' are silently skipped.
  * e.g. :
- *   echo 82864188f439ce75c875fa5784 | contrib/hpack/decode
+ *   echo 82864188f439ce75c875fa5784 | dev/hpack/decode
  *
  * The DHT size may optionally be changed in argv[1].
  *
diff --git a/contrib/hpack/gen-enc.c b/dev/hpack/gen-enc.c
similarity index 100%
rename from contrib/hpack/gen-enc.c
rename to dev/hpack/gen-enc.c
diff --git a/contrib/hpack/gen-rht.c b/dev/hpack/gen-rht.c
similarity index 100%
rename from contrib/hpack/gen-rht.c
rename to dev/hpack/gen-rht.c
diff --git a/contrib/plug_qdisc/README b/dev/plug_qdisc/README
similarity index 100%
rename from contrib/plug_qdisc/README
rename to dev/plug_qdisc/README
diff --git a/contrib/plug_qdisc/plug_qdisc.c b/dev/plug_qdisc/plug_qdisc.c
similarity index 100%
rename from contrib/plug_qdisc/plug_qdisc.c
rename to dev/plug_qdisc/plug_qdisc.c
diff --git a/contrib/poll/Makefile b/dev/poll/Makefile
similarity index 100%
rename from contrib/poll/Makefile
rename to dev/poll/Makefile
diff --git a/contrib/poll/poll.c b/dev/poll/poll.c
similarity index 100%
rename from contrib/poll/poll.c
rename to dev/poll/poll.c
diff --git a/contrib/tcploop/Makefile b/dev/tcploop/Makefile
similarity index 100%
rename from contrib/tcploop/Makefile
rename to dev/tcploop/Makefile
diff --git a/contrib/tcploop/tcploop.c b/dev/tcploop/tcploop.c
similarity index 100%
rename from contrib/tcploop/tcploop.c
rename to dev/tcploop/tcploop.c
diff --git a/contrib/trace/trace.awk b/dev/trace/trace.awk
similarity index 100%
rename from contrib/trace/trace.awk
rename to dev/trace/trace.awk
diff --git a/src/hpack-huff.c b/src/hpack-huff.c
index 005dcc4..fd445db 100644
--- a/src/hpack-huff.c
+++ b/src/hpack-huff.c
@@ -304,7 +304,7 @@
 };
 
 
-/* Reversed huffman codes, generated by contrib/h2/gen-rht.c from the table
+/* Reversed huffman codes, generated by dev/hpack/gen-rht.c from the table
  * above.
  *
  * The codes are aligned on the MSB since that's how they appear in the stream.