From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MFqGR-0001Tu-8r for qemu-devel@nongnu.org; Sun, 14 Jun 2009 10:00:51 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MFqGM-0001SI-8Q for qemu-devel@nongnu.org; Sun, 14 Jun 2009 10:00:50 -0400 Received: from [199.232.76.173] (port=38642 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MFqGM-0001SF-52 for qemu-devel@nongnu.org; Sun, 14 Jun 2009 10:00:46 -0400 Received: from moutng.kundenserver.de ([212.227.126.177]:59623) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MFqGL-000779-GX for qemu-devel@nongnu.org; Sun, 14 Jun 2009 10:00:45 -0400 Message-ID: <4A350288.5090804@mail.berlios.de> Date: Sun, 14 Jun 2009 16:00:40 +0200 From: Stefan Weil MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] Fix SDL configuration for mingw32 cross compilation. References: <1244880087-5277-1-git-send-email-weil@mail.berlios.de> <4A34271B.8080207@us.ibm.com> In-Reply-To: <4A34271B.8080207@us.ibm.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org Anthony Liguori schrieb: > Stefan Weil wrote: >> When building QEMU for win32 on linux with mingw32, >> configure must call ${cross_prefix}-sdl-config (not >> sdl-config) to get the correct include and lib paths. >> >> The results of the native sdl-config are only valid >> for native builds. They are useless for cross builds. >> > > No, when you cross compile sdl, you still end up with an sdl-config > binary. The solution is to install the binary to a different path and > use PATH when building. > > Where did you get your cross build of SDL from? I assume whoever > packaged it renamed the binary but it's not what sdl actually does. > The PATH solution works (I used it, too), but it is bad: you have to use a modified PATH for every cross build (make calls configure when the configure script is updated). http://www.libsdl.org/release/SDL-devel-1.2.9-mingw32.tar.gz contains i386-mingw32msvc-sdl-config. It is rather old, but I liked this and renamed it to i586-mingw32msvc-sdl-config. When I installed newer versions of cross SDL, I made a symbolic link from cross sdl-config to i586-mingw32msvc-sdl-config. There is a quasi-standard for cross tools: binutils and gcc are installed in a similar way. For example, /usr/bin/i586-mingw32msvc-strip and /usr/i586-mingw32msvc/bin/strip are (hard) linked. If your cross sdl-config happens to be in /usr/i586-mingw32msvc/bin and you add this to PATH, you will see another problem caused by the PATH solution: you will get the wrong binutils (ar, as, strip, ...)! Ok, cross sdl-config (which is a script, not a binary) can have its own directory, then this is not a problem. sdl-config exists because users should not need to know paths for includes, libs (and binaries) but have a simple interface to ask for the information they need. The same simple interface is needed for cross sdl. There are no packages with cross build SDL (at least I don't know any), so it is always a manual installation. Adding a symbolic link is then easy: ln -s /usr/i586-mingw32msvc/bin/sdl-config /usr/bin/i586-mingw32msvc-sdl-config. Looking for i586-mingw32msvc-sdl-config at google shows that others use this solution, too. Even better for most users would be a package or tar file which installs the sdl cross environment needed for QEMU mingw32 cross builds. Should I prepare one? Or you could add a configure option which tells configure where to look for sdl-config or its base directory, something like --with-sdl-prefix=/usr/i586-mingw32msvc (this is used by other projects, see google). Regards Stefan