kumquat-buildroot/package/ola/ola.mk

223 lines
5.3 KiB
Makefile
Raw Normal View History

package/ola: reintroduce package at version 0.10.8 The ola package (Open Lighting Architecture) version 0.10.2 was removed in commit e692e1f2b2285c18057e2c70cc1d9d0cfdb15d5e due to an incompatibility with the protobuf version 3.2.0 present in Buildroot at that time. ola was fixed to support newer protobuf version in: https://github.com/OpenLightingProject/ola/pull/1630 This commit reintroduce this package at version 0.10.8. For changelogs since its removal at 0.10.2, see: - https://github.com/OpenLightingProject/ola/releases/tag/0.10.3 - https://github.com/OpenLightingProject/ola/releases/tag/0.10.4 - https://github.com/OpenLightingProject/ola/releases/tag/0.10.5 - https://github.com/OpenLightingProject/ola/releases/tag/0.10.6 - https://github.com/OpenLightingProject/ola/releases/tag/0.10.7 - https://github.com/OpenLightingProject/ola/releases/tag/0.10.8 This commit is based on the previously removed ola package, with the following rework: - Remove the dependency on BR2_HOST_GCC_AT_LEAST_4_5 as host gcc is now guaranteed to be at least 4.8. - Update target gcc dependency to >= 4.8 to reflect protobuf requirement. - Remove the BR2_PACKAGE_OLA_SLP option, which was removed in ola 0.9.4. - Change the "DMX4Linux" plugin option name to "Open DMX" to better reflect the ola option (DMX4Linux is a legacy plugin for 2.6 Kernels). - Update Python support to version 3.x only - Remove patches, as they are no longer needed - Add options for ola plugins: ftdidmx, gpio, karate, openpixelcontrol, renard, spi, uartdmx, usbdmx - Reorder options alphabetically - Update project URL - Add license hashes Signed-off-by: Julien Olivain <ju.o@free.fr> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-02-13 17:11:07 +01:00
################################################################################
#
# ola
#
################################################################################
OLA_VERSION = 0.10.8
OLA_SITE = https://github.com/OpenLightingProject/ola/releases/download/$(OLA_VERSION)
OLA_LICENSE = LGPL-2.1+ (libola, libolacommon, Python bindings), GPL-2.0+ (libolaserver, olad, Python examples and tests)
OLA_LICENSE_FILES = COPYING GPL LGPL LICENCE
OLA_INSTALL_STAGING = YES
# util-linux provides uuid lib
OLA_DEPENDENCIES = protobuf util-linux host-bison host-flex host-ola
OLA_CONF_OPTS = \
ac_cv_have_pymod_google_protobuf=yes \
--disable-fatal-warnings \
--disable-gcov \
--disable-ja-rule \
--disable-java-libs \
--disable-root-check \
--disable-tcmalloc \
--disable-unittests \
--with-ola-protoc-plugin=$(HOST_DIR)/usr/bin/ola_protoc_plugin
HOST_OLA_DEPENDENCIES = host-util-linux host-protobuf
# When building the host part, disable as much as possible to speed up
# the configure step and avoid missing host dependencies.
HOST_OLA_CONF_OPTS = \
--disable-all-plugins \
--disable-osc \
--disable-uart \
--disable-libusb \
--disable-libftdi \
--disable-http \
--disable-examples \
--disable-unittests \
--disable-doxygen-html \
--disable-doxygen-doc \
--disable-fatal-warnings
# On the host side, we only need ola_protoc_plugin, so build and install this
# only.
HOST_OLA_MAKE_OPTS = protoc/ola_protoc_plugin
define HOST_OLA_INSTALL_CMDS
$(INSTALL) -D -m 0755 $(@D)/protoc/ola_protoc_plugin $(HOST_DIR)/usr/bin/ola_protoc_plugin
endef
# sets where to find python libs built for target and required by ola
OLA_CONF_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages
OLA_MAKE_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages
## OLA Bindings and Interface selections
ifeq ($(BR2_PACKAGE_OLA_WEB),y)
OLA_CONF_OPTS += --enable-http
OLA_DEPENDENCIES += libmicrohttpd
else
OLA_CONF_OPTS += --disable-http
endif
ifeq ($(BR2_PACKAGE_OLA_PYTHON_BINDINGS),y)
OLA_CONF_OPTS += --enable-python-libs
OLA_DEPENDENCIES += python3 python-protobuf
else
OLA_CONF_OPTS += --disable-python-libs
endif
## OLA Examples and Tests
ifeq ($(BR2_PACKAGE_OLA_EXAMPLES),y)
OLA_CONF_OPTS += --enable-examples
OLA_DEPENDENCIES += ncurses
else
OLA_CONF_OPTS += --disable-examples
endif
ifeq ($(BR2_PACKAGE_OLA_RDM_TESTS),y)
OLA_CONF_OPTS += --enable-rdm-tests
OLA_DEPENDENCIES += python-numpy
# needed as numpy builds some shared libraries and ola checks for
# numpy using a host python test program which fails with 'wrong ELF
# class'.
OLA_CONF_ENV += ac_cv_have_pymod_numpy=yes
else
OLA_CONF_OPTS += --disable-rdm-tests
endif
## OLA Plugin selections
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_ARTNET),y)
OLA_CONF_OPTS += --enable-artnet
else
OLA_CONF_OPTS += --disable-artnet
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_DUMMY),y)
OLA_CONF_OPTS += --enable-dummy
else
OLA_CONF_OPTS += --disable-dummy
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_E131),y)
OLA_CONF_OPTS += --enable-e131
else
OLA_CONF_OPTS += --disable-e131
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_ESPNET),y)
OLA_CONF_OPTS += --enable-espnet
else
OLA_CONF_OPTS += --disable-espnet
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_FTDIDMX),y)
OLA_CONF_OPTS += --enable-ftdidmx
OLA_DEPENDENCIES += libftdi1
else
OLA_CONF_OPTS += --disable-ftdidmx
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_GPIO),y)
OLA_CONF_OPTS += --enable-gpio
else
OLA_CONF_OPTS += --disable-gpio
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_KARATE),y)
OLA_CONF_OPTS += --enable-karate
else
OLA_CONF_OPTS += --disable-karate
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_KINET),y)
OLA_CONF_OPTS += --enable-kinet
else
OLA_CONF_OPTS += --disable-kinet
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_MILINT),y)
OLA_CONF_OPTS += --enable-milinst
else
OLA_CONF_OPTS += --disable-milinst
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_OPENDMX),y)
OLA_CONF_OPTS += --enable-opendmx
else
OLA_CONF_OPTS += --disable-opendmx
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_OPENPIXELCONTROL),y)
OLA_CONF_OPTS += --enable-openpixelcontrol
else
OLA_CONF_OPTS += --disable-openpixelcontrol
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_OSC),y)
OLA_CONF_OPTS += --enable-osc
OLA_DEPENDENCIES += liblo
else
OLA_CONF_OPTS += --disable-osc
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_PATHPORT),y)
OLA_CONF_OPTS += --enable-pathport
else
OLA_CONF_OPTS += --disable-pathport
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_RENARD),y)
OLA_CONF_OPTS += --enable-renard
else
OLA_CONF_OPTS += --disable-renard
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_SANDNET),y)
OLA_CONF_OPTS += --enable-sandnet
else
OLA_CONF_OPTS += --disable-sandnet
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_SHOWNET),y)
OLA_CONF_OPTS += --enable-shownet
else
OLA_CONF_OPTS += --disable-shownet
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_SPI),y)
OLA_CONF_OPTS += --enable-spi
else
OLA_CONF_OPTS += --disable-spi
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_STAGEPROFI),y)
OLA_CONF_OPTS += --enable-stageprofi --enable-libusb
else
OLA_CONF_OPTS += --disable-stageprofi
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_UARTDMX),y)
OLA_CONF_OPTS += --enable-uartdmx
else
OLA_CONF_OPTS += --disable-uartdmx
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_USBDMX),y)
OLA_CONF_OPTS += --enable-usbdmx --enable-libusb
else
OLA_CONF_OPTS += --disable-usbdmx
endif
ifeq ($(BR2_PACKAGE_OLA_PLUGIN_USBPRO),y)
OLA_CONF_OPTS += --enable-usbpro --enable-libusb
else
OLA_CONF_OPTS += --disable-usbpro
endif
$(eval $(autotools-package))
$(eval $(host-autotools-package))