diff options
author | Jackie Huang <jackie.huang@windriver.com> | 2016-03-10 14:33:10 +0800 |
---|---|---|
committer | Joe MacDonald <joe_macdonald@mentor.com> | 2016-04-01 12:05:27 -0400 |
commit | c63ef2cb83274a2e48f0d02261f64ed735b2da40 (patch) | |
tree | 219eb8bfcbeafb3142f5085cf8c5f07c8923d53d /meta-networking/classes | |
parent | 341d4d15396181caa1c487f98cd60b20a08dfc65 (diff) | |
download | meta-openembedded-c63ef2cb83274a2e48f0d02261f64ed735b2da40.tar.gz |
waf-samba.bbclass: move to meta-networking
The recipes that are using waf-samba were all
moved to meta-networking, so move the bbclass
and related cross-answers files as well.
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
Diffstat (limited to 'meta-networking/classes')
-rw-r--r-- | meta-networking/classes/waf-samba.bbclass | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/meta-networking/classes/waf-samba.bbclass b/meta-networking/classes/waf-samba.bbclass new file mode 100644 index 000000000..45fbcc342 --- /dev/null +++ b/meta-networking/classes/waf-samba.bbclass | |||
@@ -0,0 +1,95 @@ | |||
1 | # waf is a build system which is used by samba related project. | ||
2 | # Obtain details from https://wiki.samba.org/index.php/Waf | ||
3 | # | ||
4 | inherit qemu pythonnative | ||
5 | |||
6 | DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python" | ||
7 | |||
8 | CONFIGUREOPTS = " --prefix=${prefix} \ | ||
9 | --bindir=${bindir} \ | ||
10 | --sbindir=${sbindir} \ | ||
11 | --libexecdir=${libexecdir} \ | ||
12 | --datadir=${datadir} \ | ||
13 | --sysconfdir=${sysconfdir} \ | ||
14 | --sharedstatedir=${sharedstatedir} \ | ||
15 | --localstatedir=${localstatedir} \ | ||
16 | --libdir=${libdir} \ | ||
17 | --includedir=${includedir} \ | ||
18 | --oldincludedir=${oldincludedir} \ | ||
19 | --infodir=${infodir} \ | ||
20 | --mandir=${mandir} \ | ||
21 | " | ||
22 | |||
23 | # Three methods for waf cross compile: | ||
24 | # 1. answers: | ||
25 | # Only --cross-answers - try the cross-answers file, and if | ||
26 | # there's no corresponding answer, add to the file and mark | ||
27 | # the configure process as unfinished. | ||
28 | # 2. exec: | ||
29 | # Only --cross-execute - get the answer from cross-execute, | ||
30 | # an emulator (qemu) is used to run cross-compiled binaries. | ||
31 | # 3. both: | ||
32 | # (notes: not supported in lower version of some packages, | ||
33 | # please check buildtools/wafsamba/samba_cross.py in the | ||
34 | # package source) | ||
35 | # Try the cross-answers file first, and if there is no | ||
36 | # corresponding answer, use cross-execute to get an answer, | ||
37 | # and add that answer to the file. | ||
38 | # | ||
39 | # The first one is preferred since it may fail with 2 or 3 if | ||
40 | # the target board is not suported by qemu, but we can use 2 or 3 | ||
41 | # to help generate the cross answer when adding new board support. | ||
42 | CROSS_METHOD ?= "answer" | ||
43 | |||
44 | do_configure() { | ||
45 | |||
46 | # Prepare the cross-answers file | ||
47 | CROSS_ANSWERS="${B}/cross-answers-${TARGET_ARCH}.txt" | ||
48 | if [ -e ${CROSS_ANSWERS} ]; then | ||
49 | rm -f ${CROSS_ANSWERS} | ||
50 | fi | ||
51 | echo 'Checking uname machine type: "${TARGET_ARCH}"' >> ${CROSS_ANSWERS} | ||
52 | echo 'Checking uname release type: "${OLDEST_KERNEL}"' >> ${CROSS_ANSWERS} | ||
53 | cat ${WAF_CROSS_ANSWERS_PATH}/cross-answers-${TARGET_ARCH}.txt >> ${CROSS_ANSWERS} | ||
54 | |||
55 | qemu_binary="${@qemu_target_binary(d)}" | ||
56 | if [ "${qemu_binary}" = "qemu-allarch" ]; then | ||
57 | qemu_binary="qemuwrapper" | ||
58 | fi | ||
59 | |||
60 | libdir_qemu="${STAGING_DIR_HOST}/${libdir}" | ||
61 | base_libdir_qemu="${STAGING_DIR_HOST}/${base_libdir}" | ||
62 | |||
63 | CROSS_EXEC="${qemu_binary} \ | ||
64 | ${QEMU_OPTIONS} \ | ||
65 | -L ${STAGING_DIR_HOST} \ | ||
66 | -E LD_LIBRARY_PATH=${libdir_qemu}:${base_libdir_qemu}" | ||
67 | |||
68 | export BUILD_SYS=${BUILD_SYS} | ||
69 | export HOST_SYS=${HOST_SYS} | ||
70 | export BUILD_ARCH=${BUILD_ARCH} | ||
71 | export HOST_ARCH=${HOST_ARCH} | ||
72 | export STAGING_LIBDIR=${STAGING_LIBDIR} | ||
73 | export STAGING_INCDIR=${STAGING_INCDIR} | ||
74 | export PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} | ||
75 | |||
76 | CONFIG_CMD="./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} --cross-compile" | ||
77 | if [ "${CROSS_METHOD}" = "answer" ]; then | ||
78 | ${CONFIG_CMD} --cross-answers="${CROSS_ANSWERS}" | ||
79 | elif [ "${CROSS_METHOD}" = "exec" ]; then | ||
80 | ${CONFIG_CMD} --cross-exec="${CROSS_EXEC}" | ||
81 | elif [ "${CROSS_METHOD}" = "both" ]; then | ||
82 | ${CONFIG_CMD} --cross-answers="${CROSS_ANSWERS}" --cross-exec="${CROSS_EXEC}" | ||
83 | else | ||
84 | echo "ERROR: ${CROSS_METHOD} is not valid for cross-compile!" | ||
85 | exit 1 | ||
86 | fi | ||
87 | } | ||
88 | |||
89 | do_compile () { | ||
90 | python ./buildtools/bin/waf ${PARALLEL_MAKE} | ||
91 | } | ||
92 | |||
93 | do_install() { | ||
94 | oe_runmake install DESTDIR=${D} | ||
95 | } | ||