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