diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2016-08-17 15:04:38 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2016-08-22 16:43:32 +0000 |
commit | b48b7b4109868a8c0ddda090992e936e821c7ea6 (patch) | |
tree | 696be8ea782f2548c0f63bb0188f4c8d3eeed681 /import-layers/meta-openembedded/meta-networking/classes | |
parent | d849ec78de728ef9a2d383b92ccfeabf40f8f1d0 (diff) | |
download | talos-openbmc-b48b7b4109868a8c0ddda090992e936e821c7ea6.tar.gz talos-openbmc-b48b7b4109868a8c0ddda090992e936e821c7ea6.zip |
Squashed 'import-layers/meta-openembedded/' content from commit 247b126
Change-Id: I40827e9ce5fba63f1cca2a0be44976ae8383b4c0
git-subtree-dir: import-layers/meta-openembedded
git-subtree-split: 247b1267bbe95719cd4877d2d3cfbaf2a2f4865a
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'import-layers/meta-openembedded/meta-networking/classes')
-rw-r--r-- | import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass b/import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass new file mode 100644 index 000000000..45fbcc342 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass @@ -0,0 +1,95 @@ +# waf is a build system which is used by samba related project. +# Obtain details from https://wiki.samba.org/index.php/Waf +# +inherit qemu pythonnative + +DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python" + +CONFIGUREOPTS = " --prefix=${prefix} \ + --bindir=${bindir} \ + --sbindir=${sbindir} \ + --libexecdir=${libexecdir} \ + --datadir=${datadir} \ + --sysconfdir=${sysconfdir} \ + --sharedstatedir=${sharedstatedir} \ + --localstatedir=${localstatedir} \ + --libdir=${libdir} \ + --includedir=${includedir} \ + --oldincludedir=${oldincludedir} \ + --infodir=${infodir} \ + --mandir=${mandir} \ + " + +# Three methods for waf cross compile: +# 1. answers: +# Only --cross-answers - try the cross-answers file, and if +# there's no corresponding answer, add to the file and mark +# the configure process as unfinished. +# 2. exec: +# Only --cross-execute - get the answer from cross-execute, +# an emulator (qemu) is used to run cross-compiled binaries. +# 3. both: +# (notes: not supported in lower version of some packages, +# please check buildtools/wafsamba/samba_cross.py in the +# package source) +# Try the cross-answers file first, and if there is no +# corresponding answer, use cross-execute to get an answer, +# and add that answer to the file. +# +# The first one is preferred since it may fail with 2 or 3 if +# the target board is not suported by qemu, but we can use 2 or 3 +# to help generate the cross answer when adding new board support. +CROSS_METHOD ?= "answer" + +do_configure() { + + # Prepare the cross-answers file + CROSS_ANSWERS="${B}/cross-answers-${TARGET_ARCH}.txt" + if [ -e ${CROSS_ANSWERS} ]; then + rm -f ${CROSS_ANSWERS} + fi + echo 'Checking uname machine type: "${TARGET_ARCH}"' >> ${CROSS_ANSWERS} + echo 'Checking uname release type: "${OLDEST_KERNEL}"' >> ${CROSS_ANSWERS} + cat ${WAF_CROSS_ANSWERS_PATH}/cross-answers-${TARGET_ARCH}.txt >> ${CROSS_ANSWERS} + + qemu_binary="${@qemu_target_binary(d)}" + if [ "${qemu_binary}" = "qemu-allarch" ]; then + qemu_binary="qemuwrapper" + fi + + libdir_qemu="${STAGING_DIR_HOST}/${libdir}" + base_libdir_qemu="${STAGING_DIR_HOST}/${base_libdir}" + + CROSS_EXEC="${qemu_binary} \ + ${QEMU_OPTIONS} \ + -L ${STAGING_DIR_HOST} \ + -E LD_LIBRARY_PATH=${libdir_qemu}:${base_libdir_qemu}" + + export BUILD_SYS=${BUILD_SYS} + export HOST_SYS=${HOST_SYS} + export BUILD_ARCH=${BUILD_ARCH} + export HOST_ARCH=${HOST_ARCH} + export STAGING_LIBDIR=${STAGING_LIBDIR} + export STAGING_INCDIR=${STAGING_INCDIR} + export PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} + + CONFIG_CMD="./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} --cross-compile" + if [ "${CROSS_METHOD}" = "answer" ]; then + ${CONFIG_CMD} --cross-answers="${CROSS_ANSWERS}" + elif [ "${CROSS_METHOD}" = "exec" ]; then + ${CONFIG_CMD} --cross-exec="${CROSS_EXEC}" + elif [ "${CROSS_METHOD}" = "both" ]; then + ${CONFIG_CMD} --cross-answers="${CROSS_ANSWERS}" --cross-exec="${CROSS_EXEC}" + else + echo "ERROR: ${CROSS_METHOD} is not valid for cross-compile!" + exit 1 + fi +} + +do_compile () { + python ./buildtools/bin/waf ${PARALLEL_MAKE} +} + +do_install() { + oe_runmake install DESTDIR=${D} +} |