diff options
author | Jerome Forissier <jerome.forissier@linaro.org> | 2017-01-06 09:33:29 +0100 |
---|---|---|
committer | Jerome Forissier <jerome.forissier@linaro.org> | 2017-01-09 13:53:45 +0100 |
commit | 9ac870c9bb8ed00492cb57eb2c6ee399bf24ef36 (patch) | |
tree | d063e732a124509d60192c9180c89ca86a85f424 /ta/mk | |
parent | 608bd28c3b5baa6fbd29ce89d4bee42945e34ccb (diff) |
Make sure "make clean" removes everything "make" has created under $(O)
"make clean" would leave behind some files and many directories. Fix
this by correctly tracking the files and directories created under $(O)
during the build process:
- Fix incorrect file names in $(cleanfiles) and add a few missing
ones.
- Introduce a makefile macro: $(cleandirs-for-rmdir), defined in a new
file: mk/cleandirs.mk. It returns the list of directories that should
be removed, given a list of files.
The clean target removes the files, then all the directories in depth-
first order. $(O) is also removed, if found to be empty.
Note that a more straightforward approach was discussed in [1]: use
"rm -rf $(O)/some_dir" and get rid of the whole file and directory
tracking via $(cleanfiles) and $(cleandirs). Although it was agreed it
would be safe, doing so would necessarily break the backward
compatibility for build scripts relying on "make O=<some path>", due to
the additional level ($(O)/some_dir).
Finally, mk/cleandirs.mk is exported to the TA dev kit and the clean
rule for the TAs is updated.
[1] https://github.com/OP-TEE/optee_os/pull/1270
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Andy Green <andy@warmcat.com>
Diffstat (limited to 'ta/mk')
-rw-r--r-- | ta/mk/ta_dev_kit.mk | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ta/mk/ta_dev_kit.mk b/ta/mk/ta_dev_kit.mk index c3116138..0e0e367d 100644 --- a/ta/mk/ta_dev_kit.mk +++ b/ta/mk/ta_dev_kit.mk @@ -68,11 +68,15 @@ libdeps += $(ta-dev-kit-dir)/lib/libutee.a libdeps += $(ta-dev-kit-dir)/lib/libzlib.a libdeps += $(ta-dev-kit-dir)/lib/libpng.a +include $(ta-dev-kit-dir)/mk/cleandirs.mk + .PHONY: clean clean: - @$(cmd-echo-silent) ' CLEAN .' + @$(cmd-echo-silent) ' CLEAN $(out-dir)' ${q}rm -f $(cleanfiles) - + ${q}dirs="$(call cleandirs-for-rmdir)"; if [ "$$dirs" ]; then rmdir $$dirs; fi + @$(cmd-echo-silent) ' CLEAN $(O)' + ${q}if [ -d "$(O)" ]; then rmdir --ignore-fail-on-non-empty $(O); fi subdirs = . include $(ta-dev-kit-dir)/mk/subdir.mk |