 bb55b712e8
			
		
	
	
		bb55b712e8
		
	
	
	
	
		
			
			Some locale settings let make fail or create wrong results because tr '[:lower:]' '[:upper:]' which is used to convert from lower to upper case depends on the locale. With locale tr_TR.UTF-8, lower case 'i' is not converted to 'I'. This results in wrong entries in config-host.h like these ones: #define CONFIG_QEMU_PREFiX "/usr/local" #define CONFIG_QEMU_BiNDiR "/usr/local/bin" This problem was reported by Emre Ersin. The same problem occurs when configure creates the target specific files config-target.mak. They get wrong declarations: TARGET_CRiS=y TARGET_i386=y TARGET_MiCROBLAZE=y TARGET_MiPS64=y TARGET_MiPS=y TARGET_UNiCORE32=y It is sufficient to restrict the conversion to the characters a-z. Using this explicit range avoids the dependency on the locale settings and is also shorter. v2: POSIX says that 'tr a-z' is unspecified outside of the POSIX locale, so we must set LC_ALL=C to make sure that we are using POSIX (hint from Eric Blake, thanks). Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
		
			
				
	
	
		
			104 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| echo "/* Automatically generated by create_config - do not modify */"
 | |
| 
 | |
| while read line; do
 | |
| 
 | |
| case $line in
 | |
|  VERSION=*) # configuration
 | |
|     version=${line#*=}
 | |
|     echo "#define QEMU_VERSION \"$version\""
 | |
|     ;;
 | |
|  PKGVERSION=*) # configuration
 | |
|     pkgversion=${line#*=}
 | |
|     echo "#define QEMU_PKGVERSION \"$pkgversion\""
 | |
|     ;;
 | |
|  prefix=* | [a-z]*dir=*) # directory configuration
 | |
|     name=${line%=*}
 | |
|     value=${line#*=}
 | |
|     define_name=`echo $name | LC_ALL=C tr '[a-z]' '[A-Z]'`
 | |
|     eval "define_value=\"$value\""
 | |
|     echo "#define CONFIG_QEMU_$define_name \"$define_value\""
 | |
|     # save for the next definitions
 | |
|     eval "$name=\$define_value"
 | |
|     ;;
 | |
|  CONFIG_AUDIO_DRIVERS=*)
 | |
|     drivers=${line#*=}
 | |
|     echo "#define CONFIG_AUDIO_DRIVERS \\"
 | |
|     for drv in $drivers; do
 | |
|       echo "    &${drv}_audio_driver,\\"
 | |
|     done
 | |
|     echo ""
 | |
|     ;;
 | |
|  CONFIG_BDRV_WHITELIST=*)
 | |
|     echo "#define CONFIG_BDRV_WHITELIST \\"
 | |
|     for drv in ${line#*=}; do
 | |
|       echo "    \"${drv}\",\\"
 | |
|     done
 | |
|     echo "    NULL"
 | |
|     ;;
 | |
|  CONFIG_*=y) # configuration
 | |
|     name=${line%=*}
 | |
|     echo "#define $name 1"
 | |
|     ;;
 | |
|  CONFIG_*=*) # configuration
 | |
|     name=${line%=*}
 | |
|     value=${line#*=}
 | |
|     echo "#define $name $value"
 | |
|     ;;
 | |
|  ARCH=*) # configuration
 | |
|     arch=${line#*=}
 | |
|     arch_name=`echo $arch | LC_ALL=C tr '[a-z]' '[A-Z]'`
 | |
|     echo "#define HOST_$arch_name 1"
 | |
|     ;;
 | |
|  HOST_USB=*)
 | |
|     # do nothing
 | |
|     ;;
 | |
|  HOST_CC=*)
 | |
|     # do nothing
 | |
|     ;;
 | |
|  HOST_*=y) # configuration
 | |
|     name=${line%=*}
 | |
|     echo "#define $name 1"
 | |
|     ;;
 | |
|  HOST_*=*) # configuration
 | |
|     name=${line%=*}
 | |
|     value=${line#*=}
 | |
|     echo "#define $name $value"
 | |
|     ;;
 | |
|  TARGET_ARCH=*) # configuration
 | |
|     target_arch=${line#*=}
 | |
|     echo "#define TARGET_ARCH \"$target_arch\""
 | |
|     ;;
 | |
|  TARGET_BASE_ARCH=*) # configuration
 | |
|     target_base_arch=${line#*=}
 | |
|     if [ "$target_base_arch" != "$target_arch" ]; then
 | |
|       base_arch_name=`echo $target_base_arch | LC_ALL=C tr '[a-z]' '[A-Z]'`
 | |
|       echo "#define TARGET_$base_arch_name 1"
 | |
|     fi
 | |
|     ;;
 | |
|  TARGET_XML_FILES=*)
 | |
|     # do nothing
 | |
|     ;;
 | |
|  TARGET_ABI_DIR=*)
 | |
|     # do nothing
 | |
|     ;;
 | |
|  TARGET_ARCH2=*)
 | |
|     # do nothing
 | |
|     ;;
 | |
|  TARGET_DIRS=*)
 | |
|     # do nothing
 | |
|     ;;
 | |
|  TARGET_*=y) # configuration
 | |
|     name=${line%=*}
 | |
|     echo "#define $name 1"
 | |
|     ;;
 | |
|  TARGET_*=*) # configuration
 | |
|     name=${line%=*}
 | |
|     value=${line#*=}
 | |
|     echo "#define $name $value"
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| done # read
 |