Рецепт Yocto для сборки libmodbus

Yocto - невероятно сильный инструмент для сборки пакетов для встроенного linux.
Конечно-же для работы с ним необходимо потратить время на его освоение.
Каждая пакет в экосистеме Yocto собирается при помощи рецептов. Рецепт имеет расширение bb.
Система сборки очень развита и может автоматически собрать пакеты созданные практически всеми распространенными системами сборки.
Рассмотрим рецепт для сборки libmodbus - библиотеки протокола modbus.

SUMMARY = "A Modbus library"
DESCRIPTION = "libmodbus is a C library designed to provide a fast and robust \
implementation of the Modbus protocol. It runs on Linux, Mac OS X, FreeBSD, \
QNX and Windows."
HOMEPAGE = "http://www.libmodbus.org/"
SECTION = "libs"

LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c"

SRCREV = "b4763407c549f19dc9889bd54b0e7bc0eef62524"
SRC_URI = "git://github.com/stephane/libmodbus.git"

inherit autotools pkgconfig

S = "${WORKDIR}/git"

Сперва в рецепте описывается имя, описание и лицензия пакета. Все это можно использовать для последующего поиска пакета в базе данных вашего yocto.
Для указания лицензии необходимо указать файл и хеш сумму файла для контроля "редактирования" лицензии.
Рассмотрим как собрать проект из git репозитория. Yocto умеет вытаскивать исходники всеми известными мне способами (выкачивать архив, git, hg и пр.).

Необходимо указать адрес git репозитория и хеш ревизии.

SRCREV = "b4763407c549f19dc9889bd54b0e7bc0eef62524"
SRC_URI = "git://github.com/stephane/libmodbus.git"

Для корректной сборки необходимо указать путь к выкачанным исходникам:

S = "${WORKDIR}/git"

libmodbus собирается так:

./autogen.sh
./configure
make
make install

Это стандартная процедура для большинства линукс пакетов. Нет смысла постоянно писать эти команды в рецепте.
Для сборки таких программ в yocto нужно унаследовать рецепт:

inherit autotools pkgconfig

Теперь можно запускать сборку.
Yocto теперь знает, что ему нужно сделать для сборки. Он выкачает исходники библиотеки, скомпилирует и создаст rpm пакет, который можно будет установить в собираемый rootfs.

Иногда нужно собрать "не стандартным" образом. Но об этом в следующий раз.

Просмотров:   1301

Комментарии

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Введи эти символы. Ато роботы одолели!