mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	merge_config.sh: Add option to specify output dir
Provide a -O option to specify dir to put generated .config Then merge_config.sh does not need to be copied to target dir, for easy re-usage in other script Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org> Tested-by: Jon Medhurst (Tixy) <tixy@linaro.org> Acked-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Michal Marek <mmarek@suse.cz>
This commit is contained in:
		
							parent
							
								
									169dfd880a
								
							
						
					
					
						commit
						409f117e2d
					
				
					 1 changed files with 16 additions and 4 deletions
				
			
		| 
						 | 
					@ -32,11 +32,13 @@ usage() {
 | 
				
			||||||
	echo "  -m    only merge the fragments, do not execute the make command"
 | 
						echo "  -m    only merge the fragments, do not execute the make command"
 | 
				
			||||||
	echo "  -n    use allnoconfig instead of alldefconfig"
 | 
						echo "  -n    use allnoconfig instead of alldefconfig"
 | 
				
			||||||
	echo "  -r    list redundant entries when merging fragments"
 | 
						echo "  -r    list redundant entries when merging fragments"
 | 
				
			||||||
 | 
						echo "  -O    dir to put generated output files"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MAKE=true
 | 
					MAKE=true
 | 
				
			||||||
ALLTARGET=alldefconfig
 | 
					ALLTARGET=alldefconfig
 | 
				
			||||||
WARNREDUN=false
 | 
					WARNREDUN=false
 | 
				
			||||||
 | 
					OUTPUT=.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while true; do
 | 
					while true; do
 | 
				
			||||||
	case $1 in
 | 
						case $1 in
 | 
				
			||||||
| 
						 | 
					@ -59,6 +61,16 @@ while true; do
 | 
				
			||||||
		shift
 | 
							shift
 | 
				
			||||||
		continue
 | 
							continue
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						"-O")
 | 
				
			||||||
 | 
							if [ -d $2 ];then
 | 
				
			||||||
 | 
								OUTPUT=$(echo $2 | sed 's/\/*$//')
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								echo "output directory $2 does not exist" 1>&2
 | 
				
			||||||
 | 
								exit 1
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
							shift 2
 | 
				
			||||||
 | 
							continue
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	*)
 | 
						*)
 | 
				
			||||||
		break
 | 
							break
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
| 
						 | 
					@ -100,9 +112,9 @@ for MERGE_FILE in $MERGE_LIST ; do
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ "$MAKE" = "false" ]; then
 | 
					if [ "$MAKE" = "false" ]; then
 | 
				
			||||||
	cp $TMP_FILE .config
 | 
						cp $TMP_FILE $OUTPUT/.config
 | 
				
			||||||
	echo "#"
 | 
						echo "#"
 | 
				
			||||||
	echo "# merged configuration written to .config (needs make)"
 | 
						echo "# merged configuration written to $OUTPUT/.config (needs make)"
 | 
				
			||||||
	echo "#"
 | 
						echo "#"
 | 
				
			||||||
	clean_up
 | 
						clean_up
 | 
				
			||||||
	exit
 | 
						exit
 | 
				
			||||||
| 
						 | 
					@ -111,14 +123,14 @@ fi
 | 
				
			||||||
# Use the merged file as the starting point for:
 | 
					# Use the merged file as the starting point for:
 | 
				
			||||||
# alldefconfig: Fills in any missing symbols with Kconfig default
 | 
					# alldefconfig: Fills in any missing symbols with Kconfig default
 | 
				
			||||||
# allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
 | 
					# allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
 | 
				
			||||||
make KCONFIG_ALLCONFIG=$TMP_FILE $ALLTARGET
 | 
					make KCONFIG_ALLCONFIG=$TMP_FILE O=$OUTPUT $ALLTARGET
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Check all specified config values took (might have missed-dependency issues)
 | 
					# Check all specified config values took (might have missed-dependency issues)
 | 
				
			||||||
for CFG in $(sed -n "$SED_CONFIG_EXP" $TMP_FILE); do
 | 
					for CFG in $(sed -n "$SED_CONFIG_EXP" $TMP_FILE); do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE)
 | 
						REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE)
 | 
				
			||||||
	ACTUAL_VAL=$(grep -w -e "$CFG" .config)
 | 
						ACTUAL_VAL=$(grep -w -e "$CFG" $OUTPUT/.config)
 | 
				
			||||||
	if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then
 | 
						if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then
 | 
				
			||||||
		echo "Value requested for $CFG not in final .config"
 | 
							echo "Value requested for $CFG not in final .config"
 | 
				
			||||||
		echo "Requested value:  $REQUESTED_VAL"
 | 
							echo "Requested value:  $REQUESTED_VAL"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue