detect duplicate comment fields
[simplev-cpp.git] / Makefile
index 30d97c4a0bcf689ff9147eb5dfce83d62e0896f7..f50397847187395e9acf8c752166f1e645d10dab 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,8 @@
 # SPDX-License-Identifier: LGPL-2.1-or-later
 # See Notices.txt for copyright information
-.PHONY: all tests clean fix-tests
+.PHONY: all tests clean fix-tests format-tests build-tests
+
+SHELL=/bin/bash
 
 CC = powerpc64le-linux-gnu-gcc
 CXX = powerpc64le-linux-gnu-g++
@@ -14,7 +16,10 @@ TESTS_DIR := $(dir $(TESTS_SOURCE))
 TESTS_BUILD_DIR := $(addprefix build/,$(TESTS_DIR))
 TESTS_DIFF := $(addsuffix diff.txt,$(TESTS_BUILD_DIR))
 TESTS_FILTERED_OUT := $(addsuffix filtered-out.s,$(TESTS_BUILD_DIR))
-EXTRA_DEPS := Makefile $(wildcard include/*.h)
+EXTRA_DEPS := Makefile $(wildcard include/*.h) include/simplev_cpp_generated.h
+
+include/simplev_cpp_generated.h: Makefile generate_headers.py
+       python3 generate_headers.py
 
 build/tests/%/:
        mkdir -p $@
@@ -31,9 +36,11 @@ build/tests/%/filtered-out.s: build/tests/%/out.s $(EXTRA_DEPS)
 build/tests/%/diff.txt: tests/%/expected.s build/tests/%/filtered-out.s $(EXTRA_DEPS)
        diff -u $< build/$(dir $<)filtered-out.s > $@ || true
 
-.PRECIOUS: build/tests/%/out.s build/tests/%/filtered-out.s build/tests/%/
+.PRECIOUS: build/tests/%/out.s build/tests/%/filtered-out.s build/tests/%/ include/simplev_cpp_generated.h
+
+tests: build-tests format-tests
 
-tests: $(TESTS_DIFF)
+build-tests: $(TESTS_DIFF)
        @failed=0; \
        for i in $+; do \
                if [ -s "$$i" -o ! -e "$$i" ]; then \
@@ -62,5 +69,12 @@ fix-tests: $(TESTS_FILTERED_OUT)
                fi; \
        done
 
+format-tests: Makefile include/simplev_cpp_generated.h .clang-format
+       @if ! which clang-format-11 > /dev/null; then \
+               echo "clang-format-11 not found -- skipping format test"; \
+       else \
+               diff -u <(clang-format-11 < include/simplev_cpp_generated.h) include/simplev_cpp_generated.h; \
+       fi
+
 clean:
-       rm -rf build/tests
\ No newline at end of file
+       rm -rf build/tests include/simplev_cpp_generated.h
\ No newline at end of file