WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 1 of 2 RESEND] tools/check: check for headers and lib

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH 1 of 2 RESEND] tools/check: check for headers and libraries in user defined folders
From: Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>
Date: Thu, 03 Nov 2011 10:41:33 +0100
Delivery-date: Thu, 03 Nov 2011 02:46:03 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:content-type:mime-version:content-transfer-encoding:subject :x-mercurial-node:message-id:in-reply-to:references:user-agent:date :from:to; bh=JGEpWV6xXTdL/l4vx7VDseBbmBb6fgssX7E/grQAJg0=; b=gGDtzkUXWYSxBR8bQggzyTCRzTDnhpHujvIdf/N/pjHSjibCCquhj106cUyYysLDo8 qr7IS2Ulsls9HtV7aPtF+e8IxplajcIlPjpgFn/gTTOUaGFRNqVxISAuCtpZuLD5GyNa 7AlPdAo0W281cs9WQZbFvbc0x1F8l4S+N+pXs=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <patchbomb.1320313292@xxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <patchbomb.1320313292@xxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mercurial-patchbomb/1.9.2
# HG changeset patch
# User Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>
# Date 1320310734 -3600
# Node ID 38cd302b40b49194b6addf871383b17661563ab3
# Parent  29f463265cd30f16d0c6049ba6da78363fd5e5be
tools/check: check for headers and libraries in user defined folders.

Parse EXTRA_INCLUDES, EXTRA_LIB, PREPEND_INCLUDES, PREPEND_LIB, 
APPEND_INCLUDES, APPEND_LIB during checks, to search for required files.

Signed-off-by: Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>

diff -r 29f463265cd3 -r 38cd302b40b4 Config.mk
--- a/Config.mk Thu Nov 03 09:58:54 2011 +0100
+++ b/Config.mk Thu Nov 03 09:58:54 2011 +0100
@@ -176,6 +176,9 @@ CFLAGS += $(foreach i, $(PREPEND_INCLUDE
 APPEND_LDFLAGS += $(foreach i, $(APPEND_LIB), -L$(i))
 APPEND_CFLAGS += $(foreach i, $(APPEND_INCLUDES), -I$(i))
 
+CHECK_LIB = $(EXTRA_LIB) $(PREPEND_LIB) $(APPEND_LIB)
+CHECK_INCLUDES = $(EXTRA_INCLUDES) $(PREPEND_INCLUDES) $(APPEND_INCLUDES)
+
 EMBEDDED_EXTRA_CFLAGS := -nopie -fno-stack-protector -fno-stack-protector-all
 EMBEDDED_EXTRA_CFLAGS += -fno-exceptions
 
diff -r 29f463265cd3 -r 38cd302b40b4 tools/check/Makefile
--- a/tools/check/Makefile      Thu Nov 03 09:58:54 2011 +0100
+++ b/tools/check/Makefile      Thu Nov 03 09:58:54 2011 +0100
@@ -1,18 +1,24 @@
 XEN_ROOT = $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
+# Export the necessary environment variables for the tests
+export PYTHON
+export LIBXENAPI_BINDINGS
+export CHECK_INCLUDES
+export CHECK_LIB
+
 .PHONY: all install
 all install: check-build
 
 # Check this machine is OK for building on.
 .PHONY: check-build
 check-build:
-       PYTHON=$(PYTHON) LIBXENAPI_BINDINGS=$(LIBXENAPI_BINDINGS) ./chk build
+       ./chk build
 
 # Check this machine is OK for installing on.
 .PHONY: check-install
 check-install:
-       PYTHON=$(PYTHON) LIBXENAPI_BINDINGS=$(LIBXENAPI_BINDINGS) ./chk install
+       ./chk install
 
 .PHONY: clean
 clean:
diff -r 29f463265cd3 -r 38cd302b40b4 tools/check/funcs.sh
--- a/tools/check/funcs.sh      Thu Nov 03 09:58:54 2011 +0100
+++ b/tools/check/funcs.sh      Thu Nov 03 09:58:54 2011 +0100
@@ -25,15 +25,23 @@ has_or_fail() {
 }
 
 has_header() {
+       check_sys_root || return 1
+
        case $1 in
                /*) ;;
-               *) set -- "/usr/include/$1" ;;
+               *)
+               if [ -r "$CROSS_SYS_ROOT/usr/include/$1" ]; then
+                       return 0
+               fi
+               for path in ${CHECK_INCLUDES}; do
+                       if [ -r "$CROSS_SYS_ROOT${path}/$1" ]; then
+                               return 0
+                       fi
+               done
+               ;;
        esac
 
-       check_sys_root || return 1
-
-       test -r "$CROSS_SYS_ROOT$1"
-       return $?
+       return 1
 }
 
 has_lib() {
@@ -42,6 +50,7 @@ has_lib() {
        # subshell to prevent pollution of caller's environment
        (
        PATH=/sbin:$PATH        # for ldconfig
+       LIBRARIES="$CHECK_LIB /usr/lib"
 
        # This relatively common in a sys-root; libs are installed but
        # ldconfig hasn't run there, so ldconfig -p won't work.
@@ -49,8 +58,15 @@ has_lib() {
            echo "Please run ldconfig -r \"$CROSS_SYS_ROOT\" to generate 
ld.so.cache"
            # fall through; ldconfig test below should fail
        fi
-       ldconfig -p ${CROSS_SYS_ROOT+-r "$CROSS_SYS_ROOT"} | grep -Fq "$1"
-       return $?
+       if [ "${OS}" = "Linux" ]; then
+               ldconfig -p ${CROSS_SYS_ROOT+-r "$CROSS_SYS_ROOT"} | grep -Fq 
"$1"
+               return $?
+       fi
+       if [ "${OS}" = "NetBSD" ]; then
+               ls -1 ${LIBRARIES} | grep -Fq "$1"
+               return $?
+       fi
+       return 1
        )
 }
 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel