title: how to add a third party library as a package in Yocto build
body: <p>I have a library that is not famous and there is no package available for this library  <a href="https://github.com/dailab/libsml" rel="nofollow noreferrer">https://github.com/dailab/libsml</a> normally I install this library on my device by doing <code>make install</code><br>
  How can I add this library as a package in my distribution of Linux. Just like i can add <code>python</code> or any other recipe in my <code>local.conf</code></p>
  
  <p>My local.conf looks like this</p>
  
  <pre><code>MACHINE ?= "phyboard-regor-am335x-1"
  
  DISTRO ?= "yogurt"
  
  # The following line disables the autostart of the phytec-qtdemo by
  # default, but you can start the demo anytime using
  #  $ systemctl start phytec-qtdemo.service
  #SYSTEMD_AUTO_ENABLE_pn-phytec-qtdemo = "disable"
  
  # That are the default values of bitbake.  Adapt these to your workspace and
  # host preferences.
  #DL_DIR = "${TOPDIR}/downloads"
  #SSTATE_DIR = "${TOPDIR}/sstate-cache"
  
  # License Handling
  #  - Uncomment for i.MX6 proprietary GPU libraries
  #LICENSE_FLAGS_WHITELIST += "license-nxp_v14-june-2016_imx-gpu-viv"
  #  - Uncomment for Freescale i.MX6 legacy VPU firmware blobs
  #LICENSE_FLAGS_WHITELIST += "license-freescale_v6-february-2015_firmware-imx"
  
  # You can disable and enable FSTYPES as you wish. e.g. 'ext4'.
  # This is ordering dependend. IMAGE_FSTYPES += "tar.gz" IMAGE_FSTYPES_append_mx6 = " sdcard ubifs" IMAGE_FSTYPES_append_ti33x
  = " sdcard ubifs" IMAGE_FSTYPES_append_rk3288 = " sdcard"
  #IMAGE_FSTYPES_append_ti33x = " emmc" DEPLOY_DIR = "${TOPDIR}/deploy"
  
  # Select configuration UI for linux and barebox recipe. The openembedded
  # default is 'menuconfig', 'nconfig' has more features.
  #KCONFIG_CONFIG_COMMAND = "menuconfig" KCONFIG_CONFIG_COMMAND = "nconfig"
  
  # Turn on debugging options of the kernel
  # This is currently only supported for the TI kernel v4.4 DEBUG_BUILD_pn-linux-ti = "1"
  
  # The default package class of the distro yogurt is 'package_ipk'. The first
  # value is used as the package manager to build the image and sdk. To build
  # also tar packages use
  #PACKAGE_CLASSES = "package_ipk package_tar"
  
  # Variable IMAGE_ROOTFS_EXTRA_SPACE from poky/meta/conf/documentation.conf:
  #   Defines additional free disk space created in the image in Kbytes. By
  #   default, this variable is set to '0'.
  # This example line adds an additional 512 MiB of free space to the root
  # filesystem:
  #IMAGE_ROOTFS_EXTRA_SPACE = "524288"
  
  # See http://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html#ref-features-image
  #   "Through these variables, you can add several different predefined
  #    packages such as development utilities or packages with debug information
  #    needed to investigate application problems or profile applications EXTRA_IMAGE_FEATURES = ""
  # - "Makes an image suitable for development (e.g. allows root logins without
  #    passwords and enables post-installation logging)" EXTRA_IMAGE_FEATURES += "debug-tweaks"
  # - "Installs debug symbol packages for all packages installed in a given
  #    image."
  #EXTRA_IMAGE_FEATURES += "dbg-pkgs"
  # - "Installs debugging tools such as strace and gdb."
  #EXTRA_IMAGE_FEATURES += "tools-debug"
  #python-netserver for python cgi IMAGE_INSTALL_append = "mc nano openvpn apache2 dhcp-server lora-gateway lora-pkt-fwd spitools python avro-c python-kafka ntp python-netserver iptables"
  
  #SDKMACHINE ?= "x86_64"
  
  OE_TERMINAL = "auto" PATCHRESOLVE = "noop" BB_DISKMON_DIRS = "\
      STOPTASKS,${TMPDIR},1G,100K \
      STOPTASKS,${DL_DIR},1G,100K \
      STOPTASKS,${SSTATE_DIR},1G,100K \
      ABORT,${TMPDIR},100M,1K \
      ABORT,${DL_DIR},100M,1K \
      ABORT,${SSTATE_DIR},100M,1K"
  
  CONF_VERSION = "1"
  </code></pre>
  
  <p>And my bblayers.conf looks like this:</p>
  
  <pre><code># POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
  # changes incompatibly
  POKY_BBLAYERS_CONF_VERSION = "2"
  
  BBPATH = "${TOPDIR}"
  BBFILES ?= ""
  
  OEROOT := "/home/enilyser/sources/poky"
  BBLAYERS  ?= " \
    ${OEROOT}/meta \
    ${OEROOT}/meta-poky \
    ${OEROOT}/../meta-phytec \
    ${OEROOT}/../meta-yogurt \
    ${OEROOT}/../meta-cloud-services-master/meta-openstack \
    ${OEROOT}/../meta-openembedded/meta-oe \
    ${OEROOT}/../meta-openembedded/meta-networking \
    ${OEROOT}/../meta-openembedded/meta-python \
    ${OEROOT}/../meta-openembedded/meta-multimedia \
    ${OEROOT}/../meta-qt5 \
    ${OEROOT}/../meta-openembedded/meta-ruby \
    ${OEROOT}/../meta-openembedded/meta-webserver \
    ${OEROOT}/../meta-lora-net-master \
    ${OEROOT}/../meta-lorawan-master \
    "
  </code></pre>