Friday, January 7, 2011

Compiling qemu on windows

I started doing this today by following this page. However, I was always getting this error that config-all-devices.mak not found. I googled and found some patches. However, something told me that this is not a patch issue. So, I decided to look again and then saw this funny message "-uThe system cannot find the file specified."

This was actually getting caused due to incorrect sort being used. I had the windows programs in my path and a 'which sort' clearly told me what was going wrong.

bash-3.2$ which sort
/c/WINDOWS/system32/sort
A change in path declaration fixed this issue

PATH=/home/lassauge/MyDocuments/Qemu/libusb-win32-device-bin-0.1.12.2/bin:$PATH CFLAGS="-O4 -march=i686" \

to

PATH=../libusb-win32-device-bin-0.1.12.2/bin:/usr/bin:$PATH CFLAGS="-O4 -march=i686" \ 

Anyway, I have not completed the build. Currently I am getting some usb library related errors. Will update this post once I completely compile this.

Edit:

Completed this build. Though the above fix removed the error, it did not create the proper config-all-devices.mak. So, I had to manually create this by running the appropriate command

 cat i386-softmmu/config-devices.mak | grep =y | sort -u > config-all-devices.mak

Again, I got the error that isa vga device was not created. So, again, I manually entered the vga-isa.so as a dependency for target "all" in the Makefile.hw.
Also, it did not pickup the usb library include folders correctly. To fix this, I added the following to config-host.mak
CFLAGS=-O2 -g -O4 -march=i686 -I../libusb-win32-device-bin-0.1.12.2/include

Another issue was the fmod libraries needed absolute path. I changed that also in the configure script. However, usb libraries worked fine with relative path from qemu folder. I think, fmod would have got linked from a sub-folder inside qemu where as the usb lib would have got used from the qemu folder itself. Anyway, I am running the qemu compiled my me :)

No comments: