bug-1198952-workaround-make-3.82-bug.diff (1748B)
1 diff --git a/intl/icu/source/Makefile.in b/intl/icu/source/Makefile.in 2 --- a/intl/icu/source/Makefile.in 3 +++ b/intl/icu/source/Makefile.in 4 @@ -140,32 +140,36 @@ endif 5 6 LOCAL_SUBDIRS = $(SUBDIRS) 7 CLEAN_FIRST_SUBDIRS = $(TOOLS) 8 9 $(LIBDIR) $(BINDIR): 10 -$(MKINSTALLDIRS) $@ 11 12 ## Recursive targets 13 +## Strictly speaking, the $(MAKEOVERRIDES) is not necessary when recursing, but 14 +## there is a bug in GNU make 3.82 that throws away the original overrides in 15 +## favor of RECURSIVE=YES when the submake in the subdirectory restarts itself 16 +## after dependency files have been created. 17 all-recursive install-recursive clean-recursive distclean-recursive dist-recursive check-recursive check-exhaustive-recursive: $(LIBDIR) $(BINDIR) 18 ifneq ($(NEED_ESCAPING),) 19 @echo "building tools/escapesrc (Needed for this platform with NEED_ESCAPING)" 20 - @(cd tools/escapesrc && $(MAKE) RECURSIVE=YES $$local_target) || exit 21 + @(cd tools/escapesrc && $(MAKE) $(MAKEOVERRIDES) RECURSIVE=YES $$local_target) || exit 22 endif 23 @dot_seen=no; \ 24 target=`echo $@ | sed s/-recursive//`; \ 25 list='$(LOCAL_SUBDIRS)'; for subdir in $$list; do \ 26 echo "$(MAKE)[$(MAKELEVEL)]: Making \`$$target' in \`$$subdir'"; \ 27 if test "$$subdir" = "."; then \ 28 dot_seen=yes; \ 29 local_target="$$target-local"; \ 30 else \ 31 local_target="$$target"; \ 32 fi; \ 33 - (cd $$subdir && $(MAKE) RECURSIVE=YES $$local_target) || exit; \ 34 + (cd $$subdir && $(MAKE) $(MAKEOVERRIDES) RECURSIVE=YES $$local_target) || exit; \ 35 done; \ 36 if test "$$dot_seen" = "no"; then \ 37 $(MAKE) "$$target-local" || exit; \ 38 fi 39 40 clean-recursive-with-twist: 41 $(MAKE) clean-recursive LOCAL_SUBDIRS='$(CLEAN_FIRST_SUBDIRS) $(filter-out $(CLEAN_FIRST_SUBDIRS),$(LOCAL_SUBDIRS))'