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
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
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'
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)
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
+#!/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$'