* [Qemu-devel] [PATCH v3 0/2] buildsys: Fix and enable module build
@ 2015-01-16 1:54 Fam Zheng
2015-01-16 1:54 ` [Qemu-devel] [PATCH v3 1/2] configure: Default to " Fam Zheng
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Fam Zheng @ 2015-01-16 1:54 UTC (permalink / raw)
To: qemu-devel
Cc: Brian Jackson, Peter Maydell, Michael Tokarev, Alexander Graf,
Stefan Hajnoczi, Paolo Bonzini, Alex Bennée
v3: Fix commit message, error message and function name. (Stefan)
Fam Zheng (2):
configure: Default to enable module build
.travis.yml: Add "--disable-modules"
.travis.yml | 3 ++
configure | 95 ++++++++++++++++++++++++++++++++++++++++++-------------------
2 files changed, 69 insertions(+), 29 deletions(-)
--
1.9.3
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v3 1/2] configure: Default to enable module build
2015-01-16 1:54 [Qemu-devel] [PATCH v3 0/2] buildsys: Fix and enable module build Fam Zheng
@ 2015-01-16 1:54 ` Fam Zheng
2015-01-16 1:54 ` [Qemu-devel] [PATCH v3 2/2] .travis.yml: Add "--disable-modules" Fam Zheng
2015-01-16 13:24 ` [Qemu-devel] [PATCH v3 0/2] buildsys: Fix and enable module build Stefan Hajnoczi
2 siblings, 0 replies; 4+ messages in thread
From: Fam Zheng @ 2015-01-16 1:54 UTC (permalink / raw)
To: qemu-devel
Cc: Brian Jackson, Peter Maydell, Michael Tokarev, Alexander Graf,
Stefan Hajnoczi, Paolo Bonzini, Alex Bennée
We have module build support around for a while, but also had it bitrot
several times. It probably makes sense to enable it by default so that
people can notice and use it.
Add --disable-modules as a counterpart to --enable-modules, which is
now turned on by default. If both are omitted, support is guessed as
usual.
Signed-off-by: Fam Zheng <famz@redhat.com>
---
configure | 95 ++++++++++++++++++++++++++++++++++++++++++++-------------------
1 file changed, 66 insertions(+), 29 deletions(-)
diff --git a/configure b/configure
index 7539645..77535ab 100755
--- a/configure
+++ b/configure
@@ -271,7 +271,7 @@ gcov_tool="gcov"
EXESUF=""
DSOSUF=".so"
LDFLAGS_SHARED="-shared"
-modules="no"
+modules=""
prefix="/usr/local"
mandir="\${prefix}/share/man"
datadir="\${prefix}/share"
@@ -768,6 +768,9 @@ for opt do
--enable-modules)
modules="yes"
;;
+ --disable-modules)
+ modules="no"
+ ;;
--cpu=*)
;;
--target-list=*) target_list="$optarg"
@@ -1259,7 +1262,8 @@ Advanced options (experts only):
--sysconfdir=PATH install config in PATH$confsuffix
--localstatedir=PATH install local state in PATH (set at runtime on win32)
--with-confsuffix=SUFFIX suffix for QEMU data inside datadir/libdir/sysconfdir [$confsuffix]
- --enable-modules enable modules support
+ --enable-modules enable modules support (default)
+ --disable-modules enable modules support
--enable-debug-tcg enable TCG debugging
--disable-debug-tcg disable TCG debugging (default)
--enable-debug-info enable debugging information (default)
@@ -2699,22 +2703,25 @@ if test "$mingw32" = yes; then
else
glib_req_ver=2.12
fi
-glib_modules=gthread-2.0
-if test "$modules" = yes; then
- glib_modules="$glib_modules gmodule-2.0"
-fi
-for i in $glib_modules; do
- if $pkg_config --atleast-version=$glib_req_ver $i; then
- glib_cflags=`$pkg_config --cflags $i`
- glib_libs=`$pkg_config --libs $i`
- CFLAGS="$glib_cflags $CFLAGS"
- LIBS="$glib_libs $LIBS"
- libs_qga="$glib_libs $libs_qga"
- else
- error_exit "glib-$glib_req_ver $i is required to compile QEMU"
- fi
-done
+glib_pkg_config()
+{
+ if $pkg_config --atleast-version=$glib_req_ver $1; then
+ local probe_cflags=$($pkg_config --cflags $1)
+ local probe_libs=$($pkg_config --libs $1)
+ CFLAGS="$probe_cflags $CFLAGS"
+ LIBS="$probe_libs $LIBS"
+ libs_qga="$probe_libs $libs_qga"
+ glib_cflags="$probe_cflags $glib_cflags"
+ glib_libs="$probe_libs $glib_libs"
+ return 0
+ else
+ return 1
+ fi
+}
+
+glib_pkg_config gthread-2.0 || \
+ error_exit "glib-$glib_req_ver gthread-2.0 is required to compile QEMU"
# g_test_trap_subprocess added in 2.38. Used by some tests.
glib_subprocess=yes
@@ -2723,19 +2730,49 @@ if ! $pkg_config --atleast-version=2.38 glib-2.0; then
fi
##########################################
-# SHA command probe for modules
-if test "$modules" = yes; then
- shacmd_probe="sha1sum sha1 shasum"
- for c in $shacmd_probe; do
- if has $c; then
- shacmd="$c"
- break
- fi
- done
- if test "$shacmd" = ""; then
- error_exit "one of the checksum commands is required to enable modules: $shacmd_probe"
+# SHA command and gmodule-2.0 probe for modules
+# return 0 if probe succeeds
+# $1: true - force mode, exit if probe fail
+# false - optoinal mode, return 1 if probe fail
+module_try_enable()
+{
+ force=$1
+ shacmd_probe="sha1sum sha1 shasum"
+ for c in $shacmd_probe; do
+ if has $c; then
+ shacmd="$c"
+ break
fi
-fi
+ done
+ if test "$shacmd" = ""; then
+ if $force; then
+ error_exit "one of the checksum commands is required to enable modules: $shacmd_probe"
+ else
+ modules="no"
+ return
+ fi
+ fi
+ if ! glib_pkg_config gmodule-2.0; then
+ if $force; then
+ error_exit "glib-$glib_req_ver gmodule-2.0 is required to compile QEMU"
+ else
+ modules="no"
+ return
+ fi
+ fi
+ modules="yes"
+}
+
+case "$modules" in
+ yes)
+ module_try_enable true
+ ;;
+ "")
+ module_try_enable false
+ ;;
+ no)
+ ;;
+esac
##########################################
# pixman support probe
--
1.9.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v3 2/2] .travis.yml: Add "--disable-modules"
2015-01-16 1:54 [Qemu-devel] [PATCH v3 0/2] buildsys: Fix and enable module build Fam Zheng
2015-01-16 1:54 ` [Qemu-devel] [PATCH v3 1/2] configure: Default to " Fam Zheng
@ 2015-01-16 1:54 ` Fam Zheng
2015-01-16 13:24 ` [Qemu-devel] [PATCH v3 0/2] buildsys: Fix and enable module build Stefan Hajnoczi
2 siblings, 0 replies; 4+ messages in thread
From: Fam Zheng @ 2015-01-16 1:54 UTC (permalink / raw)
To: qemu-devel
Cc: Brian Jackson, Peter Maydell, Michael Tokarev, Alexander Graf,
Stefan Hajnoczi, Paolo Bonzini, Alex Bennée
Now we default to "--enable-modules", let's cover the old way in travis.
Signed-off-by: Fam Zheng <famz@redhat.com>
---
.travis.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index ad66e5b..12bf1db 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -98,3 +98,6 @@ matrix:
EXTRA_PKGS="liblttng-ust-dev liburcu-dev"
EXTRA_CONFIG="--enable-trace-backends=ust"
compiler: gcc
+ - env: TARGETS=i386-softmmu,x86_64-softmmu
+ EXTRA_CONFIG="--disable-modules"
+ compiler: gcc
--
1.9.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH v3 0/2] buildsys: Fix and enable module build
2015-01-16 1:54 [Qemu-devel] [PATCH v3 0/2] buildsys: Fix and enable module build Fam Zheng
2015-01-16 1:54 ` [Qemu-devel] [PATCH v3 1/2] configure: Default to " Fam Zheng
2015-01-16 1:54 ` [Qemu-devel] [PATCH v3 2/2] .travis.yml: Add "--disable-modules" Fam Zheng
@ 2015-01-16 13:24 ` Stefan Hajnoczi
2 siblings, 0 replies; 4+ messages in thread
From: Stefan Hajnoczi @ 2015-01-16 13:24 UTC (permalink / raw)
To: Fam Zheng
Cc: Brian Jackson, Peter Maydell, Michael Tokarev, qemu-devel,
Alexander Graf, Paolo Bonzini, Alex Bennée
[-- Attachment #1: Type: text/plain, Size: 484 bytes --]
On Fri, Jan 16, 2015 at 09:54:05AM +0800, Fam Zheng wrote:
> v3: Fix commit message, error message and function name. (Stefan)
>
> Fam Zheng (2):
> configure: Default to enable module build
> .travis.yml: Add "--disable-modules"
>
> .travis.yml | 3 ++
> configure | 95 ++++++++++++++++++++++++++++++++++++++++++-------------------
> 2 files changed, 69 insertions(+), 29 deletions(-)
>
> --
> 1.9.3
>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-01-16 13:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-16 1:54 [Qemu-devel] [PATCH v3 0/2] buildsys: Fix and enable module build Fam Zheng
2015-01-16 1:54 ` [Qemu-devel] [PATCH v3 1/2] configure: Default to " Fam Zheng
2015-01-16 1:54 ` [Qemu-devel] [PATCH v3 2/2] .travis.yml: Add "--disable-modules" Fam Zheng
2015-01-16 13:24 ` [Qemu-devel] [PATCH v3 0/2] buildsys: Fix and enable module build Stefan Hajnoczi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).