changeset 133:a459c6b39645 0.0.3

Fix makefile to defconfig properly, and leak in a bit of the new test infrastructure so I don't have to revert it to check this in. :)
author Rob Landley <rob@landley.net>
date Mon, 18 Jun 2007 01:09:00 -0400
parents a5a0ec609a3f
children cca764ba0e9a
files Makefile kconfig/Makefile scripts/cfg2files.sh
diffstat 3 files changed, 24 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Mon Jun 18 01:00:32 2007 -0400
+++ b/Makefile	Mon Jun 18 01:09:00 2007 -0400
@@ -17,8 +17,8 @@
 include kconfig/Makefile
 
 # defconfig is the "maximum sane config"; allyesconfig minus debugging and such.
-defconfig: allyesconfig
-	@sed -i -r -e "s/^(CONFIG_TOYBOX_(DEBUG|FREE))=.*/# \1 is not set/" .config
+#defconfig: allyesconfig
+#	@sed -i -r -e "s/^(CONFIG_TOYBOX_(DEBUG|FREE))=.*/# \1 is not set/" .config
 
 .config: Config.in toys/Config.in
 
@@ -41,13 +41,10 @@
 bloatcheck: toybox_old toybox_unstripped
 	@scripts/bloat-o-meter toybox_old toybox_unstripped
 
-# Get list of toys/*.c files from .config
+# Get list of .c files to compile, including toys/*.c files from .config
+toyfiles = main.c lib/*.c \
+	$(shell scripts/cfg2files.sh < .config | sed 's@\(.*\)@toys/\1.c@')
 
-toysfiles = $(shell sed -nre 's/^CONFIG_(.*)=y/\1/;t skip;b;:skip;s/_.*//;p' .config | sort -u | tr A-Z a-z | grep -v '^toybox$$' | sed 's@\(.*\)@toys/\1.c@')
-
-# Compile toybox from source
-
-toyfiles = main.c lib/*.c $(toysfiles)
 toybox_unstripped: gen_config.h $(toyfiles) toys/toylist.h lib/*.h toys.h
 	$(CC) $(CCFLAGS) -I . $(toyfiles) -o toybox_unstripped \
 		-ffunction-sections -fdata-sections -Wl,--gc-sections
@@ -69,6 +66,11 @@
 distclean: clean
 	rm -f .config*
 
+test: tests
+
+tests:
+	scripts/testall.sh
+
 help::
 	@echo  '  baseline        - Create busybox_old for use by bloatcheck.'
 	@echo  '  bloatcheck      - Report size differences between old and current versions'
--- a/kconfig/Makefile	Mon Jun 18 01:00:32 2007 -0400
+++ b/kconfig/Makefile	Mon Jun 18 01:09:00 2007 -0400
@@ -6,7 +6,7 @@
 KCONFIG_PROJECT = ToyBox
 obj = ./kconfig
 PHONY += clean help oldconfig menuconfig config silentoldconfig \
-	randconfig allyesconfig allnoconfig allmodconfig #defconfig
+	randconfig allyesconfig allnoconfig allmodconfig defconfig
 
 menuconfig: $(obj)/mconf
 	$< $(KCONFIG_TOP)
@@ -29,8 +29,8 @@
 allnoconfig: $(obj)/conf
 	$< -n $(KCONFIG_TOP)
 
-#defconfig: $(obj)/conf
-#	$< -d $(KCONFIG_TOP)
+defconfig: $(obj)/conf
+	$< -D /dev/null $(KCONFIG_TOP)
 
 # Help text used by make help
 help::
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/cfg2files.sh	Mon Jun 18 01:09:00 2007 -0400
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# cat .config into this to get a list of .c files.
+
+# Grab the XXX part of all CONFIG_XXX entries, removing everything after the
+# second underline.  Sort the list, keep only one of each entry, convert
+# to lower case, remove toybox itself from the list (as that indicates
+# global symbols).
+
+sed -nre 's/^CONFIG_(.*)=y/\1/;t skip;b;:skip;s/_.*//;p' \
+	| sort -u | tr A-Z a-z | grep -v '^toybox$'