-
Notifications
You must be signed in to change notification settings - Fork 221
Yocto recipe for building ola on any embedded device supported. #1409
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| SUMMARY = "Open Lighting Architecture - OLA" | ||
| DESCRIPTION = "The Open Lighting Architecture (OLA) is part of the Open Lighting Project and provides applications with a mechanism to send and receive DMX512 & RDM commands using hardware devices and DMX over IP protocols. This enables software lighting controllers to communicate with hardware either via Ethernet or traditional DMX512 networks. \ | ||
| OLA can also convert DMX512 data sent using DMX over IP protocols from one format to another, allowing devices from different manufacturers to interact with one another. For example a Strand Lighting Console using ShowNet can send DMX512 to an Enttec EtherGate. When combined with a physical DMX interface such as the DMX USB Pro, OLA can send and receive data from wired DMX512 networks." | ||
|
|
||
| LICENSE = "GPLv2 & LGPLv2.1" | ||
| LIC_FILES_CHKSUM = "file://LICENCE;md5=7aa5f01584d845ad733abfa9f5cad2a1" | ||
|
|
||
| #DEPENDS_class-nativesdk = "bison libusb1 protobuf protobuf-native pkgconfig-native ossp-uuid ola-native " | ||
| DEPENDS_class-target = "bison libmicrohttpd avahi libusb1 libftdi cppunit protobuf protobuf-native ola-native" | ||
| DEPENDS_class-native = "protobuf bison-native flex-native pkgconfig-native ossp-uuid-native" | ||
|
|
||
| PV = "0.10.6" | ||
|
|
||
| # Esta revision de git tiene un parche para protobuf, la tag de 0.10.6 no compila. | ||
|
||
| SRCREV = "00dc86a48ec4c528cec90166435b440f283a9c86" | ||
| SRC_URI = "git://github.com/OpenLightingProject/ola.git;protocol=https" | ||
|
|
||
| S = "${WORKDIR}/git" | ||
| B = "${WORKDIR}/git" | ||
|
|
||
| inherit autotools-brokensep relative_symlinks | ||
| # autotools-brokensep | ||
| # forces in-source building (ola has bugs for out-of-tree builds). | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think/hope we've fixed this too now... |
||
| # See: https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#migration-1.7-autotools-class-changes | ||
| # | ||
| # relative_symlinks | ||
| # Absolute symbolic links (symlinks) within staged files are no longer permitted and now trigger an error. | ||
| # inherit relative_symlinks within the recipe to turn those absolute symlinks into relative | ||
| # https://www.yoctoproject.org/docs/2.4/ref-manual/ref-manual.html#migration-2.3-absolute-symlinks | ||
|
|
||
| #EXTRA_OECONF = " --disable-unittests --disable-rdm-tests --disable-python-libs --disable-java-libs --disable-all-plugins" | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this line redundant/part of testing? |
||
| EXTRA_OECONF = " --disable-unittests --disable-rdm-tests --disable-java-libs " | ||
|
|
||
| # nativesdk is for the toolchain, only libola and ola_common are required, all plugins are dynamic | ||
| EXTRA_OECONF_append_class-nativesdk = " --with-ola-protoc-plugin=${STAGING_BINDIR_NATIVE}/ola_protoc_plugin \ | ||
| --disable-all-plugins --disable-e133 --disable-python-libs --disable-examples --disable-http" | ||
|
|
||
|
|
||
| # native is for the strange ola_protoc_plugin required at build time | ||
| EXTRA_OECONF_append_class-native = " --disable-all-plugins --disable-e133 --disable-python-libs --disable-examples --disable-http" | ||
|
|
||
| # target are the real config options | ||
| EXTRA_OECONF_append_class-target = " --with-ola-protoc-plugin=${STAGING_BINDIR_NATIVE}/ola_protoc_plugin --disable-python-libs\ | ||
| --enable-http --enable-dummy --enable-gpio --enable-opendmx --enable-e131 \ | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You don't explicitly need to enable all the options. Although it will ensure configure fails if some of them aren't available for some reason.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In yocto anyone would be able to disable them, but disabling them will make ola build transparently but be useless as will have no plugins.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Okay, if we need to explicitly enable all plugins in here we ought to add a note to ensure we add new ones here when they're added to https://github.com/OpenLightingProject/ola/blob/d34d4f13d954894e76bf024743e6519696813c29/configure.ac#L892-915 |
||
| --enable-opendmx --enable-usbdmx --enable-usbpro --enable-spi --enable-spidmx \ | ||
| --enable-artnet --enable-openpixelcontrol --enable-renard --enable-kinet \ | ||
| --enable-nanoleaf --enable-karate --enable-espnet --enable-milinst --enable-pathport \ | ||
| --enable-sandnet --enable-shownet --enable-stageprofi \ | ||
| --enable-e133 \ | ||
| --enable-examples " | ||
|
|
||
| # -fvisibility-inlines-hidden breaks stuff | ||
| CXXFLAGS = "${CFLAGS}" | ||
|
|
||
| # The code is not Werror safe | ||
| do_configure_prepend() { | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You mean as an argument for ./configure ?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Correct @desert . But please either comment here, or pastebin the errors and we can try adn fix them properly. |
||
| sed -i -e 's:-Werror::g' ${S}/configure.ac | ||
| sed -i -e 's:-Werror::g' ${S}/Makefile.am | ||
| } | ||
|
|
||
| do_install_append_class-native() { | ||
| install -d ${D}${bindir} | ||
| install -m 0755 ${B}/protoc/ola_protoc_plugin ${D}${bindir} | ||
| } | ||
|
|
||
| FILES_${PN}-dbg += "${libdir}/*/.debug" | ||
| FILES_${PN} += "${datadir}/olad ${libdir}/olad/*.so.*" | ||
| FILES_${PN}-staticdev += "${libdir}/olad/*.a" | ||
| FILES_${PN}-dev += "${libdir}/olad/*.la ${libdir}/olad/*.so" | ||
|
|
||
| RDEPENDS_${PN}-dev = "" | ||
|
|
||
| BBCLASSEXTEND = "native nativesdk" | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this relevant still? Would this be for a native build?
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
UPDATED: Read below
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That line is optional for when you need an sdk
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should it be uncommented though then, there seems to be a mix of both referring to nativesdk throughout the file.