summaryrefslogtreecommitdiffstats
path: root/package/busybox/busybox-1.15.2-buildsys.patch
blob: 7fb9a80f0c8518b4dedc50047cbf9e9c223f8392 (plain) (blame)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
diff -urpN busybox-1.15.2/Makefile busybox-1.15.2-buildsys/Makefile
--- busybox-1.15.2/Makefile	2009-10-08 03:06:38.000000000 +0200
+++ busybox-1.15.2-buildsys/Makefile	2009-11-28 23:38:39.000000000 +0100
@@ -358,6 +358,15 @@ scripts_basic:
 # To avoid any implicit rule to kick in, define an empty command.
 scripts/basic/%: scripts_basic ;
 
+# bbox: we have helpers in applets/
+# we depend on scripts_basic, since scripts/basic/fixdep
+# must be built before any other host prog
+PHONY += applets_dir
+applets_dir: scripts_basic
+	$(Q)$(MAKE) $(build)=applets
+
+applets/%: applets_dir ;
+
 PHONY += outputmakefile
 # outputmakefile generates a Makefile in the output directory, if using a
 # separate output directory. This allows convenient use of make in the
@@ -797,7 +806,7 @@ ifneq ($(KBUILD_MODULES),)
 	$(Q)rm -f $(MODVERDIR)/*
 endif
 
-archprepare: prepare1 scripts_basic
+archprepare: prepare1 scripts_basic applets_dir
 
 prepare0: archprepare FORCE
 	$(Q)$(MAKE) $(build)=.
diff -urpN busybox-1.15.2/scripts/kconfig/Makefile busybox-1.15.2-buildsys/scripts/kconfig/Makefile
--- busybox-1.15.2/scripts/kconfig/Makefile	2009-09-26 15:14:57.000000000 +0200
+++ busybox-1.15.2-buildsys/scripts/kconfig/Makefile	2009-11-28 23:38:39.000000000 +0100
@@ -17,11 +17,28 @@ menuconfig: $(obj)/mconf
 config: $(obj)/conf
 	$< Config.in
 
+# Mtime granularity problem.
+# It was observed that these commands:
+# make allnoconfig; sed -i -e '/CONFIG_TRUE/s/.*/CONFIG_TRUE=y/' .config; make
+# sometimes produce busybox with "true" applet still disabled.
+# This is caused by .config updated by sed having mtime which is still
+# equal to (not bigger than) include/autoconf.h's mtime,
+# and thus 2nd make does not regenerate include/autoconf.h.
+# Waiting for 1 second after non-interactive "make XXXXconfig"
+# prevents this from happening.
+#
+# We'd like to detect whether filesystem we are on has coarse mtimes,
+# but can't do it yet, bbox ls hasn't got --full-time.
+#MTIME_IS_COARSE:=@ls --full-time -ld | grep -F .000 >/dev/null
+MTIME_IS_COARSE:=@true
+
 oldconfig: $(obj)/conf
 	$< -o Config.in
+	$(MTIME_IS_COARSE) && sleep 1
 
 silentoldconfig: $(obj)/conf
 	$< -s Config.in
+	$(MTIME_IS_COARSE) && sleep 1
 
 update-po-config: $(obj)/kxgettext
 	xgettext --default-domain=linux \
@@ -46,15 +63,19 @@ PHONY += randconfig allyesconfig allnoco
 
 randconfig: $(obj)/conf
 	$< -r Config.in
+	$(MTIME_IS_COARSE) && sleep 1
 
 allyesconfig: $(obj)/conf
 	$< -y Config.in
+	$(MTIME_IS_COARSE) && sleep 1
 
 allnoconfig: $(obj)/conf
 	$< -n Config.in
+	$(MTIME_IS_COARSE) && sleep 1
 
 allmodconfig: $(obj)/conf
 	$< -m Config.in
+	$(MTIME_IS_COARSE) && sleep 1
 
 defconfig: $(obj)/conf
 ifeq ($(KBUILD_DEFCONFIG),)
@@ -63,9 +84,11 @@ else
 	@echo *** Default configuration is based on '$(KBUILD_DEFCONFIG)'
 	$(Q)$< -D $(KBUILD_DEFCONFIG) Config.in
 endif
+	$(MTIME_IS_COARSE) && sleep 1
 
 %_defconfig: $(obj)/conf
 	$(Q)$< -D $@ Config.in
+	$(MTIME_IS_COARSE) && sleep 1
 
 # Help text used by make help
 help: