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: