[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] make: clean after distclean deletes source files
From: |
Steven Sistare |
Subject: |
Re: [PATCH] make: clean after distclean deletes source files |
Date: |
Tue, 9 May 2023 13:58:28 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 |
Any takers? I believe this patch is correct and clean.
Examples, run in the top level of a git tree:
$ configure ...
$ make clean
... cleans ...
$ make clean
... cleans ...
$ make distclean
... cleans ...
$ make distclean
Makefile:180: *** Please call configure before running make. Stop.
$ make clean
Makefile:180: *** Please call configure before running make. Stop.
# unchecked goals still work
$ make cscope
cscope Remove old cscope files
cscope Create file list
cscope Re-index .
$ configure ...
$ make clean
... cleans ...
- Steve
On 4/19/2023 9:08 AM, Steve Sistare wrote:
> Run 'make distclean' in a tree, and GNUmakefile is removed.
> But, GNUmakefile is where we change directory to build.
> Run 'make distclean' or 'make clean' again, and Makefile applies
> the clean actions, such as this one, at the top level of the tree.
> For example, it removes the .d source files in 'meson/test cases/d/*/*.d'.
>
> find . \( -name '*.so' -o -name '*.dll' -o \
> -name '*.[oda]' -o -name '*.gcno' \) -type f \
> ! -path ./roms/edk2/ArmPkg/Library/GccLto/liblto-aarch64.a \
> ! -path ./roms/edk2/ArmPkg/Library/GccLto/liblto-arm.a \
> -exec rm {} +
>
> To fix, remove clean and distclean from UNCHECKED_GOALS, so those targets
> are "checked", meaning that configure must be run before make. However,
> the check action does not trigger, because clean does not depend on
> config-host.mak, so change the action to simply throw an error.
>
> Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
> ---
> Makefile | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index e421f8a..30d61f8 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -26,7 +26,7 @@ quiet-command-run = $(if $(V),,$(if $2,printf " %-7s %s\n"
> $2 $3 && ))$1
> quiet-@ = $(if $(V),,@)
> quiet-command = $(quiet-@)$(call quiet-command-run,$1,$2,$3)
>
> -UNCHECKED_GOALS := %clean TAGS cscope ctags dist \
> +UNCHECKED_GOALS := TAGS cscope ctags dist \
> help check-help print-% \
> docker docker-% vm-help vm-test vm-build-%
>
> @@ -176,10 +176,8 @@ plugins:
> endif # $(CONFIG_PLUGIN)
>
> else # config-host.mak does not exist
> -config-host.mak:
> ifneq ($(filter-out $(UNCHECKED_GOALS),$(MAKECMDGOALS)),$(if
> $(MAKECMDGOALS),,fail))
> - @echo "Please call configure before running make!"
> - @exit 1
> +$(error Please call configure before running make)
> endif
> endif # config-host.mak does not exist
>
- Re: [PATCH] make: clean after distclean deletes source files,
Steven Sistare <=