From 11d9f695e710b406a487daf3fb83f82dea314063 Mon Sep 17 00:00:00 2001 From: bellard Date: Fri, 2 Apr 2004 20:55:59 +0000 Subject: [PATCH] win32 cross compile fix git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@694 c046a42c-6fe2-441c-8c8c-71466251a162 --- Makefile | 27 +++++++++---------- Makefile.target | 7 +++-- configure | 69 ++++++++++++++++++++++++++++++++----------------- dyngen.c | 4 ++- 4 files changed, 67 insertions(+), 40 deletions(-) diff --git a/Makefile b/Makefile index f2be1f6f8a..fc9d74f9c6 100644 --- a/Makefile +++ b/Makefile @@ -16,14 +16,11 @@ all: dyngen$(EXESUF) $(TOOLS) qemu-doc.html qemu.1 make -C $$d $@ || exit 1 ; \ done -qemu-mkcow: qemu-mkcow.o - $(HOST_CC) -o $@ $^ $(LIBS) +qemu-mkcow: qemu-mkcow.c + $(CC) $(CFLAGS) $(DEFINES) -o $@ $^ $(LIBS) -dyngen$(EXESUF): dyngen.o - $(HOST_CC) -o $@ $^ $(LIBS) - -%.o: %.c - $(HOST_CC) $(CFLAGS) $(DEFINES) -c -o $@ $< +dyngen$(EXESUF): dyngen.c + $(HOST_CC) $(CFLAGS) $(DEFINES) -o $@ $^ clean: # avoid old build problems by removing potentially incorrect old files @@ -41,13 +38,17 @@ distclean: clean done install: all - mkdir -p $(prefix)/bin - install -m 755 -s $(TOOLS) $(prefix)/bin - mkdir -p $(sharedir) + mkdir -p "$(bindir)" +ifndef CONFIG_WIN32 + install -m 755 -s $(TOOLS) "$(bindir)" +endif + mkdir -p "$(sharedir)" install -m 644 pc-bios/bios.bin pc-bios/vgabios.bin \ - pc-bios/linux_boot.bin $(sharedir) - mkdir -p $(mandir)/man1 - install qemu.1 qemu-mkcow.1 $(mandir)/man1 + pc-bios/linux_boot.bin "$(sharedir)" +ifndef CONFIG_WIN32 + mkdir -p "$(mandir)/man1" + install qemu.1 qemu-mkcow.1 "$(mandir)/man1" +endif for d in $(TARGET_DIRS); do \ make -C $$d $@ || exit 1 ; \ done diff --git a/Makefile.target b/Makefile.target index 1b578d0fd2..9fe3e83ed4 100644 --- a/Makefile.target +++ b/Makefile.target @@ -246,9 +246,12 @@ endif ifndef CONFIG_SOFTMMU VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/i386-vl.ld endif +ifndef CONFIG_WIN32 +VL_LIBS=-lutil +endif $(QEMU_SYSTEM): $(VL_OBJS) libqemu.a - $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) -lutil + $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(VL_LIBS) sdl.o: sdl.c $(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $< @@ -309,7 +312,7 @@ clean: install: all ifneq ($(PROGS),) - install -m 755 -s $(PROGS) $(prefix)/bin + install -m 755 -s $(PROGS) "$(bindir)" endif ifneq ($(wildcard .depend),) diff --git a/configure b/configure index 75340eae13..4f66317e46 100755 --- a/configure +++ b/configure @@ -17,7 +17,7 @@ TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" # default parameters -prefix="/usr/local" +prefix="" interp_prefix="/usr/gnemul/qemu-%M" static="no" cross_prefix="" @@ -81,26 +81,6 @@ mingw32="yes" *) ;; esac -########################################## -# SDL probe - -cat > $TMPC << EOF -#include -#undef main /* We don't want SDL to override our main() */ -int main( void ) { return SDL_Init (SDL_INIT_VIDEO); } -EOF - -sdl_too_old=no -sdl=no -if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs` 2> /dev/null ; then -_sdlversion=`sdl-config --version | sed 's/[^0-9]//g'` -if test "$_sdlversion" -lt 121 ; then -sdl_too_old=yes -else -sdl=yes -fi -fi - # find source path # XXX: we assume an absolute path is given when launching configure, # except in './configure' case. @@ -157,9 +137,7 @@ ar="${cross_prefix}${ar}" strip="${cross_prefix}${strip}" if test "$mingw32" = "yes" ; then - host_cc="$cc" target_list="i386-softmmu" - prefix="/c/Program Files/Qemu" EXESUF=".exe" gdbstub="no" fi @@ -202,6 +180,31 @@ if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/nu have_gcc3_options="yes" fi +########################################## +# SDL probe + +sdl_too_old=no + +if test -z "$sdl" ; then + +cat > $TMPC << EOF +#include +#undef main /* We don't want SDL to override our main() */ +int main( void ) { return SDL_Init (SDL_INIT_VIDEO); } +EOF + +sdl=no +if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs` 2> /dev/null ; then +_sdlversion=`sdl-config --version | sed 's/[^0-9]//g'` +if test "$_sdlversion" -lt 121 ; then +sdl_too_old=yes +else +sdl=yes +fi +fi + +fi + if test x"$1" = x"-h" -o x"$1" = x"--help" ; then cat << EOF @@ -228,13 +231,29 @@ echo "NOTE: The object files are build at the place where configure is launched" exit 1 fi +if test "$mingw32" = "yes" ; then +if test -z "$prefix" ; then + prefix="/c/Program Files/Qemu" +fi +mandir="$prefix" +sharedir="$prefix" +bindir="$prefix" +else +if test -z "$prefix" ; then + prefix="/usr/local" +fi mandir="$prefix/share/man" sharedir="$prefix/share/qemu" +bindir="$prefix/bin" +fi echo "Install prefix $prefix" -echo "Manual directory $mandir" echo "BIOS directory $sharedir" +echo "binary directory $bindir" +if test "$mingw32" = "no" ; then +echo "Manual directory $mandir" echo "ELF interp prefix $interp_prefix" +fi echo "Source path $source_path" echo "C compiler $cc" echo "make $make" @@ -259,6 +278,7 @@ echo "# Automatically generated by configure - do not modify" > $config_mak echo "/* Automatically generated by configure - do not modify */" > $config_h echo "prefix=$prefix" >> $config_mak +echo "bindir=$bindir" >> $config_mak echo "mandir=$mandir" >> $config_mak echo "sharedir=$sharedir" >> $config_mak echo "#define CONFIG_QEMU_SHAREDIR \"$sharedir\"" >> $config_h @@ -316,6 +336,7 @@ if test "$bigendian" = "yes" ; then fi if test "$mingw32" = "yes" ; then echo "CONFIG_WIN32=yes" >> $config_mak + echo "#define CONFIG_WIN32 1" >> $config_h else echo "#define HAVE_BYTESWAP_H 1" >> $config_h fi diff --git a/dyngen.c b/dyngen.c index a817d62c93..b10909e78d 100644 --- a/dyngen.c +++ b/dyngen.c @@ -30,7 +30,9 @@ #include "config-host.h" -#if defined(_WIN32) +/* NOTE: we test CONFIG_WIN32 instead of _WIN32 to enabled cross + compilation */ +#if defined(CONFIG_WIN32) #define CONFIG_FORMAT_COFF #else #define CONFIG_FORMAT_ELF