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>
122 lines
2.7 KiB
Bash
Executable file
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
|