diff options
-rw-r--r-- | meta/classes/sanity.bbclass | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass index 1c96ad6d83..58f424c6e8 100644 --- a/meta/classes/sanity.bbclass +++ b/meta/classes/sanity.bbclass | |||
@@ -49,29 +49,31 @@ def check_sanity(e): | |||
49 | print "Foo %s" % minversion | 49 | print "Foo %s" % minversion |
50 | return | 50 | return |
51 | 51 | ||
52 | messages = "" | ||
53 | |||
52 | if (LooseVersion(__version__) < LooseVersion(minversion)): | 54 | if (LooseVersion(__version__) < LooseVersion(minversion)): |
53 | raise_sanity_error('Bitbake version %s is required and version %s was found' % (minversion, __version__)) | 55 | messages = messages + 'Bitbake version %s is required and version %s was found\n' % (minversion, __version__) |
54 | 56 | ||
55 | # Check TARGET_ARCH is set | 57 | # Check TARGET_ARCH is set |
56 | if data.getVar('TARGET_ARCH', e.data, True) == 'INVALID': | 58 | if data.getVar('TARGET_ARCH', e.data, True) == 'INVALID': |
57 | raise_sanity_error('Please set TARGET_ARCH directly, or choose a MACHINE or DISTRO that does so.') | 59 | messages = messages + 'Please set TARGET_ARCH directly, or choose a MACHINE or DISTRO that does so.\n' |
58 | 60 | ||
59 | # Check TARGET_OS is set | 61 | # Check TARGET_OS is set |
60 | if data.getVar('TARGET_OS', e.data, True) == 'INVALID': | 62 | if data.getVar('TARGET_OS', e.data, True) == 'INVALID': |
61 | raise_sanity_error('Please set TARGET_OS directly, or choose a MACHINE or DISTRO that does so.') | 63 | messages = messages + 'Please set TARGET_OS directly, or choose a MACHINE or DISTRO that does so.\n' |
62 | 64 | ||
63 | # Check user doesn't have ASSUME_PROVIDED = instead of += in local.conf | 65 | # Check user doesn't have ASSUME_PROVIDED = instead of += in local.conf |
64 | if "diffstat-native" not in data.getVar('ASSUME_PROVIDED', e.data, True).split(): | 66 | if "diffstat-native" not in data.getVar('ASSUME_PROVIDED', e.data, True).split(): |
65 | raise_sanity_error('Please use ASSUME_PROVIDED +=, not ASSUME_PROVIDED = in your local.conf') | 67 | messages = messages + 'Please use ASSUME_PROVIDED +=, not ASSUME_PROVIDED = in your local.conf\n' |
66 | 68 | ||
67 | # Check that the MACHINE is valid | 69 | # Check that the MACHINE is valid |
68 | if not check_conf_exists("conf/machine/${MACHINE}.conf", e.data): | 70 | if not check_conf_exists("conf/machine/${MACHINE}.conf", e.data): |
69 | raise_sanity_error('Please set a valid MACHINE in your local.conf') | 71 | messages = messages + 'Please set a valid MACHINE in your local.conf\n' |
70 | 72 | ||
71 | # Check that the DISTRO is valid | 73 | # Check that the DISTRO is valid |
72 | # need to take into account DISTRO renaming DISTRO | 74 | # need to take into account DISTRO renaming DISTRO |
73 | if not ( check_conf_exists("conf/distro/${DISTRO}.conf", e.data) or check_conf_exists("conf/distro/include/${DISTRO}.inc", e.data) ): | 75 | if not ( check_conf_exists("conf/distro/${DISTRO}.conf", e.data) or check_conf_exists("conf/distro/include/${DISTRO}.inc", e.data) ): |
74 | raise_sanity_error("DISTRO '%s' not found. Please set a valid DISTRO in your local.conf" % data.getVar("DISTRO", e.data, True )) | 76 | messages = messages + "DISTRO '%s' not found. Please set a valid DISTRO in your local.conf\n" % data.getVar("DISTRO", e.data, True ) |
75 | 77 | ||
76 | missing = "" | 78 | missing = "" |
77 | 79 | ||
@@ -84,23 +86,11 @@ def check_sanity(e): | |||
84 | if not check_app_exists('${BUILD_PREFIX}g++', e.data): | 86 | if not check_app_exists('${BUILD_PREFIX}g++', e.data): |
85 | missing = missing + "C++ Compiler," | 87 | missing = missing + "C++ Compiler," |
86 | 88 | ||
87 | if not check_app_exists('gawk', e.data): | 89 | required_utilities = "patch diffstat texi2html cvs svn bzip2 tar gzip gawk" |
88 | missing = missing + "GNU awk (gawk)," | ||
89 | |||
90 | if not check_app_exists('patch', e.data): | ||
91 | missing = missing + "GNU patch," | ||
92 | |||
93 | if not check_app_exists('diffstat', e.data): | ||
94 | missing = missing + "diffstat," | ||
95 | 90 | ||
96 | if not check_app_exists('texi2html', e.data): | 91 | for util in required_utilities.split(): |
97 | missing = missing + "texi2html," | 92 | if not check_app_exists( util, e.data ): |
98 | 93 | missing = missing + "%s," % util | |
99 | if not check_app_exists('cvs', e.data): | ||
100 | missing = missing + "cvs," | ||
101 | |||
102 | if not check_app_exists('svn', e.data): | ||
103 | missing = missing + "svn," | ||
104 | 94 | ||
105 | # qemu-native needs gcc 3.x | 95 | # qemu-native needs gcc 3.x |
106 | 96 | ||
@@ -112,9 +102,12 @@ def check_sanity(e): | |||
112 | # FIXME: We also need to check for libsdl-dev and zlib-dev | 102 | # FIXME: We also need to check for libsdl-dev and zlib-dev |
113 | # for qemu-native... | 103 | # for qemu-native... |
114 | 104 | ||
115 | if not missing == "": | 105 | if missing != "": |
116 | missing = missing.rstrip(',') | 106 | missing = missing.rstrip(',') |
117 | raise_sanity_error("Missing Dependencies: %s" % missing) | 107 | messages = messages + "Please install following missing utilities: %s\n" % missing |
108 | |||
109 | if messages != "": | ||
110 | raise_sanity_error(messages) | ||
118 | 111 | ||
119 | oes_bb_conf = data.getVar( 'OES_BITBAKE_CONF', e.data, True ) | 112 | oes_bb_conf = data.getVar( 'OES_BITBAKE_CONF', e.data, True ) |
120 | if not oes_bb_conf: | 113 | if not oes_bb_conf: |