
QEMU is an emulator for various CPUs. It works on Linux, Windows, FreeBSD and Mac OS X. Windows version is in an alpha stage. I hope I can provide useful information on development and usage of the software.
C:-std vga, -std cirrus and -sdl => no changes.SET QEMU_AUDIO_DRV=fmod and QEMU_FMOD_DRV=dsound => no audio output (?).sha1sum. Since Qemu-1.0 the build is done with the MinGW compiler (as it doesn't compile any more with cygwin, even if Cygwin is still used for the shell and other tools: MSYS is not required)
The main difference is now that the build is done since Qemu-1.2.1 with MinGW by using the latest version of gcc.
Note that with latest version of cygwin, gcc4-core gcc4-core-4.7.3 and gcc4-g++-4.7.3 are available, maybe this can be compiled again with 'pure' Cygwin
You need the following packages (downloadable with the MinGW installer program) :
[Show/Hide]
http://prdownloads.sourceforge.net/mingw/mingw-get-0.5-mingw32-beta-20120426-1-bin.tar.xz?download
http://prdownloads.sourceforge.net/mingw/binutils-2.23.1-1-mingw32-bin.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gcc-4.7.2-1-mingw32-doc.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gcc-4.7.2-1-mingw32-lang.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gcc-4.7.2-1-mingw32-lic.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gcc-c++-4.7.2-1-mingw32-bin.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gcc-core-4.7.2-1-mingw32-bin.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gdb-7.5-1-mingw32-bin.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libexpat-2.0.1-1-mingw32-dll-1.tar.gz?download
http://prdownloads.sourceforge.net/mingw/libgcc-4.7.2-1-mingw32-dll-1.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libgmp-5.0.1-1-mingw32-dll-10.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libgomp-4.7.2-1-mingw32-dll-1.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libiconv-1.14-2-mingw32-dev.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libiconv-1.14-2-mingw32-dll-2.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libintl-0.18.1.1-2-mingw32-dll-8.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libmpc-0.8.1-1-mingw32-dll-2.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libpthreadgc-2.9.0-mingw32-pre-20110507-2-dll-2.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libquadmath-4.7.2-1-mingw32-dll-0.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libssp-4.7.2-1-mingw32-dll-0.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libstdc++-4.7.2-1-mingw32-dll-6.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/mingw-get-0.5-mingw32-beta-20120426-1-bin.tar.xz?download
http://prdownloads.sourceforge.net/mingw/mingw-get-0.5-mingw32-beta-20120426-1-lic.tar.xz?download
http://prdownloads.sourceforge.net/mingw/mingwrt-3.20-2-mingw32-dev.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/mingwrt-3.20-2-mingw32-dll.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/pkginfo-0.5-mingw32-beta-20120426-1-bin.tar.xz?download
http://prdownloads.sourceforge.net/mingw/pthreads-w32-2.9.0-mingw32-pre-20110507-2-dev.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/w32api-3.17-2-mingw32-dev.tar.lzma?download
GLIB for MinGW:
Fetched new GTK+ Bundle for mingw
You need the following package http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip
Warning: do not forget to correct the values of prefix= in the provided lib/pkgconfig/*.pc files!
See gtk+-bundle_win32.README
ZLIB for MinGW:
You need the following packages
http://sourceforge.net/projects/mingw/files/MinGW/Extension/zlib/zlib-1.2.7-1/libz-1.2.7-1-mingw32-dll-1.tar.lzma/download and
http://sourceforge.net/projects/mingw/files/MinGW/Extension/zlib/zlib-1.2.7-1/libz-1.2.7-1-mingw32-dev.tar.lzma/download
Note: everything is installed for me in C:\MinGW. Those tar files can be extracted with the -lzma option of cygwin's tar if needed, as the cygwin's shell is still used by me (and not the MSYS version).
SDL for MinGW:
Fetch my version of
SDL-1.2.15 because there is a small bug in the versioning of the DLL file.
Source code is here: SDL-devel-1.2.15-mingw32.tar.gz.
Note: my patch is here: SDL-1.2.15-patch.
DirectX:
Fetched http://sourceforge.net/projects/mingwdx/files/latest/download?source=files
and files from http://www.filehat.com/folders.php?fid=134
PIXMAN for MinGW:
Fetch my version of the
pixman library for MinGW pixman-0.30.2-mingw32.tar.bz2.
Source code is here: http://cairographics.org/releases/
(or here: pixman-0.30.2.tar.gz)
Note: my porting notes are here: pixman-0.30.2-mingw32-README.txt.
libfdt for MinGW :
Optionally fetch my version of the
libfdt library for MinGW libfdt-1.3.0-EL-1-mingw32.tar.bz2.
Source code is here: http://jdl.com/software/dtc-v1.3.0.tgz
(or here: dtc-v1.3.0.tgz)
Note: my porting notes are here: libfdt-1.3.0-EL-1-mingw32-README.txt.
Qemu:
export PATH=/cygdrive/c/MinGW/bin:$HOME/bin:/usr/local/bin:/usr/bin:/bin cd $HOME/bin ln -s /cygdrive/c/MinGW/bin/dlltool.exe i586-mingw32-dlltool ln -s /cygdrive/c/MinGW/bin/ld.exe i586-mingw32-ld ln -s /cygdrive/c/MinGW/bin/windres.exe i586-mingw32-windres ln -s /usr/bin/pkg-config.exe i586-mingw32-pkg-config ln -s ar-wrapper.h i586-mingw32-ar ln -s gcc-wrapper.sh i586-mingw32-gcc
#!/bin/bash
# ##############################################################################
# (c) Eric Lassauge - January 2012
# <lassauge {AT} users {DOT} sourceforge {DOT} net >
#
# ##############################################################################
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>
# ##############################################################################
# Complete script for MinGW gcc wrapper from cygwin: change POSIX path to windows path
# Needs: cygpath
#Configure to where you installed MinGW
mingwbase=/cygdrive/c/MinGW
mingwroot=`cygpath -w ${mingwbase}`
dollarstar=""
# Parse the gcc flags to change all file pathes
while [ $# -ne 0 ]; do
case "$1" in
-o)
param=`cygpath -w $2`
dollarstar="${dollarstar} -o ${param}"
shift
;;
-I)
param=`cygpath -w $2`
dollarstar="${dollarstar} -I ${param}"
shift
;;
-I*)
parami=`echo $1 | sed -e 's/-I//'`
first=`echo ${parami} | sed -e 's/^\(.\).*/\1/'`
case $first in
'/' | '.')
param=`cygpath -w ${parami}`
dollarstar="${dollarstar} -I${param}"
;;
*)
dollarstar="${dollarstar} ${1}"
;;
esac
;;
-B)
param=`cygpath -w $2`
dollarstar="${dollarstar} -B ${param}"
shift
;;
-L)
param=`cygpath -w $2`
dollarstar="${dollarstar} -L ${param}"
shift
;;
-L*)
paraml=`echo $1 | sed -e 's/-L//'`
first=`echo ${paraml} | sed -e 's/^\(.\).*/\1/'`
case $first in
'/' | '.')
param=`cygpath -w ${paraml}`
dollarstar="${dollarstar} -L${param}"
;;
*)
dollarstar="${dollarstar} ${1}"
;;
esac
;;
*)
if [ -f "$1" ]
then
param=`cygpath -w $1`
dollarstar="${dollarstar} ${param}"
else
dollarstar="${dollarstar} $1"
fi
;;
esac
shift
done
# remove spurious ^M
dollarstar=`echo "${dollarstar}" | sed -e 's/^M//g'`
# echo "# Calling MinGW compiler: gcc ${dollarstar}"
# Add the path to mingw tools
export PATH=${mingwbase}/bin:$PATH
${mingwbase}/bin/gcc -Wl,-mi386pe --sysroot="${mingwroot}" ${dollarstar}
#!/bin/bash
# ##############################################################################
# (c) Eric Lassauge - December 2012
# <lassauge {AT} users {DOT} sourceforge {DOT} net >
#
# ##############################################################################
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>
# ##############################################################################
# Complete script for MinGW ar wrapper from cygwin: change POSIX path to windows path
# Needs: cygpath
#Configure to where you installed MinGW
mingwbase=/cygdrive/c/MinGW
mingwroot=`cygpath -w ${mingwbase}`
dollarstar=""
# Parse the gcc flags to change all file pathes
while [ $# -ne 0 ]; do
case "$1" in
*)
if [ -f "$1" ]
then
param=`cygpath -w $1`
dollarstar="${dollarstar} ${param}"
else
dollarstar="${dollarstar} $1"
fi
;;
esac
shift
done
# remove spurious ^M
dollarstar=`echo "${dollarstar}" | sed -e 's/
//g'`
# echo "# Calling MinGW compiler: gcc ${dollarstar}"
# Add the path to mingw tools
export PATH=${mingwbase}/bin:$PATH
${mingwbase}/bin/ar ${dollarstar}
export PKG_CONFIG_PATH=/cygdrive/c/MinGW/lib/pkgconfig ./configure --target-list="i386-softmmu arm-softmmu sparc-softmmu ppc-softmmu x86_64-softmmu mipsel-softmmu"\ --cc=i586-mingw32-gcc --host-cc=/usr/bin/gcc --audio-drv-list="winwave dsound sdl fmod"\ --audio-card-list="ac97 es1370 sb16 cs4231a adlib gus hda" \ --prefix=/home/lassauge/MyDocuments/Qemu-windows \ --with-confsuffix=/Bios \ --fmod-lib=/home/lassauge/Qemu/fmodapi375win/api/lib/libfmod.a \ --fmod-inc=/home/lassauge/Qemu/fmodapi375win/api/inc \ --enable-mixemu \ --disable-guest-agent \ --disable-werror \ --disable-strip $*
config-host.mak and config-target.mak because some spurious ^M might be in! (you can use this script to ease your pain: clean-config.sh).make QEMU_DGFLAGS=" "
C:\MinGW\lib in my case):fmod.dll intl.dll libgcc_s_dw2-1.dll libglib-2.0-0.dll libgthread-2.0-0.dll libpng14-14.dll libssp-0.dll libz-1.dll SDL.dll zlib1.dll

This program is provided as is and without any warranty.