Index: Makefile
===================================================================
--- Makefile	(revision ba8de9c389dfb9668896f59bf2ab23fd720f9f36)
+++ Makefile	(revision 421250e5c6d88e9f9c83bad9e70e2a43906fbbe8)
@@ -41,5 +41,11 @@
 CONFIG_HEADER = config.h
 
-.PHONY: all precheck cscope autotool config_default config distclean clean
+ifeq ($(PROFILE),)
+	PRESETS_FILE =
+else
+	PRESETS_FILE = defaults/$(PROFILE)/Makefile.config
+endif
+
+.PHONY: all precheck cscope autotool config_auto config_default config distclean clean
 
 all: $(COMMON_MAKEFILE) $(COMMON_HEADER) $(CONFIG_MAKEFILE) $(CONFIG_HEADER)
@@ -66,5 +72,5 @@
 
 config_default: $(CONFIG_RULES)
-	$(CONFIG) $< default
+	$(CONFIG) $< default $(PRESETS_FILE)
 
 config: $(CONFIG_RULES)
Index: tools/config.py
===================================================================
--- tools/config.py	(revision ba8de9c389dfb9668896f59bf2ab23fd720f9f36)
+++ tools/config.py	(revision 421250e5c6d88e9f9c83bad9e70e2a43906fbbe8)
@@ -454,4 +454,5 @@
 
 def main():
+	cfgfile_in = None
 	config = {}
 	rules = []
@@ -460,7 +461,14 @@
 	parse_rules(RULES_FILE, rules)
 	
-	# Read configuration from previous run
-	if os.path.exists(MAKEFILE):
-		read_config(MAKEFILE, config)
+	# Input configuration file can be specified on command line
+	# otherwise configuration from previous run is used.
+	if len(sys.argv) >= 4:
+		cfgfile_in = sys.argv[3]
+	else:
+		cfgfile_in = MAKEFILE
+	
+	# Read configuration file
+	if os.path.exists(cfgfile_in):
+		read_config(cfgfile_in, config)
 	
 	# Default mode: only check values and regenerate configuration files
