do_install() has been non-scalable due to different DPDK SW releases
offer increasingly more examples. So, this patch is intended to make
the do_install() simplified by using regular expression technique to
extract out executables name that are built.

Tested this patch with DPDK v1.6.0r2 and v1.7.0 and the software packages
look intact.

Signed-off-by: Ong Boon Leong <[email protected]>
Signed-off-by: Saul Wold <[email protected]>
(cherry picked from commit a43871c39ae462647ebe58679b92cd34c8ae48a6)

Signed-off-by: Ong Boon Leong <[email protected]>
---
 meta-isg/common/recipes-extended/dpdk/dpdk.inc |   83 ++++++++----------------
 1 file changed, 26 insertions(+), 57 deletions(-)

diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk.inc 
b/meta-isg/common/recipes-extended/dpdk/dpdk.inc
index 5e7d52b..910feb4 100644
--- a/meta-isg/common/recipes-extended/dpdk/dpdk.inc
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk.inc
@@ -9,13 +9,13 @@ inherit module
 
 export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net"
 export RTE_SDK = "${S}"
-export RTE_TARGET="${TARGET_ARCH}-ivshmem-${TARGET_OS}app-gcc"
+export RTE_TARGET="${@bb.utils.contains("TUNE_FEATURES", "corei7", 
"x86_64-ivshmem-linuxapp-gcc", "i686-native-linuxapp-gcc", d)}"
+
 export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include"
 export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib"
 export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}"
 export INSTALL_PATH = "${prefix}/dpdk"
 
