On 4/14/20 4:03 AM, David Gibson wrote: > On Sat, Apr 11, 2020 at 11:31:48AM +0200, Claudio Fontana wrote: >> v2 -> v3: >> >> * changed into a 2 patch series; in the second patch we remove the old >> compatibility gunks that were meant for removal some time after 4.1. >> >> * renamed the libfdt PHONY rule to dtc/all, with the intent to make >> existing working trees forward and backward compatible across the change. >> >> v1 -> v2: >> >> * fix error generated when running UNCHECKED_GOALS without prior configure, >> for example during make docker-image-fedora. Without configure, DSOSUF is >> empty, and the module pattern rule in rules.mak that uses this variable >> can match too much; provide a default in the Makefile to avoid it. >> >> * only attempt to build the archive when there is a non-empty list of >> objects. >> This could be done in general for the %.a: pattern in rules.mak, but maybe >> there are valid reasons to build an empty .a? >> >> * removed some intermediate variables that did not add much value >> (LIBFDT_srcdir, LIBFDT_archive) >> >> Tested locally with 3 VPATH configurations (no-, VPATH, VPATH in src subdir), >> and with docker-image-fedora, docker-test-debug@fedora that failed >> before. > > Seems reasonable to me. It's a bit of a shame that we can't use the > dtc makefiles more simply for this. But I don't quickly know how to > fix them upstream to allow that.
Hi David, I tried to look at dtc upstream makefiles, I don't see a perfect solution at the moment. I came up with this idea though (not fully tested..) that _could_ work, ie special casing the libfdt target when it is the only goal in MAKECMDGOALS. Any thoughts? Ciao, Claudio diff --git a/Makefile b/Makefile index f02aa19..cb256e8 100644 --- a/Makefile +++ b/Makefile @@ -176,6 +176,7 @@ endif ifneq ($(DEPTARGETS),) +ifneq ($(MAKECMDGOALS),libfdt) -include $(DTC_OBJS:%.o=%.d) -include $(CONVERT_OBJS:%.o=%.d) -include $(FDTDUMP_OBJS:%.o=%.d) @@ -183,6 +184,7 @@ ifneq ($(DEPTARGETS),) -include $(FDTPUT_OBJS:%.o=%.d) -include $(FDTOVERLAY_OBJS:%.o=%.d) endif +endif @@ -318,7 +320,9 @@ ifeq ($(NO_PYTHON),0) TESTS_PYLIBFDT += maybe_pylibfdt endif +ifneq ($(MAKECMDGOALS),libfdt) include tests/Makefile.tests +endif # # Clean rules > >> >> Claudio Fontana (2): >> Makefile: libfdt: build only the strict necessary >> Makefile: remove old compatibility gunks >> >> Makefile | 32 ++++++++++++++++---------------- >> configure | 6 +----- >> rules.mak | 2 ++ >> 3 files changed, 19 insertions(+), 21 deletions(-) >> >