diff options
author | Alejandro Colomar <alx@kernel.org> | 2024-02-13 22:34:17 +0100 |
---|---|---|
committer | Alejandro Colomar <alx@kernel.org> | 2024-02-17 02:38:31 +0100 |
commit | 546141e113576fe755c61388296c2620ca145de2 (patch) | |
tree | cd73582784a401d3ba828ffe0ba16d53b161bf38 | |
parent | 18c850db0696d941dbc3689efbd63d4dc40a0e1c (diff) | |
download | man-pages-546141e113576fe755c61388296c2620ca145de2.tar.gz |
share/mk/: Reorganize build dependencies
Signed-off-by: Alejandro Colomar <alx@kernel.org>
54 files changed, 730 insertions, 367 deletions
diff --git a/GNUmakefile b/GNUmakefile index 123419426d..bb8e2d2c6b 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -200,6 +200,7 @@ help-variables: $(info CC {EXTRA_,}CFLAGS) $(info LD {EXTRA_,}LDFLAGS {EXTRA_,}LDLIBS) $(info ) + $(info - {EXTRA_,}CLANGFLAGS) $(info CHECKPATCH {EXTRA_,}CHECKPATCHFLAGS) $(info CLANG-TIDY {EXTRA_,}CLANG-TIDYFLAGS) $(info CPPCHECK {EXTRA_,}CPPCHECKFLAGS) @@ -67,55 +67,17 @@ Description Dependencies - Build-depends: - - Generic: - - echo(1) - - expr(1) - - find(1) - - grep(1) - - locale(1) - - make(1) - GNU Make is required. - - sed(1) - - sort(1) - - xargs(1) - - - For installing: - - gzip(1) - - install(1) - - ln(1) - - sponge(1) - - test(1) - - - For uninstalling / cleaning: - - rm(1) - - rmdir(1) - - - For linting/building/checking man(7) source: - - eqn(1) - - grotty(1) - - head(1) - - mkdir(1) - - tail(1) - - tbl(1) - - troff(1) >= 1.23.0 - GNU troff is required. - - - For linting/building C source: - - cc(1) - GCC or Clang - - clang-tidy(1) - - cpplint(1) - - iwyu(1) - - mandoc(1) - - mkdir(1) - - pkg-config(1) - - tac(1) - - libbsd-dev - - And one that isn't packaged, but can be extracted from the - Linux kernel source tree in <scripts/checkpatch.pl>: - - - checkpatch(1) - - - For building HTML pages: - - man2html(1) + + To learn the build dependencies of the project, run + + $ find share/mk/ -type f \ + | xargs grep include.*configure/build-depends/ \ + | sed 's,share/mk/,,' \ + | sed 's,/.*:,:,' \ + | sed 's,include $.*/, ,' \ + | sed 's,\.mk,,g' \ + | sort \ + | uniq; - Depends: - man(1) diff --git a/share/mk/build/_.mk b/share/mk/build/_.mk index f812b21b42..53d5f0e057 100644 --- a/share/mk/build/_.mk +++ b/share/mk/build/_.mk @@ -8,21 +8,19 @@ ifndef MAKEFILE_BUILD_INCLUDED MAKEFILE_BUILD_INCLUDED := 1 -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/findutils.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/sed.mk +include $(MAKEFILEDIR)/configure/build-depends/sortman.mk include $(MAKEFILEDIR)/src.mk builddir := .tmp -SYSCONFDIR := $(srcdir)/etc - _MANDIR := $(builddir)/man -MKDIR := mkdir -p -RM := rm - - NONSO_MAN := $(shell $(FIND) $(MANDIR)/* -type f \ | $(GREP) '$(MANEXT)' \ | $(XARGS) $(GREP) -l '^\.TH ' \ @@ -35,11 +33,6 @@ NONSO_MDOC := $(shell $(FIND) $(MANDIR)/* -type f \ | $(SED) 's,:,\\:,g') -$(builddir)/%/: - +$(info MKDIR $@) - +$(MKDIR) $@ - - .PHONY: build build: build-book build-catman build-html build-pdf build-ps build-src; diff --git a/share/mk/build/book.mk b/share/mk/build/book.mk index 7e23cb237d..86cc9acd38 100644 --- a/share/mk/build/book.mk +++ b/share/mk/build/book.mk @@ -9,6 +9,7 @@ MAKEFILE_BUILD_BOOK_INCLUDED := 1 include $(MAKEFILEDIR)/build/_.mk +include $(MAKEFILEDIR)/configure/build-depends/moreutils.mk include $(MAKEFILEDIR)/src.mk diff --git a/share/mk/build/catman.mk b/share/mk/build/catman.mk index 3c8fa33461..2e6cdcb900 100644 --- a/share/mk/build/catman.mk +++ b/share/mk/build/catman.mk @@ -9,34 +9,14 @@ MAKEFILE_BUILD_CATMAN_INCLUDED := 1 include $(MAKEFILEDIR)/build/_.mk -include $(MAKEFILEDIR)/build/groff.mk -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk include $(MAKEFILEDIR)/src.mk groff_man_ignore_grep := $(DATAROOTDIR)/lint/groff/man.ignore.grep -MANWIDTH ?= 80 -TROFF_CHECKSTYLE_LVL := 3 -NROFF_LINE_LENGTH := $(shell $(EXPR) $(MANWIDTH) - 2) -NROFF_OUT_DEVICE := $(shell $(LOCALE) charmap \ - | $(GREP) -i 'utf-*8' >/dev/null \ - && $(ECHO) utf8 \ - || $(ECHO) ascii) - -DEFAULT_NROFFFLAGS := \ - -T$(NROFF_OUT_DEVICE) \ - -rLL=$(NROFF_LINE_LENGTH)n \ - -rCHECKSTYLE=$(TROFF_CHECKSTYLE_LVL) \ - -ww -EXTRA_NROFFFLAGS := -NROFFFLAGS := $(DEFAULT_NROFFFLAGS) $(EXTRA_NROFFFLAGS) - -DEFAULT_GROTTYFLAGS := -c -EXTRA_GROTTYFLAGS := -GROTTYFLAGS := $(DEFAULT_GROTTYFLAGS) $(EXTRA_GROTTYFLAGS) -GROTTY := grotty - _CATMAN_troff := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.cat.troff,$(NONSO_MAN) $(NONSO_MDOC)) _CATMAN_MAN_set := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.cat.set,$(NONSO_MAN)) @@ -51,7 +31,7 @@ $(_CATMAN_troff): %.cat.troff: %.eqn $(MK) | $$(@D)/ $(_CATMAN_MAN_set): %.cat.set: %.cat.troff $(groff_man_ignore_grep) $(MK) | $$(@D)/ $(info TROFF $@) - ! ($(TROFF) $(TROFFFLAGS_MAN) $(NROFFFLAGS) <$< 2>&1 >$@ \ + ! ($(TROFF) -man $(TROFFFLAGS) $(NROFFFLAGS) <$< 2>&1 >$@ \ | $(GREP) -v -f '$(groff_man_ignore_grep)' \ ||:; \ ) \ @@ -59,7 +39,7 @@ $(_CATMAN_MAN_set): %.cat.set: %.cat.troff $(groff_man_ignore_grep) $(MK) | $$(@ $(_CATMAN_MDOC_set): %.cat.set: %.cat.troff $(MK) | $$(@D)/ $(info TROFF $@) - ! ($(TROFF) $(TROFFFLAGS_MDOC) $(NROFFFLAGS) <$< 2>&1 >$@) \ + ! ($(TROFF) -mdoc $(TROFFFLAGS) $(NROFFFLAGS) <$< 2>&1 >$@) \ | $(GREP) ^ >&2 $(_CATMAN): %.cat: %.cat.set $(MK) | $$(@D)/ diff --git a/share/mk/build/groff.mk b/share/mk/build/groff.mk deleted file mode 100644 index 2a5a3de13a..0000000000 --- a/share/mk/build/groff.mk +++ /dev/null @@ -1,39 +0,0 @@ -######################################################################## -# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org> -# SPDX-License-Identifier: GPL-3.0-or-later -######################################################################## - - -ifndef MAKEFILE_BUILD_GROFF_INCLUDED -MAKEFILE_BUILD_GROFF_INCLUDED := 1 - - -include $(MAKEFILEDIR)/build/_.mk -include $(MAKEFILEDIR)/cmd.mk -include $(MAKEFILEDIR)/src.mk - - -DEFAULT_EQNFLAGS := -EXTRA_EQNFLAGS := -EQNFLAGS := $(DEFAULT_EQNFLAGS) $(EXTRA_EQNFLAGS) -EQN := eqn - -DEFAULT_TROFFFLAGS := -wbreak -EXTRA_TROFFFLAGS := -TROFFFLAGS := $(DEFAULT_TROFFFLAGS) $(EXTRA_TROFFFLAGS) -TROFF := troff - -DEFAULT_TROFFFLAGS_MAN := \ - $(TROFFFLAGS) \ - -man -EXTRA_TROFFFLAGS_MAN := -TROFFFLAGS_MAN := $(DEFAULT_TROFFFLAGS_MAN) $(EXTRA_TROFFFLAGS_MAN) - -DEFAULT_TROFFFLAGS_MDOC := \ - $(TROFFFLAGS) \ - -mdoc -EXTRA_TROFFFLAGS_MDOC := -TROFFFLAGS_MDOC := $(DEFAULT_TROFFFLAGS_MDOC) $(EXTRA_TROFFFLAGS_MDOC) - - -endif # include guard diff --git a/share/mk/build/html.mk b/share/mk/build/html.mk index 78e6114b57..84452ad249 100644 --- a/share/mk/build/html.mk +++ b/share/mk/build/html.mk @@ -9,7 +9,8 @@ MAKEFILE_BUILD_HTML_INCLUDED := 1 include $(MAKEFILEDIR)/build/_.mk -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/man2html.mk +include $(MAKEFILEDIR)/configure/build-depends/sed.mk include $(MAKEFILEDIR)/src.mk @@ -17,12 +18,6 @@ htmlext := .html _HTMLDIR := $(builddir)/html -DEFAULT_MAN2HTMLFLAGS := -EXTRA_MAN2HTMLFLAGS := -MAN2HTMLFLAGS := $(DEFAULT_MAN2HTMLFLAGS) $(EXTRA_MAN2HTMLFLAGS) -MAN2HTML := man2html - - _HTMLPAGES := $(patsubst $(MANDIR)/%,$(_HTMLDIR)/%$(htmlext),$(MANPAGES)) diff --git a/share/mk/build/pdf.mk b/share/mk/build/pdf.mk index 823ae0e306..aebd6358b9 100644 --- a/share/mk/build/pdf.mk +++ b/share/mk/build/pdf.mk @@ -9,17 +9,12 @@ MAKEFILE_BUILD_PDF_INCLUDED := 1 include $(MAKEFILEDIR)/build/_.mk -include $(MAKEFILEDIR)/build/groff.mk -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk +include $(MAKEFILEDIR)/configure/build-depends/groff.mk include $(MAKEFILEDIR)/src.mk -DEFAULT_GROPDFFLAGS := -EXTRA_GROPDFFLAGS := -GROPDFFLAGS := $(DEFAULT_GROPDFFLAGS) $(EXTRA_GROPDFFLAGS) -GROPDF := gropdf - - _PDFMAN_troff := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.pdf.troff,$(NONSO_MAN) $(NONSO_MDOC)) _PDFMAN_MAN_set := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.pdf.set,$(NONSO_MAN)) _PDFMAN_MDOC_set:= $(patsubst $(MANDIR)/%,$(_MANDIR)/%.pdf.set,$(NONSO_MDOC)) @@ -33,12 +28,12 @@ $(_PDFMAN_troff): %.pdf.troff: %.eqn $(MK) | $$(@D)/ $(_PDFMAN_MAN_set): %.pdf.set: %.pdf.troff $(MK) | $$(@D)/ $(info TROFF $@) - ! ($(TROFF) -Tpdf $(TROFFFLAGS_MAN) <$< 2>&1 >$@) \ + ! ($(TROFF) -man -Tpdf $(TROFFFLAGS) <$< 2>&1 >$@) \ | $(GREP) ^ >&2 $(_PDFMAN_MDOC_set): %.pdf.set: %.pdf.troff $(MK) | $$(@D)/ $(info TROFF $@) - ! ($(TROFF) -Tpdf $(TROFFFLAGS_MDOC) <$< 2>&1 >$@) \ + ! ($(TROFF) -mdoc -Tpdf $(TROFFFLAGS) <$< 2>&1 >$@) \ | $(GREP) ^ >&2 $(_PDFMAN): %.pdf: %.pdf.set $(MK) | $$(@D)/ diff --git a/share/mk/build/pre.mk b/share/mk/build/pre.mk index d390ef3609..126278d333 100644 --- a/share/mk/build/pre.mk +++ b/share/mk/build/pre.mk @@ -9,18 +9,10 @@ MAKEFILE_BUILD_PRE_INCLUDED := 1 include $(MAKEFILEDIR)/build/_.mk -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk include $(MAKEFILEDIR)/src.mk -DEFAULT_PRECONVFLAGS := -EXTRA_PRECONVFLAGS := -PRECONVFLAGS := $(DEFAULT_PRECONVFLAGS) $(EXTRA_PRECONVFLAGS) -PRECONV := preconv - -TBL := tbl - - _MAN_tbl := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.tbl,$(NONSO_MAN) $(NONSO_MDOC)) _MAN_eqn := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.eqn,$(NONSO_MAN) $(NONSO_MDOC)) diff --git a/share/mk/build/ps.mk b/share/mk/build/ps.mk index 907803a639..8a9c434e2b 100644 --- a/share/mk/build/ps.mk +++ b/share/mk/build/ps.mk @@ -9,17 +9,11 @@ MAKEFILE_BUILD_PS_INCLUDED := 1 include $(MAKEFILEDIR)/build/_.mk -include $(MAKEFILEDIR)/build/groff.mk -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk include $(MAKEFILEDIR)/src.mk -DEFAULT_GROPSFLAGS := -EXTRA_GROPSFLAGS := -GROPSFLAGS := $(DEFAULT_GROPSFLAGS) $(EXTRA_GROPSFLAGS) -GROPS := grops - - _PSMAN_troff := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.ps.troff,$(NONSO_MAN) $(NONSO_MDOC)) _PSMAN_MAN_set := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.ps.set,$(NONSO_MAN)) _PSMAN_MDOC_set:= $(patsubst $(MANDIR)/%,$(_MANDIR)/%.ps.set,$(NONSO_MDOC)) @@ -33,12 +27,12 @@ $(_PSMAN_troff): %.ps.troff: %.eqn $(MK) | $$(@D)/ $(_PSMAN_MAN_set): %.ps.set: %.ps.troff $(MK) | $$(@D)/ $(info TROFF $@) - ! ($(TROFF) -Tps $(TROFFFLAGS_MAN) <$< 2>&1 >$@) \ + ! ($(TROFF) -man -Tps $(TROFFFLAGS) <$< 2>&1 >$@) \ | $(GREP) ^ >&2 $(_PSMAN_MDOC_set): %.ps.set: %.ps.troff $(MK) | $$(@D)/ $(info TROFF $@) - ! ($(TROFF) -Tps $(TROFFFLAGS_MDOC) <$< 2>&1 >$@) \ + ! ($(TROFF) -mdoc -Tps $(TROFFFLAGS) <$< 2>&1 >$@) \ | $(GREP) ^ >&2 $(_PSMAN): %.ps: %.ps.set $(MK) | $$(@D)/ diff --git a/share/mk/build/src.mk b/share/mk/build/src.mk index 6f4e54bc7d..c6d1a12484 100644 --- a/share/mk/build/src.mk +++ b/share/mk/build/src.mk @@ -9,54 +9,19 @@ MAKEFILE_BUILD_SRC_INCLUDED := 1 include $(MAKEFILEDIR)/build/_.mk -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/cc.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/cpp.mk +include $(MAKEFILEDIR)/configure/build-depends/findutils.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/ld.mk +include $(MAKEFILEDIR)/configure/build-depends/mandoc.mk +include $(MAKEFILEDIR)/configure/build-depends/sed.mk +include $(MAKEFILEDIR)/configure/build-depends/sortman.mk include $(MAKEFILEDIR)/src.mk include $(MAKEFILEDIR)/verbose.mk -PKGCONF_LIBS := libbsd-overlay - - -DEFAULT_CPPFLAGS := $(shell $(PKGCONF) --cflags $(PKGCONF_LIBS) $(HIDE_ERR)) -EXTRA_CPPFLAGS := -CPPFLAGS := $(DEFAULT_CPPFLAGS) $(EXTRA_CPPFLAGS) - -DEFAULT_CFLAGS := \ - -std=gnu17 \ - -Wall \ - -Wextra \ - -Wstrict-prototypes \ - -Wdeclaration-after-statement \ - -Werror \ - -Wno-error=unused-parameter \ - -Wno-error=sign-compare \ - -Wno-error=format \ - -Wno-error=uninitialized - #-Wno-error=declaration-after-statement -EXTRA_CFLAGS := -CFLAGS := $(DEFAULT_CFLAGS) $(EXTRA_CFLAGS) - -DEFAULT_LDFLAGS := \ - -Wl,--as-needed \ - -Wl,--no-allow-shlib-undefined \ - -Wl,--no-copy-dt-needed-entries \ - -Wl,--no-undefined \ - $(shell $(PKGCONF) --libs-only-L $(PKGCONF_LIBS) $(HIDE_ERR)) \ - $(shell $(PKGCONF) --libs-only-other $(PKGCONF_LIBS) $(HIDE_ERR)) -EXTRA_LDFLAGS := -LDFLAGS := $(DEFAULT_LDFLAGS) $(EXTRA_LDFLAGS) - -DEFAULT_LDLIBS := \ - -lc \ - $(shell $(PKGCONF) --libs-only-l $(PKGCONF_LIBS) $(HIDE_ERR)) -EXTRA_LDLIBS := -LDLIBS := $(DEFAULT_LDLIBS) $(EXTRA_LDLIBS) - - -CC := cc -LD := $(CC) $(CFLAGS) - - _SRCPAGEDIRS := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.d/,$(NONSO_MAN)) _UNITS_src_src := $(patsubst $(MANDIR)/%,$(_MANDIR)/%,$(shell \ @@ -76,7 +41,7 @@ _UNITS_src_bin := $(patsubst %.c,%,$(_UNITS_src_c)) $(_SRCPAGEDIRS): $(_MANDIR)/%.d/: $(MANDIR)/% +$(info MKDIR $@) +$(MKDIR) $@ - +touch $@ + +$(TOUCH) $@ $(_UNITS_src_src): $$(patsubst $(_MANDIR)/%.d,$(MANDIR)/%,$$(@D)) $(MK) | $$(@D)/ $(_UNITS_src_c): $$(filter $$(@D)/%.h,$(_UNITS_src_h)) diff --git a/share/mk/check/catman.mk b/share/mk/check/catman.mk index ee64a02455..2d4b1e619d 100644 --- a/share/mk/check/catman.mk +++ b/share/mk/check/catman.mk @@ -8,20 +8,15 @@ ifndef MAKEFILE_CHECK_CATMAN_INCLUDED MAKEFILE_CHECK_CATMAN_INCLUDED := 1 -include $(MAKEFILEDIR)/cmd.mk include $(MAKEFILEDIR)/build/_.mk include $(MAKEFILEDIR)/build/catman.mk include $(MAKEFILEDIR)/check/_.mk +include $(MAKEFILEDIR)/configure/build-depends/bsdextrautils.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk include $(MAKEFILEDIR)/src.mk -DEFAULT_COLFLAGS := \ - -b \ - -p \ - -x -EXTRA_COLFLAGS := -COLFLAGS := $(DEFAULT_COLFLAGS) $(EXTRA_COLFLAGS) -COL := col _CHECK_catman_grep := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.cat.grep,$(NONSO_MAN) $(NONSO_MDOC)) @@ -35,7 +30,7 @@ $(_CHECK_catman_grep): %.grep: % $(MK) | $$(@D)/ $(_CHECK_catman): %.check-catman.touch: %.cat.grep $(MK) | $$(@D)/ $(info GREP $@) ! $(GREP) -n '.\{$(MANWIDTH)\}.' $< /dev/null >&2 - touch $@ + $(TOUCH) $@ .PHONY: check-catman-col diff --git a/share/mk/cmd.mk b/share/mk/cmd.mk deleted file mode 100644 index 1e06bd6fe1..0000000000 --- a/share/mk/cmd.mk +++ /dev/null @@ -1,40 +0,0 @@ -######################################################################## -# Copyright 2022, Alejandro Colomar <alx@kernel.org> -# SPDX-License-Identifier: GPL-3.0-or-later -######################################################################## - - -ifndef MAKEFILE_CMD_INCLUDED -MAKEFILE_CMD_INCLUDED := 1 - - -BZIP2 := bzip2 -CP := cp -ECHO := echo -EXPR := expr -FIND := find -GIT := git -GREP := grep -GZIP := gzip -HEAD := head -INSTALL := install -LN := ln -LOCALE := locale -LZIP := lzip -MANDOC := mandoc -PKGCONF := pkgconf -SED := sed -SORTMAN := $(srcdir)/scripts/sortman -SPONGE := sponge -TAC := tac -TAIL := tail -TAR := tar -TEST := test -XARGS := xargs -XZ := xz - -INSTALL_DATA := $(INSTALL) -m 644 -INSTALL_DIR := $(INSTALL) -m 755 -d - - -endif # include guard diff --git a/share/mk/compress.mk b/share/mk/compress.mk index 3b008166d1..cd80912a19 100644 --- a/share/mk/compress.mk +++ b/share/mk/compress.mk @@ -20,21 +20,4 @@ $(error Valid values for "Z": ["", ".bz2", ".gz", ".lz", ".xz"]) endif -DEFAULT_BZIP2FLAGS := -EXTRA_BZIP2FLAGS := -BZIP2FLAGS := $(DEFAULT_BZIP2FLAGS) $(EXTRA_BZIP2FLAGS) - -DEFAULT_GZIPFLAGS := -n -EXTRA_GZIPFLAGS := -GZIPFLAGS := $(DEFAULT_GZIPFLAGS) $(EXTRA_GZIPFLAGS) - -DEFAULT_LZIPFLAGS := -EXTRA_LZIPFLAGS := -LZIPFLAGS := $(DEFAULT_LZIPFLAGS) $(EXTRA_LZIPFLAGS) - -DEFAULT_XZFLAGS := -EXTRA_XZFLAGS := -XZFLAGS := $(DEFAULT_XZFLAGS) $(EXTRA_XZFLAGS) - - endif # include guard diff --git a/share/mk/configure/build-depends/bsdextrautils.mk b/share/mk/configure/build-depends/bsdextrautils.mk new file mode 100644 index 0000000000..6591dd271a --- /dev/null +++ b/share/mk/configure/build-depends/bsdextrautils.mk @@ -0,0 +1,18 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_BSDEXTRAUTILS_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_BSDEXTRAUTILS_INCLUDED := 1 + + +DEFAULT_COLFLAGS := \ + -b \ + -p \ + -x +EXTRA_COLFLAGS := +COLFLAGS := $(DEFAULT_COLFLAGS) $(EXTRA_COLFLAGS) +COL := col + + +endif # include guard diff --git a/share/mk/configure/build-depends/bzip2.mk b/share/mk/configure/build-depends/bzip2.mk new file mode 100644 index 0000000000..c2b7eacb9f --- /dev/null +++ b/share/mk/configure/build-depends/bzip2.mk @@ -0,0 +1,15 @@ +# Copyright 2023-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_BZIP2_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_BZIP2_INCLUDED := 1 + + +DEFAULT_BZIP2FLAGS := +EXTRA_BZIP2FLAGS := +BZIP2FLAGS := $(DEFAULT_BZIP2FLAGS) $(EXTRA_BZIP2FLAGS) +BZIP2 := bzip2 + + +endif # include guard diff --git a/share/mk/configure/build-depends/cc.mk b/share/mk/configure/build-depends/cc.mk new file mode 100644 index 0000000000..88c88fc228 --- /dev/null +++ b/share/mk/configure/build-depends/cc.mk @@ -0,0 +1,61 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_CC_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_CC_INCLUDED := 1 + + +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/sed.mk + + +CC := gcc + + +CC_VENDOR := \ + $(shell \ + $(CC) -v 2>&1 \ + | $(SED) -n '1p;$$p' \ + | $(SED) '/gcc version/s/.*/gcc/' \ + | $(SED) '/clang version/s/.*/clang/' \ + | $(SED) '/Apple LLVM version/s/.*/clang/' \ + | $(GREP) -e '^gcc$$' -e '^clang$$' \ + || $(ECHO) unknown; \ + ) + + +COMMON_CFLAGS := \ + -O3 \ + -flto \ + -Wall \ + -Wextra \ + -Werror \ + -Wstrict-prototypes \ + -Wdeclaration-after-statement \ + -Wno-error=unused-parameter \ + -Wno-error=sign-compare \ + -Wno-error=format \ + -Wno-error=uninitialized + + +GCC_CFLAGS := -fanalyzer + + +CLANG_CFLAGS := -Weverything + + +DEFAULT_CFLAGS := $(COMMON_CFLAGS) + +ifeq ($(CC_VENDOR),gcc) +DEFAULT_CFLAGS += $(GCC_CFLAGS) +else ifeq ($(CC_VENDOR),clang) +DEFAULT_CFLAGS += $(CLANG_CFLAGS) +endif + +EXTRA_CFLAGS := +CFLAGS := $(DEFAULT_CFLAGS) $(EXTRA_CFLAGS) + + +endif # include guard diff --git a/share/mk/configure/build-depends/checkpatch.mk b/share/mk/configure/build-depends/checkpatch.mk new file mode 100644 index 0000000000..e1b11b1bc9 --- /dev/null +++ b/share/mk/configure/build-depends/checkpatch.mk @@ -0,0 +1,19 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_CHECKPATCH_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_CHECKPATCH_INCLUDED := 1 + + +include $(MAKEFILEDIR)/src.mk + + +CHECKPATCH_CONF := $(SYSCONFDIR)/checkpatch/checkpatch.conf +DEFAULT_CHECKPATCHFLAGS := +EXTRA_CHECKPATCHFLAGS := +CHECKPATCHFLAGS := $(DEFAULT_CHECKPATCHFLAGS) $(EXTRA_CHECKPATCHFLAGS) +CHECKPATCH := checkpatch + + +endif # include guard diff --git a/share/mk/configure/build-depends/clang-tidy.mk b/share/mk/configure/build-depends/clang-tidy.mk new file mode 100644 index 0000000000..f0b9681f41 --- /dev/null +++ b/share/mk/configure/build-depends/clang-tidy.mk @@ -0,0 +1,22 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_CLANG_TIDY_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_CLANG_TIDY_INCLUDED := 1 + + +include $(MAKEFILEDIR)/src.mk + + +CLANG_TIDY_CONF := $(SYSCONFDIR)/clang-tidy/config.yaml +DEFAULT_CLANG_TIDYFLAGS := \ + --config-file=$(CLANG_TIDY_CONF) \ + --quiet \ + --use-color +EXTRA_CLANG_TIDYFLAGS := +CLANG_TIDYFLAGS := $(DEFAULT_CLANG_TIDYFLAGS) $(EXTRA_CLANG_TIDYFLAGS) +CLANG_TIDY := clang-tidy + + +endif # include guard diff --git a/share/mk/configure/build-depends/clang.mk b/share/mk/configure/build-depends/clang.mk new file mode 100644 index 0000000000..18fb7592fd --- /dev/null +++ b/share/mk/configure/build-depends/clang.mk @@ -0,0 +1,19 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_CLANG_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_CLANG_INCLUDED := 1 + + +include $(MAKEFILEDIR)/configure/build-depends/cc.mk + + +DEFAULT_CLANGFLAGS := \ + $(COMMON_CFLAGS) \ + $(CLANG_CFLAGS) +EXTRA_CLANGFLAGS := +CLANGFLAGS := $(DEFAULT_CLANGFLAGS) $(EXTRA_CLANGFLAGS) + + +endif # include guard diff --git a/share/mk/configure/build-depends/coreutils.mk b/share/mk/configure/build-depends/coreutils.mk new file mode 100644 index 0000000000..140ba13f2f --- /dev/null +++ b/share/mk/configure/build-depends/coreutils.mk @@ -0,0 +1,28 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_COREUTILS_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_COREUTILS_INCLUDED := 1 + + +CP := cp +ECHO := echo +EXPR := expr +HEAD := head +INSTALL := install +LN := ln +MKTEMP := mktemp +RM := rm +SORT := sort +TAC := tac +TAIL := tail +TEST := test +TOUCH := touch + + +INSTALL_DATA := $(INSTALL) -m 644 +INSTALL_DIR := $(INSTALL) -m 755 -d + + +endif # include guard diff --git a/share/mk/configure/build-depends/cpp.mk b/share/mk/configure/build-depends/cpp.mk new file mode 100644 index 0000000000..e7de318328 --- /dev/null +++ b/share/mk/configure/build-depends/cpp.mk @@ -0,0 +1,20 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_CPP_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_CPP_INCLUDED := 1 + + +include $(MAKEFILEDIR)/configure/build-depends/cc.mk +include $(MAKEFILEDIR)/configure/build-depends/pkgconf.mk +include $(MAKEFILEDIR)/verbose.mk + + +DEFAULT_CPPFLAGS := $(shell $(PKGCONF_CMD) --cflags $(PKGCONF_LIBS) $(HIDE_ERR)) +EXTRA_CPPFLAGS := +CPPFLAGS := $(DEFAULT_CPPFLAGS) $(EXTRA_CPPFLAGS) +CPP := $(CC) $(CFLAGS) -E + + +endif # include guard diff --git a/share/mk/configure/build-depends/cppcheck.mk b/share/mk/configure/build-depends/cppcheck.mk new file mode 100644 index 0000000000..4dfad8fddb --- /dev/null +++ b/share/mk/configure/build-depends/cppcheck.mk @@ -0,0 +1,21 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_CPPCHECK_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_CPPCHECK_INCLUDED := 1 + + +CPPCHECK_SUPPRESS := $(SYSCONFDIR)/cppcheck/cppcheck.suppress +DEFAULT_CPPCHECKFLAGS := \ + --enable=all \ + --error-exitcode=2 \ + --inconclusive \ + --quiet \ + --suppressions-list=$(CPPCHECK_SUPPRESS) +EXTRA_CPPCHECKFLAGS := +CPPCHECKFLAGS := $(DEFAULT_CPPCHECKFLAGS) $(EXTRA_CPPCHECKFLAGS) +CPPCHECK := cppcheck + + +endif # include guard diff --git a/share/mk/configure/build-depends/cpplint.mk b/share/mk/configure/build-depends/cpplint.mk new file mode 100644 index 0000000000..118212c4ee --- /dev/null +++ b/share/mk/configure/build-depends/cpplint.mk @@ -0,0 +1,16 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_CPPLINT_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_CPPLINT_INCLUDED := 1 + + +CPPLINT_CONF := $(SYSCONFDIR)/cpplint/cpplint.cfg +DEFAULT_CPPLINTFLAGS := +EXTRA_CPPLINTFLAGS := +CPPLINTFLAGS := $(DEFAULT_CPPLINTFLAGS) $(EXTRA_CPPLINTFLAGS) +CPPLINT := cpplint + + +endif # include guard diff --git a/share/mk/configure/build-depends/diffoscope.mk b/share/mk/configure/build-depends/diffoscope.mk new file mode 100644 index 0000000000..957ddff893 --- /dev/null +++ b/share/mk/configure/build-depends/diffoscope.mk @@ -0,0 +1,12 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_DIFFOSCOPE_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_DIFFOSCOPE_INCLUDED := 1 + + +DIFFOSCOPE := diffoscope + + +endif # include guard diff --git a/share/mk/configure/build-depends/findutils.mk b/share/mk/configure/build-depends/findutils.mk new file mode 100644 index 0000000000..9c38820a30 --- /dev/null +++ b/share/mk/configure/build-depends/findutils.mk @@ -0,0 +1,13 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_FINDUTILS_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_FINDUTILS_INCLUDED := 1 + + +FIND := find +XARGS := xargs + + +endif # include guard diff --git a/share/mk/configure/build-depends/git.mk b/share/mk/configure/build-depends/git.mk new file mode 100644 index 0000000000..d079c771a8 --- /dev/null +++ b/share/mk/configure/build-depends/git.mk @@ -0,0 +1,12 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_GIT_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_GIT_INCLUDED := 1 + + +GIT := git + + +endif # include guard diff --git a/share/mk/configure/build-depends/grep.mk b/share/mk/configure/build-depends/grep.mk new file mode 100644 index 0000000000..a00c265705 --- /dev/null +++ b/share/mk/configure/build-depends/grep.mk @@ -0,0 +1,12 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_GREP_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_GREP_INCLUDED := 1 + + +GREP := grep + + +endif # include guard diff --git a/share/mk/configure/build-depends/groff-base.mk b/share/mk/configure/build-depends/groff-base.mk new file mode 100644 index 0000000000..d118b2c028 --- /dev/null +++ b/share/mk/configure/build-depends/groff-base.mk @@ -0,0 +1,66 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_GROFF_BASE_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_GROFF_BASE_INCLUDED := 1 + + +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/libc-bin.mk +include $(MAKEFILEDIR)/configure/build-depends/man.mk + + +DEFAULT_PRECONVFLAGS := +EXTRA_PRECONVFLAGS := +PRECONVFLAGS := $(DEFAULT_PRECONVFLAGS) $(EXTRA_PRECONVFLAGS) +PRECONV := preconv + + +TBL := tbl + + +DEFAULT_EQNFLAGS := +EXTRA_EQNFLAGS := +EQNFLAGS := $(DEFAULT_EQNFLAGS) $(EXTRA_EQNFLAGS) +EQN := eqn + + +DEFAULT_TROFFFLAGS := -wbreak +EXTRA_TROFFFLAGS := +TROFFFLAGS := $(DEFAULT_TROFFFLAGS) $(EXTRA_TROFFFLAGS) +TROFF := troff + + +TROFF_CHECKSTYLE_LVL := 3 +NROFF_LINE_LENGTH := $(shell $(EXPR) $(MANWIDTH) - 2) +NROFF_OUT_DEVICE := \ + $(shell $(LOCALE) charmap \ + | $(GREP) -i 'utf-*8' >/dev/null \ + && $(ECHO) utf8 \ + || $(ECHO) ascii \ + ) + +DEFAULT_NROFFFLAGS := \ + -T$(NROFF_OUT_DEVICE) \ + -rLL=$(NROFF_LINE_LENGTH)n \ + -rCHECKSTYLE=$(TROFF_CHECKSTYLE_LVL) \ + -ww +EXTRA_NROFFFLAGS := +NROFFFLAGS := $(DEFAULT_NROFFFLAGS) $(EXTRA_NROFFFLAGS) + + +DEFAULT_GROTTYFLAGS := -c +EXTRA_GROTTYFLAGS := +GROTTYFLAGS := $(DEFAULT_GROTTYFLAGS) $(EXTRA_GROTTYFLAGS) +GROTTY := grotty + + +DEFAULT_GROPSFLAGS := +EXTRA_GROPSFLAGS := +GROPSFLAGS := $(DEFAULT_GROPSFLAGS) $(EXTRA_GROPSFLAGS) +GROPS := grops + + +endif # include guard diff --git a/share/mk/configure/build-depends/groff.mk b/share/mk/configure/build-depends/groff.mk new file mode 100644 index 0000000000..7043cb0100 --- /dev/null +++ b/share/mk/configure/build-depends/groff.mk @@ -0,0 +1,15 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_GROFF_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_GROFF_INCLUDED := 1 + + +DEFAULT_GROPDFFLAGS := +EXTRA_GROPDFFLAGS := +GROPDFFLAGS := $(DEFAULT_GROPDFFLAGS) $(EXTRA_GROPDFFLAGS) +GROPDF := gropdf + + +endif # include guard diff --git a/share/mk/configure/build-depends/gzip.mk b/share/mk/configure/build-depends/gzip.mk new file mode 100644 index 0000000000..029e86c178 --- /dev/null +++ b/share/mk/configure/build-depends/gzip.mk @@ -0,0 +1,15 @@ +# Copyright 2023-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_GZIP_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_GZIP_INCLUDED := 1 + + +DEFAULT_GZIPFLAGS := -n +EXTRA_GZIPFLAGS := +GZIPFLAGS := $(DEFAULT_GZIPFLAGS) $(EXTRA_GZIPFLAGS) +GZIP := gzip + + +endif # include guard diff --git a/share/mk/configure/build-depends/iwyu.mk b/share/mk/configure/build-depends/iwyu.mk new file mode 100644 index 0000000000..cd0ab8e913 --- /dev/null +++ b/share/mk/configure/build-depends/iwyu.mk @@ -0,0 +1,17 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_IWYU_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_IWYU_INCLUDED := 1 + + +DEFAULT_IWYUFLAGS := \ + -Xiwyu --no_fwd_decls \ + -Xiwyu --error +EXTRA_IWYUFLAGS := +IWYUFLAGS := $(DEFAULT_IWYUFLAGS) $(EXTRA_IWYUFLAGS) +IWYU := iwyu + + +endif # include guard diff --git a/share/mk/configure/build-depends/ld.mk b/share/mk/configure/build-depends/ld.mk new file mode 100644 index 0000000000..0d1f37e4b1 --- /dev/null +++ b/share/mk/configure/build-depends/ld.mk @@ -0,0 +1,50 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_LD_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_LD_INCLUDED := 1 + + +include $(MAKEFILEDIR)/configure/build-depends/cc.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/pkgconf.mk +include $(MAKEFILEDIR)/verbose.mk + + +LD := $(CC) $(CFLAGS) + + +LD_HAS_FUSE_LINKER_PLUGIN := \ + $(shell \ + $(ECHO) 'int main(void) {}' \ + | $(LD) -fuse-linker-plugin -x c -o /dev/null /dev/stdin $(HIDE_ERR) \ + && $(ECHO) yes \ + || $(ECHO) no; \ + ) + + +DEFAULT_LDFLAGS := \ + -Wl,--as-needed \ + -Wl,--no-allow-shlib-undefined \ + -Wl,--no-copy-dt-needed-entries \ + -Wl,--no-undefined \ + $(shell $(PKGCONF_CMD) --libs-only-L $(PKGCONF_LIBS) $(HIDE_ERR)) \ + $(shell $(PKGCONF_CMD) --libs-only-other $(PKGCONF_LIBS) $(HIDE_ERR)) + +ifeq ($(LD_HAS_FUSE_LINKER_PLUGIN),yes) +DEFAULT_LDFLAGS += -fuse-linker-plugin +endif + +EXTRA_LDFLAGS := +LDFLAGS := $(DEFAULT_LDFLAGS) $(EXTRA_LDFLAGS) + + +DEFAULT_LDLIBS := \ + -lc \ + $(shell $(PKGCONF_CMD) --libs-only-l $(PKGCONF_LIBS) $(HIDE_ERR)) +EXTRA_LDLIBS := +LDLIBS := $(DEFAULT_LDLIBS) $(EXTRA_LDLIBS) + + +endif # include guard diff --git a/share/mk/configure/build-depends/libc-bin.mk b/share/mk/configure/build-depends/libc-bin.mk new file mode 100644 index 0000000000..e0818e091d --- /dev/null +++ b/share/mk/configure/build-depends/libc-bin.mk @@ -0,0 +1,12 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_LIBC_BIN_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_LIBC_BIN_INCLUDED := 1 + + +LOCALE := locale + + +endif # include guard diff --git a/share/mk/configure/build-depends/lzip.mk b/share/mk/configure/build-depends/lzip.mk new file mode 100644 index 0000000000..ec33b1e7f2 --- /dev/null +++ b/share/mk/configure/build-depends/lzip.mk @@ -0,0 +1,15 @@ +# Copyright 2023-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_LZIP_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_LZIP_INCLUDED := 1 + + +DEFAULT_LZIPFLAGS := +EXTRA_LZIPFLAGS := +LZIPFLAGS := $(DEFAULT_LZIPFLAGS) $(EXTRA_LZIPFLAGS) +LZIP := lzip + + +endif # include guard diff --git a/share/mk/configure/build-depends/man.mk b/share/mk/configure/build-depends/man.mk new file mode 100644 index 0000000000..64a1ce8037 --- /dev/null +++ b/share/mk/configure/build-depends/man.mk @@ -0,0 +1,12 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_MAN_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_MAN_INCLUDED := 1 + + +MANWIDTH ?= 80 + + +endif # include guard diff --git a/share/mk/configure/build-depends/man2html.mk b/share/mk/configure/build-depends/man2html.mk new file mode 100644 index 0000000000..e7ffb5911a --- /dev/null +++ b/share/mk/configure/build-depends/man2html.mk @@ -0,0 +1,15 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_MAN2HTML_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_MAN2HTML_INCLUDED := 1 + + +DEFAULT_MAN2HTMLFLAGS := +EXTRA_MAN2HTMLFLAGS := +MAN2HTMLFLAGS := $(DEFAULT_MAN2HTMLFLAGS) $(EXTRA_MAN2HTMLFLAGS) +MAN2HTML := man2html + + +endif # include guard diff --git a/share/mk/configure/build-depends/mandoc.mk b/share/mk/configure/build-depends/mandoc.mk new file mode 100644 index 0000000000..62feb7af25 --- /dev/null +++ b/share/mk/configure/build-depends/mandoc.mk @@ -0,0 +1,15 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_MANDOC_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_MANDOC_INCLUDED := 1 + + +DEFAULT_MANDOCFLAGS := -Tlint +EXTRA_MANDOCFLAGS := +MANDOCFLAGS := $(DEFAULT_MANDOCFLAGS) $(EXTRA_MANDOCFLAGS) +MANDOC := mandoc + + +endif # include guard diff --git a/share/mk/configure/build-depends/moreutils.mk b/share/mk/configure/build-depends/moreutils.mk new file mode 100644 index 0000000000..88ec677a97 --- /dev/null +++ b/share/mk/configure/build-depends/moreutils.mk @@ -0,0 +1,12 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_MOREUTILS_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_MOREUTILS_INCLUDED := 1 + + +SPONGE := sponge + + +endif # include guard diff --git a/share/mk/configure/build-depends/pkgconf.mk b/share/mk/configure/build-depends/pkgconf.mk new file mode 100644 index 0000000000..8a7cf05666 --- /dev/null +++ b/share/mk/configure/build-depends/pkgconf.mk @@ -0,0 +1,27 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_PKGCONF_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_PKGCONF_INCLUDED := 1 + + +include $(MAKEFILEDIR)/src.mk +include $(MAKEFILEDIR)/version.mk + + +# Compat +PKG_CONFIG := pkgconf + + +DEFAULT_PKGCONFFLAGS := +EXTRA_PKGCONFFLAGS := +PKGCONFFLAGS := $(DEFAULT_PKGCONFFLAGS) $(EXTRA_PKGCONFFLAGS) +PKGCONF := $(PKG_CONFIG) +PKGCONF_CMD := $(PKGCONF) $(PKGCONFFLAGS) + + +PKGCONF_LIBS := libbsd-overlay + + +endif # include guard diff --git a/share/mk/configure/build-depends/sed.mk b/share/mk/configure/build-depends/sed.mk new file mode 100644 index 0000000000..f98031e773 --- /dev/null +++ b/share/mk/configure/build-depends/sed.mk @@ -0,0 +1,12 @@ +# Copyright 2022-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_SED_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_SED_INCLUDED := 1 + + +SED := sed + + +endif # include guard diff --git a/share/mk/configure/build-depends/sortman.mk b/share/mk/configure/build-depends/sortman.mk new file mode 100644 index 0000000000..cbece9ec1e --- /dev/null +++ b/share/mk/configure/build-depends/sortman.mk @@ -0,0 +1,12 @@ +# Copyright 2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_SORTMAN_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_SORTMAN_INCLUDED := 1 + + +SORTMAN := $(srcdir)/scripts/sortman + + +endif # include guard diff --git a/share/mk/configure/build-depends/tar.mk b/share/mk/configure/build-depends/tar.mk new file mode 100644 index 0000000000..f4a404867c --- /dev/null +++ b/share/mk/configure/build-depends/tar.mk @@ -0,0 +1,22 @@ +# Copyright 2021-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_TAR_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_TAR_INCLUDED := 1 + + +include $(MAKEFILEDIR)/version.mk + + +DEFAULT_TARFLAGS := \ + --sort=name \ + --owner=root:0 \ + --group=root:0 \ + --mtime='$(DISTDATE)' +EXTRA_TARFLAGS := +TARFLAGS := $(DEFAULT_TARFLAGS) $(EXTRA_TARFLAGS) +TAR := tar + + +endif # include guard diff --git a/share/mk/configure/build-depends/xz-utils.mk b/share/mk/configure/build-depends/xz-utils.mk new file mode 100644 index 0000000000..5b8fb0c85c --- /dev/null +++ b/share/mk/configure/build-depends/xz-utils.mk @@ -0,0 +1,15 @@ +# Copyright 2023-2024 Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_XZ_UTILS_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_XZ_UTILS_INCLUDED := 1 + + +DEFAULT_XZFLAGS := +EXTRA_XZFLAGS := +XZFLAGS := $(DEFAULT_XZFLAGS) $(EXTRA_XZFLAGS) +XZ := xz + + +endif # include guard diff --git a/share/mk/dist.mk b/share/mk/dist.mk index d012284f56..a5e792c8e7 100644 --- a/share/mk/dist.mk +++ b/share/mk/dist.mk @@ -9,8 +9,15 @@ MAKEFILE_DIST_INCLUDED := 1 include $(MAKEFILEDIR)/build/_.mk -include $(MAKEFILEDIR)/cmd.mk -include $(MAKEFILEDIR)/compress.mk +include $(MAKEFILEDIR)/configure/build-depends/bzip2.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/findutils.mk +include $(MAKEFILEDIR)/configure/build-depends/git.mk +include $(MAKEFILEDIR)/configure/build-depends/gzip.mk +include $(MAKEFILEDIR)/configure/build-depends/lzip.mk +include $(MAKEFILEDIR)/configure/build-depends/sed.mk +include $(MAKEFILEDIR)/configure/build-depends/tar.mk +include $(MAKEFILEDIR)/configure/build-depends/xz-utils.mk include $(MAKEFILEDIR)/install/_.mk include $(MAKEFILEDIR)/version.mk include $(MAKEFILEDIR)/verbose.mk @@ -19,15 +26,6 @@ include $(MAKEFILEDIR)/verbose.mk _DISTDIR := $(builddir)/dist -DEFAULT_TARFLAGS := \ - --sort=name \ - --owner=root:0 \ - --group=root:0 \ - --mtime='$(DISTDATE)' -EXTRA_TARFLAGS := -TARFLAGS := $(DEFAULT_TARFLAGS) $(EXTRA_TARFLAGS) - - DISTFILES := $(shell $(GIT) ls-files $(HIDE_ERR) \ | $(SED) 's,^,$(srcdir)/,' \ | $(SED) 's,:,\\:,g') @@ -68,7 +66,7 @@ define DISTFILE_z_rule $(DISTFILE).$(2): %.$(2): % $(MK) | $$$$(@D)/ $$(info $(1) $$@) $($(1)) $($(1)FLAGS) -kf $$< - touch $$@ + $(TOUCH) $$@ endef $(eval $(call DISTFILE_z_rule,BZIP2,bz2)) diff --git a/share/mk/install/_.mk b/share/mk/install/_.mk index 751ab97e21..bf5dc3082e 100644 --- a/share/mk/install/_.mk +++ b/share/mk/install/_.mk @@ -8,18 +8,17 @@ ifndef MAKEFILE_INSTALL_INCLUDED MAKEFILE_INSTALL_INCLUDED := 1 -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk -DESTDIR := -prefix := /usr/local - +DESTDIR := +prefix := /usr/local datarootdir := $(prefix)/share docdir := $(datarootdir)/doc -$(DESTDIR)%/: - +$(info INSTALL $@) +%/: + +$(info MKDIR $@) +$(INSTALL_DIR) $@ %-rm: diff --git a/share/mk/install/html.mk b/share/mk/install/html.mk index aa111ca47e..9f836f76bf 100644 --- a/share/mk/install/html.mk +++ b/share/mk/install/html.mk @@ -9,6 +9,7 @@ MAKEFILE_INSTALL_HTML_INCLUDED := 1 include $(MAKEFILEDIR)/build/html.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk include $(MAKEFILEDIR)/install/_.mk diff --git a/share/mk/install/man.mk b/share/mk/install/man.mk index b9865b9187..c11ac069a7 100644 --- a/share/mk/install/man.mk +++ b/share/mk/install/man.mk @@ -8,8 +8,16 @@ ifndef MAKEFILE_INSTALL_MAN_INCLUDED MAKEFILE_INSTALL_MAN_INCLUDED := 1 -include $(MAKEFILEDIR)/cmd.mk include $(MAKEFILEDIR)/compress.mk +include $(MAKEFILEDIR)/configure/build-depends/bzip2.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/findutils.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/gzip.mk +include $(MAKEFILEDIR)/configure/build-depends/lzip.mk +include $(MAKEFILEDIR)/configure/build-depends/moreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/sed.mk +include $(MAKEFILEDIR)/configure/build-depends/xz-utils.mk include $(MAKEFILEDIR)/install/_.mk include $(MAKEFILEDIR)/src.mk diff --git a/share/mk/lint/c.mk b/share/mk/lint/c.mk index 7530d80e34..1877f01042 100644 --- a/share/mk/lint/c.mk +++ b/share/mk/lint/c.mk @@ -9,48 +9,19 @@ MAKEFILE_LINT_C_INCLUDED := 1 include $(MAKEFILEDIR)/build/src.mk -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/checkpatch.mk +include $(MAKEFILEDIR)/configure/build-depends/clang.mk +include $(MAKEFILEDIR)/configure/build-depends/clang-tidy.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/cpp.mk +include $(MAKEFILEDIR)/configure/build-depends/cppcheck.mk +include $(MAKEFILEDIR)/configure/build-depends/cpplint.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/iwyu.mk +include $(MAKEFILEDIR)/configure/build-depends/sed.mk include $(MAKEFILEDIR)/lint/_.mk -DEFAULT_CHECKPATCHFLAGS := -EXTRA_CHECKPATCHFLAGS := -CHECKPATCHFLAGS := $(DEFAULT_CHECKPATCHFLAGS) $(EXTRA_CHECKPATCHFLAGS) -CHECKPATCH := checkpatch - -clang-tidy_config := $(SYSCONFDIR)/clang-tidy/config.yaml -DEFAULT_CLANG-TIDYFLAGS := \ - --config-file=$(clang-tidy_config) \ - --quiet \ - --use-color -EXTRA_CLANG-TIDYFLAGS := -CLANG-TIDYFLAGS := $(DEFAULT_CLANG-TIDYFLAGS) $(EXTRA_CLANG-TIDYFLAGS) -CLANG-TIDY := clang-tidy - -CPPCHECK_SUPPRESS := $(SYSCONFDIR)/cppcheck/cppcheck.suppress -DEFAULT_CPPCHECKFLAGS := \ - --enable=all \ - --error-exitcode=2 \ - --inconclusive \ - --quiet \ - --suppressions-list=$(CPPCHECK_SUPPRESS) -EXTRA_CPPCHECKFLAGS := -CPPCHECKFLAGS := $(DEFAULT_CPPCHECKFLAGS) $(EXTRA_CPPCHECKFLAGS) -CPPCHECK := cppcheck - -DEFAULT_CPPLINTFLAGS := -EXTRA_CPPLINTFLAGS := -CPPLINTFLAGS := $(DEFAULT_CPPLINTFLAGS) $(EXTRA_CPPLINTFLAGS) -CPPLINT := cpplint - -DEFAULT_IWYUFLAGS := \ - -Xiwyu --no_fwd_decls \ - -Xiwyu --error -EXTRA_IWYUFLAGS := -IWYUFLAGS := $(DEFAULT_IWYUFLAGS) $(EXTRA_IWYUFLAGS) -IWYU := iwyu - - linters_c := checkpatch clang-tidy cppcheck cpplint iwyu @@ -63,27 +34,27 @@ $(foreach l, $(linters_c), \ $(_LINT_c_checkpatch): %.lint-c.checkpatch.touch: %.c $(MK) $(info LINT (checkpatch) $@) $(CHECKPATCH) $(CHECKPATCHFLAGS) -f $< >&2 - touch $@ + $(TOUCH) $@ $(_LINT_c_clang-tidy): %.lint-c.clang-tidy.touch: %.c $(MK) $(info LINT (clang-tidy) $@) - $(CLANG-TIDY) $(CLANG-TIDYFLAGS) $< -- $(CPPFLAGS) $(CFLAGS) 2>&1 \ + $(CLANG_TIDY) $(CLANG_TIDYFLAGS) $< -- $(CPPFLAGS) $(CLANGFLAGS) 2>&1 \ | $(SED) '/generated\.$$/d' >&2 - touch $@ + $(TOUCH) $@ $(_LINT_c_cppcheck): %.lint-c.cppcheck.touch: %.c $(MK) $(info LINT (cppcheck) $@) $(CPPCHECK) $(CPPCHECKFLAGS) $< - touch $@ + $(TOUCH) $@ $(_LINT_c_cpplint): %.lint-c.cpplint.touch: %.c $(MK) $(info LINT (cpplint) $@) $(CPPLINT) $(CPPLINTFLAGS) $< >/dev/null - touch $@ + $(TOUCH) $@ $(_LINT_c_iwyu): %.lint-c.iwyu.touch: %.c $(MK) $(info LINT (iwyu) $@) - ! ($(IWYU) $(IWYUFLAGS) $(CPPFLAGS) $(CFLAGS) $< 2>&1 \ + ! ($(IWYU) $(IWYUFLAGS) $(CPPFLAGS) $(CLANGFLAGS) $< 2>&1 \ | $(SED) -n '/should add these lines:/,$$p' \ | $(TAC) \ | $(SED) '/correct/{N;d}' \ @@ -91,7 +62,7 @@ $(_LINT_c_iwyu): %.lint-c.iwyu.touch: %.c $(MK) ||:; \ ) \ | $(GREP) ^ >&2 - touch $@ + $(TOUCH) $@ $(foreach l, $(linters_c), \ diff --git a/share/mk/lint/man/_.mk b/share/mk/lint/man/_.mk deleted file mode 100644 index 8bbc01c8b1..0000000000 --- a/share/mk/lint/man/_.mk +++ /dev/null @@ -1,16 +0,0 @@ -######################################################################## -# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org> -# SPDX-License-Identifier: GPL-3.0-or-later -######################################################################## - - -ifndef MAKEFILE_LINT_MAN_INCLUDED -MAKEFILE_LINT_MAN_INCLUDED := 1 - - -DEFAULT_MANDOCFLAGS := -Tlint -EXTRA_MANDOCFLAGS := -MANDOCFLAGS := $(DEFAULT_MANDOCFLAGS) $(EXTRA_MANDOCFLAGS) - - -endif # include guard diff --git a/share/mk/lint/man/man.mk b/share/mk/lint/man/man.mk index 595bfdb3b4..135ac397d4 100644 --- a/share/mk/lint/man/man.mk +++ b/share/mk/lint/man/man.mk @@ -8,10 +8,11 @@ ifndef MAKEFILE_LINT_MAN_MAN_INCLUDED MAKEFILE_LINT_MAN_MAN_INCLUDED := 1 -include $(MAKEFILEDIR)/cmd.mk include $(MAKEFILEDIR)/build/_.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/mandoc.mk include $(MAKEFILEDIR)/lint/_.mk -include $(MAKEFILEDIR)/lint/man/_.mk include $(MAKEFILEDIR)/src.mk @@ -34,7 +35,7 @@ $(_LINT_man_mandoc): $(_MANDIR)/%.lint-man.mandoc.touch: $(MANDIR)/% $(mandoc_ma ||:; \ ) \ | $(GREP) ^ >&2 - touch $@ + $(TOUCH) $@ $(_LINT_man_tbl): $(_MANDIR)/%.lint-man.tbl.touch: $(MANDIR)/% $(MK) | $$(@D)/ $(info LINT (tbl comment) $@) @@ -56,7 +57,7 @@ $(_LINT_man_tbl): $(_MANDIR)/%.lint-man.tbl.touch: $(MANDIR)/% $(MK) | $$(@D)/ >&2 $(GREP) -n '\\" t$$' $< /dev/null; \ exit 1; \ fi - touch $@ + $(TOUCH) $@ $(foreach l, $(linters_man), \ diff --git a/share/mk/lint/man/mdoc.mk b/share/mk/lint/man/mdoc.mk index 5c6423d7e7..8df8a04fbe 100644 --- a/share/mk/lint/man/mdoc.mk +++ b/share/mk/lint/man/mdoc.mk @@ -8,10 +8,11 @@ ifndef MAKEFILE_LINT_MAN_MDOC_INCLUDED MAKEFILE_LINT_MAN_MDOC_INCLUDED := 1 -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/mandoc.mk include $(MAKEFILEDIR)/build/_.mk include $(MAKEFILEDIR)/lint/_.mk -include $(MAKEFILEDIR)/lint/man/_.mk include $(MAKEFILEDIR)/src.mk @@ -34,7 +35,7 @@ $(_LINT_mdoc_mandoc): $(_MANDIR)/%.lint-mdoc.mandoc.touch: $(MANDIR)/% $(mandoc_ ||:; \ ) \ | $(GREP) ^ >&2 - touch $@ + $(TOUCH) $@ $(foreach l, $(linters_mdoc), \ diff --git a/share/mk/src.mk b/share/mk/src.mk index a77bb2d2b9..c17f1c96b8 100644 --- a/share/mk/src.mk +++ b/share/mk/src.mk @@ -1,17 +1,20 @@ -######################################################################## -# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org> -# SPDX-License-Identifier: GPL-3.0-or-later -######################################################################## +# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception ifndef MAKEFILE_SRC_INCLUDED MAKEFILE_SRC_INCLUDED := 1 -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/findutils.mk +include $(MAKEFILEDIR)/configure/build-depends/grep.mk +include $(MAKEFILEDIR)/configure/build-depends/sed.mk +include $(MAKEFILEDIR)/configure/build-depends/sortman.mk -MANDIR := $(srcdir) +SYSCONFDIR := $(srcdir)/etc +MANDIR := $(srcdir) + MANEXT := \(\.[[:digit:]]\([[:alpha:]][[:alnum:]]*\)\?\>\|\.man\)\+\(\.man\|\.in\)*$ diff --git a/share/mk/version.mk b/share/mk/version.mk index af3c0cb2af..d359dfb72a 100644 --- a/share/mk/version.mk +++ b/share/mk/version.mk @@ -8,7 +8,7 @@ ifndef MAKEFILE_VERSION_INCLUDED MAKEFILE_VERSION_INCLUDED := 1 -include $(MAKEFILEDIR)/cmd.mk +include $(MAKEFILEDIR)/configure/build-depends/git.mk include $(MAKEFILEDIR)/verbose.mk |