qemu-patch-raspberry4/scripts/create_config
Fam Zheng 67a1de0d19 Makefile: Derive "PKGVERSION" from "git describe" by default
Currently, if not specified in "./configure", QEMU_PKGVERSION will be
empty. Write a rule in Makefile to generate a value from "git describe"
combined with a possible git tree cleanness suffix, and write into a new
header.

    $ cat qemu-version.h
    #define QEMU_PKGVERSION "-v2.6.0-557-gd6550e9-dirty"

Include the header in .c files where the macro is referenced. It's not
necessary to include it in all files, otherwise each time the content of
the file changes, all sources have to be recompiled.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <1464774261-648-3-git-send-email-famz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-06-07 14:14:39 +02:00

122 lines
2.7 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\""
;;
qemu_*dir=*) # qemu-specific 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_$define_name \"$define_value\""
# save for the next definitions
eval "$name=\$define_value"
;;
prefix=*)
# save for the next definitions
prefix=${line#*=}
;;
IASL=*) # iasl executable
value=${line#*=}
echo "#define CONFIG_IASL $value"
;;
CONFIG_AUDIO_DRIVERS=*)
drivers=${line#*=}
echo "#define CONFIG_AUDIO_DRIVERS \\"
for drv in $drivers; do
echo " &${drv}_audio_driver,\\"
done
echo ""
;;
CONFIG_BDRV_RW_WHITELIST=*)
echo "#define CONFIG_BDRV_RW_WHITELIST\\"
for drv in ${line#*=}; do
echo " \"${drv}\",\\"
done
echo " NULL"
;;
CONFIG_BDRV_RO_WHITELIST=*)
echo "#define CONFIG_BDRV_RO_WHITELIST\\"
for drv in ${line#*=}; do
echo " \"${drv}\",\\"
done
echo " NULL"
;;
CONFIG_*='$(CONFIG_SOFTMMU)'|CONFIG_*=y) # configuration
name=${line%=*}
echo "#define $name 1"
;;
CONFIG_*=*) # configuration
name=${line%=*}
value=${line#*=}
echo "#define $name $value"
;;
HAVE_*=y) # configuration
name=${line%=*}
echo "#define $name 1"
;;
HAVE_*=*) # 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_BASE_ARCH=*) # configuration
target_base_arch=${line#*=}
base_arch_name=`echo $target_base_arch | LC_ALL=C tr '[a-z]' '[A-Z]'`
echo "#define TARGET_$base_arch_name 1"
;;
TARGET_XML_FILES=*)
# do nothing
;;
TARGET_ABI_DIR=*)
# do nothing
;;
TARGET_NAME=*)
target_name=${line#*=}
echo "#define TARGET_NAME \"$target_name\""
;;
TARGET_DIRS=*)
# do nothing
;;
TARGET_*=y) # configuration
name=${line%=*}
echo "#define $name 1"
;;
TARGET_*=*) # configuration
name=${line%=*}
value=${line#*=}
echo "#define $name $value"
;;
DSOSUF=*)
echo "#define HOST_DSOSUF \"${line#*=}\""
;;
esac
done # read