diff options
author | Luke T. Shumaker <lukeshu@lukeshu.com> | 2024-10-31 15:39:37 -0600 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@lukeshu.com> | 2024-10-31 16:00:34 -0600 |
commit | 3c81186daf97cf7011fd2806dfd0bc3b875e92f3 (patch) | |
tree | 30a6a4b50ab2eb15e7c6dcf934dc6052bbea0224 /Makefile | |
parent | f2d53195fd86023d2ff9fcce68d2e150bfd97059 (diff) |
Clean up the build system
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/Makefile b/Makefile deleted file mode 100644 index 26ce8ba..0000000 --- a/Makefile +++ /dev/null @@ -1,139 +0,0 @@ -# Makefile - Main build script for sbc-harness project -# -# Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com> -# SPDX-License-Identifier: AGPL-3.0-or-later - -linux.git = $(HOME)/src/github.com/torvalds/linux - -all: build -.PHONY: all - -.NOTINTERMEDIATE: -.DELETE_ON_ERROR: - -################################################################################ - -generate/files = - -generate/files += 3rd-party/linux-errno.txt -3rd-party/linux-errno.txt: %: %.gen - ./$< $(linux.git) - -generate/files += lib9p/include/lib9p/linux-errno.h -lib9p/include/lib9p/linux-errno.h: %: %.gen 3rd-party/linux-errno.txt - ./$^ >$@ - -generate/files += lib9p/9p.generated.c lib9p/include/lib9p/9p.generated.h -lib9p/9p.generated.c lib9p/include/lib9p/9p.generated.h &: lib9p/idl.gen lib9p/idl/*.9p - ./$^ - -generate/files += libusb/include/libusb/tusb_helpers.h 3rd-party/MS-LCID.pdf 3rd-party/MS-LCID.txt -libusb/include/libusb/tusb_helpers.h 3rd-party/MS-LCID.pdf 3rd-party/MS-LCID.txt &: libusb/include/libusb/tusb_helpers.h.gen - ./$^ - -################################################################################ - -platforms := $(shell sed -nE 's/if *\(PICO_PLATFORM STREQUAL "(.*)"\)/\1/p' cmd/*/CMakeLists.txt) - -build: $(foreach p,$(platforms),build/$p/build) -.PHONY: build - -$(foreach p,$(platforms),build/$p/Makefile): build/%/Makefile: - mkdir -p $(@D) && cd $(@D) && cmake -DCMAKE_BUILD_TYPE=Debug -DPICO_PLATFORM=$* ../.. - -$(foreach p,$(platforms),build/$p/build): build/%/build: build/%/Makefile - $(MAKE) -C $(<D) -.PHONY: $(foreach p,$(platforms),build/$p/build) - -generate: $(generate/files) -.PHONY: generate - -generate-clean: - rm -f -- $(generate/files) -.PHONY: generate-clean - -################################################################################ - -.PHONY: FORCE - -# List of sources, by type. -.sources.mk: $(if $(wildcard .git),FORCE) - git ls-files | grep -vFx $(foreach f,$(generate/files),-e $f) \ - | sed 's,^,$(CURDIR)/,' | xargs editorconfig \ - | sed -nE -e 's,\[$(CURDIR)/(.*)\],\1,p' -e 's/^_mode=//p' \ - | sed -E '{N;s/(.*)\n(.*)/sources_\2 += \1/;}' \ - | sort \ - >$@.tmp - if ! cmp -s $@.tmp $@; then mv $@.tmp $@; fi --include .sources.mk -sources_all := $(foreach v,$(filter sources_%,$(.VARIABLES)),$($v)) - -# lint ############# - -get_dscname = sed -n '1,3{ /^\#!/d; /^<!--$$/d; /-\*- .* -\*-/d; s,[/*\# ]*,,; s/ - .*//;p; q; }' - -lint: - $(MAKE) -k $(patsubst sources_%,lint/%,$(filter sources_%,$(.VARIABLES))) -lint/sh lint/bash: lint/%: - shellcheck $(sources_$*) -lint/python3: lint/%: - mypy --strict --scripts-are-modules $(sources_$*) - black --check $(sources_$*) - isort --check $(sources_$*) -lint/c: lint/%: - @for filename in $(filter %.h,$(sources_$*)); do \ - dscname=$$($(get_dscname) $$filename); \ - guard=$${dscname//'/'/'_'}; \ - guard=$${guard//'.'/'_'}; \ - guard="_$${guard^^}_"; \ - if ! { grep -Fxq "#ifndef $${guard}" "$$filename" && \ - grep -Fxq "#define $${guard}" "$$filename" && \ - grep -Fxq "#endif /* $${guard} */" "$$filename"; }; then \ - echo "$$filename does not have $${guard} guard"; r=1; \ - fi; \ - done -lint/make lint/cmake lint/gitignore lint/ini lint/9p lint/markdown: lint/%: - @: -lint/unknown: lint/%: - @printf "%s: cannot lint unknown file type\n" $(sources_$*) >&2 -lint/all: lint/%: - $(eval export sources_$*) - @find $$(printf '%s\n' $${sources_$*} | grep -vE '^cmd/[^/]+/static/') \ - -maxdepth 0 -type f | \ - { r=0; while read -r filename; do \ - if ! grep -q 'Copyright (C) 2024 Luke T. Shumaker' $$filename; then \ - echo "$$filename is missing a copyright statement"; r=1; \ - fi; \ - if ! grep -q ' SPDX-License-Identifier[:] ' $$filename; then \ - echo "$$filename is missing an SPDX-License-Identifier"; r=1; \ - fi; \ - dscname_act=$$($(get_dscname) $$filename); \ - dscname_exp=$$(echo "$$filename" | sed \ - -e 's,.*/config/,,' \ - -e 's,.*include/,,' \ - -e 's,^lib9p/idl/,,' \ - -e 's/\.wip$$//'); \ - if [ "$$dscname_act" != "$$dscname_exp" ] && [ "cmd/$$dscname_act" != "$$dscname_exp" ]; then \ - echo "$$filename self-identifies as $$dscname_act (expected $$dscname_exp)"; r=1; \ - fi; \ - if grep -n --color=auto "$$(printf '\\S\t')" $$filename; then \ - echo "$$filename uses tabs for alignment"; r=1; \ - fi; \ - done; exit $$r; } -.PHONY: lint lint/% - -# format ########### -format: - $(MAKE) -k $(patsubst sources_%,format/%,$(filter-out sources_all,$(filter sources_%,$(.VARIABLES)))) -format/python3: format/%: - black $(sources_$*) - isort $(sources_$*) -format/sh format/bash: format/% - @: -format/c: format/%: - @: TODO -format/make format/cmake format/gitignore format/ini format/9p format/markdown: format/%: - @: -format/unknown: format/%: - @: -.PHONY: format format/% |