Skip to contentSkip to conversation

Makefile: introduce check-package target

PATCH Superseded Thomas Petazzoni 3 participants 4 messages Aug 11, 2018 – Aug 12, 2018 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 Makefile: introduce check-package target

The snippet of code that runs a check-package on all .mk/.hash/Config.in files is currently only available within .gitlab-ci.yml, and isn't immediately and easily usable by Buildroot users. In order to simplify this, this commit introduces a top-level "check-package" make target that implements the same logic. The .gitlab-ci.yml file is changed to use "make check-package".

Since this target is oriented towards Buildroot developers, we intentionally do not clutter the already noisy "make help" text with this additional make target.

---
I often found myself copy/pasting this find command line from .gitlab-ci.yml to my shell, and got tired of doing this, hence this patch.

Changes since v1:
- Adjust .gitlab-ci.yml.in as well (Ricardo)
- Add check-package to noconfig_targets (Ricardo)

---
 .gitlab-ci.yml    | 3 +--
 .gitlab-ci.yml.in | 3 +--
 Makefile          | 6 +++++-
 3 files changed, 7 insertions(+), 5 deletions(-)
.gitlab-ci.yml +1 -2
index 9d4301076f..d4807c5c85 100644
@@ -43,8 +43,7 @@ check-flake8:
 
 check-package:
     script:
-        - find . -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \)
-            -exec ./utils/check-package {} +
+        - make check-package
 
 .defconfig: &defconfig
     # Running the defconfigs for every push is too much, so limit to
.gitlab-ci.yml.in +1 -2
index fb2650c5ce..38e24c8d01 100644
@@ -43,8 +43,7 @@ check-flake8:
 
 check-package:
     script:
-        - find . -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \)
-            -exec ./utils/check-package {} +
+        - make check-package
 
 .defconfig: &defconfig
     # Running the defconfigs for every push is too much, so limit to
Makefile +5 -1
index f79d39fd26..c4ed45837d 100644
@@ -130,7 +130,7 @@ export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlo
 noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
 	defconfig %_defconfig allyesconfig allnoconfig alldefconfig silentoldconfig release \
 	randpackageconfig allyespackageconfig allnopackageconfig \
-	print-version olddefconfig distclean manual manual-%
+	print-version olddefconfig distclean manual manual-% check-package
 
 # Some global targets do not trigger a build, but are used to collect
 # metadata, or do various checks. When such targets are triggered,
@@ -1125,6 +1125,10 @@ release:
 print-version:
 	@echo $(BR2_VERSION_FULL)
 
+check-package:
+	find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \) \
+		-exec ./utils/check-package {} +
+
 .PHONY: .gitlab-ci.yml
 .gitlab-ci.yml: .gitlab-ci.yml.in
 	cp $< $@
Signature · 1 line
2.14.4
#1 lore raw

PATCH v2 1/1 Makefile: introduce check-package target

Hello,

Quoted 7 lines · Thomas Petazzoni

The snippet of code that runs a check-package on all .mk/.hash/Config.in files is currently only available within .gitlab-ci.yml, and isn't immediately and easily usable by Buildroot users. In order to simplify this, this commit introduces a top-level "check-package" make target that implements the same logic. The .gitlab-ci.yml file is changed to use "make check-package".

Quoted 5 lines

Since this target is oriented towards Buildroot developers, we intentionally do not clutter the already noisy "make help" text with this additional make target.

Regards,
Ricardo

#2 lore raw

PATCH v2 1/1 Makefile: introduce check-package target

In reply to Thomas Petazzoni

Thomas, All,

On 2018-08-11 12:44 +0200, Thomas Petazzoni spake thusly:

Quoted 7 lines

The snippet of code that runs a check-package on all .mk/.hash/Config.in files is currently only available within .gitlab-ci.yml, and isn't immediately and easily usable by Buildroot users. In order to simplify this, this commit introduces a top-level "check-package" make target that implements the same logic. The .gitlab-ci.yml file is changed to use "make check-package".

Quoted 5 lines

Since this target is oriented towards Buildroot developers, we intentionally do not clutter the already noisy "make help" text with this additional make target.

[tested from in-tree and out-of-tree]

I was thinking that, maybe, we would also like to later extend this to also scan the br2-external trees.

Unfortunately, the layout of a br2-external tree is totally free, i.e. we do not enforce the package/ boot/ and so on segregation. And since a br2-external may also contain arbitrary files, we can't just blindly scan it entirely either.

So, people who want to check their packages in a br2-external tree will have to do it on their own...

Regards,
Yann E. MORIN.

Quoted 69 lines

---
I often found myself copy/pasting this find command line from .gitlab-ci.yml to my shell, and got tired of doing this, hence this patch.

Changes since v1:
- Adjust .gitlab-ci.yml.in as well (Ricardo)
- Add check-package to noconfig_targets (Ricardo)

---
 .gitlab-ci.yml    | 3 +--
 .gitlab-ci.yml.in | 3 +--
 Makefile          | 6 +++++-
 3 files changed, 7 insertions(+), 5 deletions(-)
.gitlab-ci.yml +1 -2
index 9d4301076f..d4807c5c85 100644
@@ -43,8 +43,7 @@ check-flake8:
 
 check-package:
     script:
-        - find . -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \)
-            -exec ./utils/check-package {} +
+        - make check-package
 
 .defconfig: &defconfig
     # Running the defconfigs for every push is too much, so limit to
.gitlab-ci.yml.in +1 -2
index fb2650c5ce..38e24c8d01 100644
@@ -43,8 +43,7 @@ check-flake8:
 
 check-package:
     script:
-        - find . -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \)
-            -exec ./utils/check-package {} +
+        - make check-package
 
 .defconfig: &defconfig
     # Running the defconfigs for every push is too much, so limit to
Makefile +5 -1
index f79d39fd26..c4ed45837d 100644
@@ -130,7 +130,7 @@ export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlo
 noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
 	defconfig %_defconfig allyesconfig allnoconfig alldefconfig silentoldconfig release \
 	randpackageconfig allyespackageconfig allnopackageconfig \
-	print-version olddefconfig distclean manual manual-%
+	print-version olddefconfig distclean manual manual-% check-package
 
 # Some global targets do not trigger a build, but are used to collect
 # metadata, or do various checks. When such targets are triggered,
@@ -1125,6 +1125,10 @@ release:
 print-version:
 	@echo $(BR2_VERSION_FULL)
 
+check-package:
+	find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \) \
+		-exec ./utils/check-package {} +
+
 .PHONY: .gitlab-ci.yml
 .gitlab-ci.yml: .gitlab-ci.yml.in
 	cp $< $@
Signature · 1 line
2.14.4
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
author Applied
#3 lore raw

PATCH v2 1/1 Makefile: introduce check-package target

In reply to Thomas Petazzoni

Hello,

Quoted 11 lines · Thomas Petazzoni

The snippet of code that runs a check-package on all .mk/.hash/Config.in files is currently only available within .gitlab-ci.yml, and isn't immediately and easily usable by Buildroot users. In order to simplify this, this commit introduces a top-level "check-package" make target that implements the same logic. The .gitlab-ci.yml file is changed to use "make check-package".

Since this target is oriented towards Buildroot developers, we intentionally do not clutter the already noisy "make help" text with this additional make target.

Quoted 5 lines

---
I often found myself copy/pasting this find command line from .gitlab-ci.yml to my shell, and got tired of doing this, hence this patch.

Applied to next, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com