On 07/01/2021 22.38, Joshua Watt wrote:
There are two cases that need to be accounted for when compiling QEMU
for MinGW32:
1) A standalone distribution, where QEMU is self contained and
extracted by the user, such as a user would download from the QEMU
website. In this case, all of the QEMU files should be rooted in
$prefix to ensure they can be easily packaged together for
distribution
2) QEMU integrated into a distribution image/sysroot/SDK and
distributed with other programs. In this case, the provided
arguments for bindir/datadir/etc. should be respected as they for a
Linux build.
Add a configure time flags --enable-standalone-mingw and
--disable-standalone-mingw that allows the user to control this
behavior. The flag defaults to "enabled" if unspecified to retain the
existing build behavior
Signed-off-by: Joshua Watt <jpewhac...@gmail.com>
---
configure | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index 5860bdb77b..5c83edb502 100755
--- a/configure
+++ b/configure
@@ -358,6 +358,7 @@ strip_opt="yes"
tcg_interpreter="no"
bigendian="no"
mingw32="no"
+mingw32_standalone="yes"
gcov="no"
EXESUF="$default_feature"
HOST_DSOSUF=".so"
@@ -1558,6 +1559,10 @@ for opt do
;;
--disable-fuse-lseek) fuse_lseek="disabled"
;;
+ --enable-standalone-mingw) mingw32_standalone="yes"
+ ;;
+ --disable-standalone-mingw) mingw32_standalone="no"
+ ;;
*)
echo "ERROR: unknown option $opt"
echo "Try '$0 --help' for more information"
@@ -1570,7 +1575,7 @@ libdir="${libdir:-$prefix/lib}"
libexecdir="${libexecdir:-$prefix/libexec}"
includedir="${includedir:-$prefix/include}"
-if test "$mingw32" = "yes" ; then
+if test "$mingw32" = "yes" && test "$mingw32_standalone" = "yes"; then
mandir="$prefix"
datadir="$prefix"
docdir="$prefix"
@@ -1897,6 +1902,7 @@ disabled with --disable-FEATURE, default is enabled if
available
libdaxctl libdaxctl support
fuse FUSE block device export
fuse-lseek SEEK_HOLE/SEEK_DATA support for FUSE exports
+ standalone-mingw Build for standalone distribution on MinGW
NOTE: The object files are built at the place where configure is launched
EOF
I think this should maybe be done independently from MinGW, so that it could
be used on other systems, too. Thus maybe rather name the switch
"--enable-standalone-distribution" or "--enable-standalone-installation" or
something like this? On MinGW, the value of the switch could then default to
"yes" while on other systems it would be "no" by default.
Thomas