-
 do_configure () {
        #############################################################
        ### default value for prefix is "usr", unsetting it, so it
@@ -25,10 +25,8 @@ do_configure () {
        unset prefix
 
        make O=$RTE_TARGET T=$RTE_TARGET config
-
 }
 
-
 do_compile () {
        unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS
 
@@ -37,10 +35,8 @@ do_compile () {
                   EXTRA_CFLAGS=" --sysroot=${STAGING_DIR_HOST}" \
                   CROSS="${TARGET_PREFIX}" \
                   prefix=""  LDFLAGS=""  WERROR_FLAGS="-w" V=1
-
 }
 
-
 do_install () {
 
        install -m 0755 -d      ${D}/${INSTALL_PATH} \
@@ -48,70 +44,36 @@ do_install () {
                                ${D}/${INSTALL_PATH}/tools \
                                ${D}/${INSTALL_PATH}/${RTE_TARGET} \
                                ${D}/${INSTALL_PATH}/${RTE_TARGET}/app \
+                               ${D}/${INSTALL_PATH}/${RTE_TARGET}/hostapp \
                                ${D}${includedir} \
                                ${D}${includedir}/arch \
                                ${D}${includedir}/exec-env \
                                ${D}${libdir} \
                                ${D}${MODULE_DIR}
 
-       install -m 0755 ${S}/${RTE_TARGET}/kmod/igb_uio.ko      
${D}${MODULE_DIR}/
-       install -m 0755 ${S}/${RTE_TARGET}/kmod/rte_kni.ko      
${D}${MODULE_DIR}/
+       install -m 0755 ${S}/${RTE_TARGET}/kmod/*.ko    ${D}${MODULE_DIR}/
 
        install -m 640 ${S}/${RTE_TARGET}/lib/*.a               ${D}${libdir}
 
        install -m 640 ${S}/${RTE_TARGET}/.config                       
${D}/${INSTALL_PATH}/${RTE_TARGET}/
        install -m 640 ${S}/${RTE_TARGET}/include/*.h                   
${D}${includedir}/
-       install -m 640 ${S}/${RTE_TARGET}/include/arch/*                
${D}${includedir}/arch/
-       install -m 640 ${S}/${RTE_TARGET}/include/exec-env/*            
${D}${includedir}/exec-env/
+       install -m 640 ${S}/${RTE_TARGET}/include/arch/*.h              
${D}${includedir}/arch/
+       install -m 640 ${S}/${RTE_TARGET}/include/exec-env/*.h          
${D}${includedir}/exec-env/
        install -m 0755 ${S}/tools/*.py                                 
${D}/${INSTALL_PATH}/tools/
 
+       # Install applications
+       install -m 0755 ${S}/${RTE_TARGET}/app/*        
${D}/${INSTALL_PATH}/${RTE_TARGET}/app/
+       install -m 0755 ${S}/${RTE_TARGET}/hostapp/*    
${D}/${INSTALL_PATH}/${RTE_TARGET}/hostapp/
 
-       #Install test applications
-       install -m 0755 ${S}/${RTE_TARGET}/app/test     
${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-       install -m 0755 ${S}/${RTE_TARGET}/app/testpmd  
${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-       install -m 0755 ${S}/${RTE_TARGET}/app/dump_cfg 
${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-       install -m 0755 ${S}/${RTE_TARGET}/app/cmdline_test     
${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-
-
-       # Install example applications
-       # It is expected that user of this include file should define 
EXAMPLES_BUILD_DIR
-       for app in ${S}/examples/*
+       # Install examples
+       for dirname in ${S}/examples/*
        do
-               case `basename ${app}` in
-               "dpdk_qat" | "vhost" | "vhost_xen" | "Makefile" ) continue
-               ;;
-               "l2fwd-ivshmem")
-               install -m 0755 ${app}/guest/${EXAMPLES_BUILD_DIR}/app/guest    
        ${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               install -m 0755 ${app}/host/${EXAMPLES_BUILD_DIR}/app/host      
        ${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               continue
-               ;;
-               "multi_process")
-               install -m 0755 
${app}/client_server_mp/mp_client/${EXAMPLES_BUILD_DIR}/app/mp_client   
${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               install -m 0755 
${app}/client_server_mp/mp_server/${EXAMPLES_BUILD_DIR}/app/mp_server   
${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               install -m 0755 
${app}/simple_mp/${EXAMPLES_BUILD_DIR}/app/simple_mp                    
${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               install -m 0755 
${app}/symmetric_mp/${EXAMPLES_BUILD_DIR}/app/symmetric_mp              
${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               continue
-               ;;
-               "netmap_compat")
-               install -m 0755 ${app}/bridge/${EXAMPLES_BUILD_DIR}/app/bridge  
                ${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               continue
-               ;;
-               "quota_watermark")
-               install -m 0755 ${app}/qw/${EXAMPLES_BUILD_DIR}/app/qw          
        ${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               install -m 0755 ${app}/qwctl/${EXAMPLES_BUILD_DIR}/app/qwctl    
        ${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               continue
-               ;;
-               "vmdq")
-               install -m 0755 ${app}/${EXAMPLES_BUILD_DIR}/app/`basename 
${app}`_app          ${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               continue
-               ;;
-               "vmdq_dcb")
-               install -m 0755 ${app}/${EXAMPLES_BUILD_DIR}/app/`basename 
${app}`_app          ${D}/${INSTALL_PATH}/${RTE_TARGET}/app
-               continue
-               ;;
-               esac
-
-               install -m 0755 ${app}/${EXAMPLES_BUILD_DIR}/app/`basename 
${app}`              ${D}/${INSTALL_PATH}/${RTE_TARGET}/app
+               install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename 
${dirname}`
+
+               for appname in `find ${dirname} -regex 
".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"`
+               do
+                       install -m 755 ${appname}       
${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/
+               done
        done
 }
 
@@ -120,6 +82,9 @@ PACKAGES += "${PN}-examples"
 FILES_${PN}-dbg += " \
        ${INSTALL_PATH}/.debug \
        ${INSTALL_PATH}/${RTE_TARGET}/app/.debug \
+       ${INSTALL_PATH}/${RTE_TARGET}/hostapp/.debug \
+       ${INSTALL_PATH}/${RTE_TARGET}/app/*.map \
+       ${INSTALL_PATH}/examples/*/.debug \
        "
 
 FILES_${PN}-doc += "\
@@ -133,6 +98,10 @@ FILES_${PN}-dev += " \
        ${includedir}/exec-env \
        "
 
-FILES_${PN} +=  " ${INSTALL_PATH}/tools/ "
+FILES_${PN} += " ${INSTALL_PATH}/tools/ "
 
-FILES_${PN}-examples += " ${INSTALL_PATH}/${RTE_TARGET}/app/ "
+FILES_${PN}-examples += " \
+       ${INSTALL_PATH}/${RTE_TARGET}/app/* \
+       ${INSTALL_PATH}/${RTE_TARGET}/hostapp/* \
+       ${INSTALL_PATH}/examples/* \
+       "
-- 
1.7.9.5

-- 
_______________________________________________
meta-intel mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/meta-intel

Reply via email to