Generate config-host.h from config-host.mak
Generate CONFIG_AUDIO_DRIVERS. Order is important here, because the
first driver in the list is the one used by default.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
diff --git a/audio/audio.c b/audio/audio.c
index 694a83e..0a3830d 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -37,8 +37,13 @@
#define SW_NAME(sw) (sw)->name ? (sw)->name : "unknown"
+
+/* Order of CONFIG_AUDIO_DRIVERS is import.
+ The 1st one is the one used by default, that is the reason
+ that we generate the list.
+*/
static struct audio_driver *drvtab[] = {
- AUDIO_DRIVERS
+ CONFIG_AUDIO_DRIVERS
&no_audio_driver,
&wav_audio_driver
};
diff --git a/configure b/configure
index 977acae..c915ada 100755
--- a/configure
+++ b/configure
@@ -1486,9 +1486,8 @@
printf "# Configured with:" >> $config_host_mak
printf " '%s'" "$0" "$@" >> $config_host_mak
echo >> $config_host_mak
-echo "/* Automatically generated by configure - do not modify */" > $config_host_h
-echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_host_h
+echo "CONFIG_QEMU_SHAREDIR=\"$prefix$datasuffix\"" >> $config_host_mak
case "$cpu" in
i386|x86_64|alpha|cris|hppa|ia64|m68k|microblaze|mips|mips64|ppc|ppc64|s390|sparc|sparc64)
@@ -1503,26 +1502,21 @@
;;
esac
echo "ARCH=$ARCH" >> $config_host_mak
-arch_name=`echo $ARCH | tr '[:lower:]' '[:upper:]'`
-echo "#define HOST_$arch_name 1" >> $config_host_h
-
if test "$debug_tcg" = "yes" ; then
- echo "#define CONFIG_DEBUG_TCG 1" >> $config_host_h
+ echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
fi
if test "$debug" = "yes" ; then
- echo "#define CONFIG_DEBUG_EXEC 1" >> $config_host_h
+ echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak
fi
if test "$strip_opt" = "yes" ; then
echo "STRIP_OPT=-s" >> $config_host_mak
fi
if test "$bigendian" = "yes" ; then
echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
- echo "#define HOST_WORDS_BIGENDIAN 1" >> $config_host_h
fi
-echo "#define HOST_LONG_BITS $hostlongbits" >> $config_host_h
+echo "HOST_LONG_BITS=$hostlongbits" >> $config_host_mak
if test "$mingw32" = "yes" ; then
echo "CONFIG_WIN32=y" >> $config_host_mak
- echo "#define CONFIG_WIN32 1" >> $config_host_h
else
echo "CONFIG_POSIX=y" >> $config_host_mak
cat > $TMPC << EOF
@@ -1530,7 +1524,7 @@
int main(void) { return bswap_32(0); }
EOF
if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then
- echo "#define CONFIG_BYTESWAP_H 1" >> $config_host_h
+ echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak
fi
cat > $TMPC << EOF
#include <sys/endian.h>
@@ -1539,62 +1533,51 @@
int main(void) { return bswap32(0); }
EOF
if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then
- echo "#define CONFIG_MACHINE_BSWAP_H 1" >> $config_host_h
+ echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
fi
fi
if test "$darwin" = "yes" ; then
echo "CONFIG_DARWIN=y" >> $config_host_mak
- echo "#define CONFIG_DARWIN 1" >> $config_host_h
fi
if test "$aix" = "yes" ; then
echo "CONFIG_AIX=y" >> $config_host_mak
- echo "#define CONFIG_AIX 1" >> $config_host_h
fi
if test "$solaris" = "yes" ; then
echo "CONFIG_SOLARIS=y" >> $config_host_mak
- echo "#define CONFIG_SOLARIS 1" >> $config_host_h
- echo "#define CONFIG_SOLARIS_VERSION $solarisrev" >> $config_host_h
+ echo "CONFIG_SOLARIS_VERSION=$solarisrev" >> $config_host_mak
if test "$needs_libsunmath" = "yes" ; then
echo "CONFIG_NEEDS_LIBSUNMATH=y" >> $config_host_mak
- echo "#define CONFIG_NEEDS_LIBSUNMATH 1" >> $config_host_h
fi
fi
if test -n "$sparc_cpu"; then
echo "CONFIG__sparc_${sparc_cpu}__=y" >> $config_host_mak
- echo "#define __sparc_${sparc_cpu}__ 1" >> $config_host_h
fi
if test "$gprof" = "yes" ; then
echo "TARGET_GPROF=yes" >> $config_host_mak
- echo "#define TARGET_GPROF 1" >> $config_host_h
fi
if test "$static" = "yes" ; then
echo "CONFIG_STATIC=y" >> $config_host_mak
- echo "#define CONFIG_STATIC 1" >> $config_host_h
LDFLAGS="$LDFLAGS -static"
fi
if test $profiler = "yes" ; then
- echo "#define CONFIG_PROFILER 1" >> $config_host_h
+ echo "CONFIG_PROFILER=y" >> $config_host_mak
fi
if test "$slirp" = "yes" ; then
echo "CONFIG_SLIRP=y" >> $config_host_mak
- echo "#define CONFIG_SLIRP 1" >> $config_host_h
fi
if test "$vde" = "yes" ; then
echo "CONFIG_VDE=y" >> $config_host_mak
- echo "#define CONFIG_VDE 1" >> $config_host_h
echo "VDE_LIBS=$vde_libs" >> $config_host_mak
fi
for card in $audio_card_list; do
def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
echo "$def=y" >> $config_host_mak
- echo "#define $def 1" >> $config_host_h
done
-echo "#define AUDIO_DRIVERS \\" >> $config_host_h
+echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
for drv in $audio_drv_list; do
- echo " &${drv}_audio_driver, \\" >>$config_host_h
def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
echo "$def=y" >> $config_host_mak
if test "$drv" = "fmod"; then
@@ -1604,32 +1587,25 @@
echo "OSS_LIBS=$oss_lib" >> $config_host_mak
fi
done
-echo "" >>$config_host_h
if test "$mixemu" = "yes" ; then
echo "CONFIG_MIXEMU=y" >> $config_host_mak
- echo "#define CONFIG_MIXEMU 1" >> $config_host_h
fi
if test "$vnc_tls" = "yes" ; then
echo "CONFIG_VNC_TLS=y" >> $config_host_mak
echo "VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_host_mak
echo "VNC_TLS_LIBS=$vnc_tls_libs" >> $config_host_mak
- echo "#define CONFIG_VNC_TLS 1" >> $config_host_h
fi
if test "$vnc_sasl" = "yes" ; then
echo "CONFIG_VNC_SASL=y" >> $config_host_mak
echo "VNC_SASL_CFLAGS=$vnc_sasl_cflags" >> $config_host_mak
echo "VNC_SASL_LIBS=$vnc_sasl_libs" >> $config_host_mak
- echo "#define CONFIG_VNC_SASL 1" >> $config_host_h
fi
if test "$fnmatch" = "yes" ; then
- echo "#define CONFIG_FNMATCH 1" >> $config_host_h
+ echo "CONFIG_FNMATCH=y" >> $config_host_mak
fi
qemu_version=`head $source_path/VERSION`
echo "VERSION=$qemu_version" >>$config_host_mak
-echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_host_h
-
-echo "#define QEMU_PKGVERSION \"$pkgversion\"" >> $config_host_h
-
+echo "PKGVERSION=$pkgversion" >>$config_host_mak
echo "SRC_PATH=$source_path" >> $config_host_mak
if [ "$source_path_used" = "yes" ]; then
echo "VPATH=$source_path" >> $config_host_mak
@@ -1639,84 +1615,75 @@
echo "BUILD_DOCS=yes" >> $config_host_mak
fi
if test "$sdl" = "yes" ; then
- echo "#define CONFIG_SDL 1" >> $config_host_h
echo "CONFIG_SDL=y" >> $config_host_mak
echo "SDL_LIBS=$sdl_libs" >> $config_host_mak
echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
fi
if test "$cocoa" = "yes" ; then
- echo "#define CONFIG_COCOA 1" >> $config_host_h
echo "CONFIG_COCOA=y" >> $config_host_mak
fi
if test "$curses" = "yes" ; then
- echo "#define CONFIG_CURSES 1" >> $config_host_h
echo "CONFIG_CURSES=y" >> $config_host_mak
echo "CURSES_LIBS=$curses_libs" >> $config_host_mak
fi
if test "$atfile" = "yes" ; then
- echo "#define CONFIG_ATFILE 1" >> $config_host_h
+ echo "CONFIG_ATFILE=y" >> $config_host_mak
fi
if test "$utimens" = "yes" ; then
- echo "#define CONFIG_UTIMENSAT 1" >> $config_host_h
+ echo "CONFIG_UTIMENSAT=y" >> $config_host_mak
fi
if test "$pipe2" = "yes" ; then
- echo "#define CONFIG_PIPE2 1" >> $config_host_h
+ echo "CONFIG_PIPE2=y" >> $config_host_mak
fi
if test "$splice" = "yes" ; then
- echo "#define CONFIG_SPLICE 1" >> $config_host_h
+ echo "CONFIG_SPLICE=y" >> $config_host_mak
fi
if test "$inotify" = "yes" ; then
- echo "#define CONFIG_INOTIFY 1" >> $config_host_h
+ echo "CONFIG_INOTIFY=y" >> $config_host_mak
fi
if test "$curl" = "yes" ; then
echo "CONFIG_CURL=y" >> $config_host_mak
echo "CURL_LIBS=$curl_libs" >> $config_host_mak
- echo "#define CONFIG_CURL 1" >> $config_host_h
fi
if test "$brlapi" = "yes" ; then
echo "CONFIG_BRLAPI=y" >> $config_host_mak
- echo "#define CONFIG_BRLAPI 1" >> $config_host_h
echo "BRLAPI_LIBS=$brlapi_libs" >> $config_host_mak
fi
if test "$bluez" = "yes" ; then
echo "CONFIG_BLUEZ=y" >> $config_host_mak
echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak
echo "BLUEZ_LIBS=$bluez_libs" >> $config_host_mak
- echo "#define CONFIG_BLUEZ 1" >> $config_host_h
fi
if test "$xen" = "yes" ; then
echo "CONFIG_XEN=y" >> $config_host_mak
echo "XEN_LIBS=$xen_libs" >> $config_host_mak
fi
if test "$aio" = "yes" ; then
- echo "#define CONFIG_AIO 1" >> $config_host_h
echo "CONFIG_AIO=y" >> $config_host_mak
fi
if test "$io_thread" = "yes" ; then
echo "CONFIG_IOTHREAD=y" >> $config_host_mak
- echo "#define CONFIG_IOTHREAD 1" >> $config_host_h
fi
if test "$blobs" = "yes" ; then
echo "INSTALL_BLOBS=yes" >> $config_host_mak
fi
if test "$iovec" = "yes" ; then
- echo "#define CONFIG_IOVEC 1" >> $config_host_h
+ echo "CONFIG_IOVEC=y" >> $config_host_mak
fi
if test "$preadv" = "yes" ; then
- echo "#define CONFIG_PREADV 1" >> $config_host_h
+ echo "CONFIG_PREADV=y" >> $config_host_mak
fi
if test "$fdt" = "yes" ; then
echo "CONFIG_FDT=y" >> $config_host_mak
- echo "#define CONFIG_FDT 1" >> $config_host_h
echo "FDT_LIBS=$fdt_libs" >> $config_host_mak
fi
# XXX: suppress that
if [ "$bsd" = "yes" ] ; then
- echo "#define CONFIG_BSD 1" >> $config_host_h
+ echo "CONFIG_BSD=y" >> $config_host_mak
fi
-echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_host_h
+echo "CONFIG_UNAME_RELEASE=\"$uname_release\"" >> $config_host_mak
# USB host support
case "$usb" in
@@ -1803,6 +1770,10 @@
echo "PTHREADLIBS=$PTHREADLIBS" >> $config_host_mak
echo "CLOCKLIBS=$CLOCKLIBS" >> $config_host_mak
+echo "/* Automatically generated by configure - do not modify */" > $config_host_h
+
+$source_path/create_config < $config_host_mak >> $config_host_h
+
if test -f ${config_host_h}~ ; then
if cmp -s $config_host_h ${config_host_h}~ ; then
mv ${config_host_h}~ $config_host_h
@@ -2069,7 +2040,10 @@
echo "CONFIG_BSD_USER=y" >> $config_mak
fi
-$source_path/create_config < $config_mak > $config_h
+echo "/* Automatically generated by configure - do not modify */" > $config_h
+echo "#include \"../config-host.h\"" >> $config_h
+
+$source_path/create_config < $config_mak >> $config_h
if test -f ${config_h}~ ; then
if cmp -s $config_h ${config_h}~ ; then
diff --git a/create_config b/create_config
index 8b7b365..8e757f3 100755
--- a/create_config
+++ b/create_config
@@ -1,11 +1,35 @@
#!/bin/sh
-echo "/* Automatically generated by configure - do not modify */"
-echo "#include \"../config-host.h\""
-
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\""
+ ;;
+ ARCH=*) # configuration
+ arch=${line#*=}
+ arch_name=`echo $arch | tr '[:lower:]' '[:upper:]'`
+ echo "#define HOST_$arch_name 1"
+ ;;
+ CONFIG__sparc_*=y) # configuration
+ name=${line%=*}
+ name=${name#CONFIG}
+ value=${line#*=}
+ echo "#define $name $value"
+ ;;
+ CONFIG_AUDIO_DRIVERS=*)
+ drivers=${line#*=}
+ echo "#define CONFIG_AUDIO_DRIVERS \\"
+ for drv in $drivers; do
+ echo " &${drv}_audio_driver,\\"
+ done
+ echo ""
+ ;;
CONFIG_*=y) # configuration
name=${line%=*}
echo "#define $name 1"
@@ -15,6 +39,26 @@
value=${line#*=}
echo "#define $name $value"
;;
+ ARCH=*) # configuration
+ arch=${line#*=}
+ arch_name=`echo $arch | tr '[:lower:]' '[:upper:]'`
+ 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#*=}
arch_name=`echo $target_arch | tr '[:lower:]' '[:upper:]'`
@@ -37,6 +81,9 @@
TARGET_ARCH2=*)
# do nothing
;;
+ TARGET_DIRS=*)
+ # do nothing
+ ;;
TARGET_*=y) # configuration
name=${line%=*}
echo "#define $name 1"