qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [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).