mirror of
https://github.com/openwrt/packages.git
synced 2026-05-31 06:51:51 +08:00
e1edf904a3
The ola host build (HostBuild path that produces ola_protoc_plugin)
failed in clean buildbot environments with:
configure: error: Missing the uuid library
even though libuuid is provided by tools/util-linux and is staged
at $(STAGING_DIR_HOST)/lib/pkgconfig/uuid.pc.
Root cause: HOST_CONFIGURE_VARS overrode PKG_CONFIG_PATH with
PKG_CONFIG_PATH="$(STAGING_DIR_HOSTPKG)/usr/protobuf-compat/lib/\
pkgconfig:$(PKG_CONFIG_PATH)"
$(PKG_CONFIG_PATH) here is the make-time variable, which is never
set for host context (include/host-build.mk only exports it as a
per-rule env variable, not a make variable). It therefore expanded
to the empty string, and the resulting single-entry PKG_CONFIG_PATH
overrode the exported defaults from host-build.mk, hiding uuid.pc
from the host pkg-config wrapper.
Fix: refer to the env variable via shell expansion ($$PKG_CONFIG_PATH)
instead of the make variable. The make recipe expands $$ to $, and
the shell resolves $PKG_CONFIG_PATH from the inherited environment
populated by include/host-build.mk (which sets it to
$(STAGING_DIR_HOST)/lib/pkgconfig:$(HOST_BUILD_PREFIX)/lib/pkgconfig).
Fixes: 5e4f937e ("ola: use protobuf-compat instead of protobuf")
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
128 lines
3.8 KiB
Makefile
128 lines
3.8 KiB
Makefile
#
|
|
# Copyright (C) 2006-2015 OpenWrt.org
|
|
# Copyright (C) 2015-2017 Christian Beier <dontmind@freeshell.org>
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=ola
|
|
PKG_VERSION:=0.10.9
|
|
PKG_RELEASE:=3
|
|
|
|
PKG_SOURCE_PROTO:=git
|
|
PKG_SOURCE_VERSION:=$(PKG_VERSION)
|
|
PKG_SOURCE_URL:=https://github.com/OpenLightingProject/ola
|
|
PKG_MIRROR_HASH:=55b9c82dec4133c3895a9af99a3245764ece14fc5b0a4e0841686903b1d6f365
|
|
|
|
PKG_MAINTAINER:=Christian Beier <dontmind@freeshell.org>
|
|
PKG_LICENSE:=LGPL-2.1-or-later
|
|
PKG_LICENSE_FILES:=COPYING
|
|
|
|
PKG_FIXUP:=autoreconf
|
|
PKG_INSTALL:=1
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_BUILD_FLAGS:=no-mips16
|
|
|
|
HOST_BUILD_DEPENDS:=protobuf-compat/host
|
|
PKG_BUILD_DEPENDS:=ola/host
|
|
|
|
include $(INCLUDE_DIR)/host-build.mk
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/ola
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
TITLE:=Open Lighting Architecture Daemon
|
|
URL:=https://www.openlighting.org/
|
|
DEPENDS:=+protobuf-compat +libftdi1 +libusb-1.0 +libuuid +libstdcpp +libpthread +librt +zlib +libncurses +liblo +libmicrohttpd
|
|
endef
|
|
|
|
define Package/ola/description
|
|
OLA (Open Lighting Architecture) is a framework that allows applications to
|
|
send and receive DMX512, using various hardware devices and 'DMX over IP'
|
|
protocols. It enables software controllers talk to DMX hardware.
|
|
endef
|
|
|
|
HOST_CONFIGURE_ARGS += \
|
|
--disable-all-plugins \
|
|
--disable-doxygen-doc \
|
|
--disable-doxygen-html \
|
|
--disable-examples \
|
|
--disable-http \
|
|
--disable-libusb \
|
|
--disable-osc \
|
|
--disable-uart \
|
|
--disable-unittests \
|
|
--with-protoc=$(STAGING_DIR_HOSTPKG)/bin/protoc-compat
|
|
|
|
CONFIGURE_ARGS += \
|
|
--disable-dependency-tracking \
|
|
--without-dns-sd \
|
|
--disable-fatal-warnings \
|
|
--disable-static \
|
|
--disable-unittests \
|
|
--with-ola-protoc-plugin="$(STAGING_DIR_HOSTPKG)/bin/ola_protoc_plugin" \
|
|
--with-protoc=$(STAGING_DIR_HOSTPKG)/bin/protoc-compat
|
|
|
|
HOST_CONFIGURE_VARS += \
|
|
PKG_CONFIG_PATH="$(STAGING_DIR_HOSTPKG)/usr/protobuf-compat/lib/pkgconfig:$$$$PKG_CONFIG_PATH" \
|
|
CPPFLAGS="-I$(STAGING_DIR_HOSTPKG)/usr/protobuf-compat/include $(HOST_CPPFLAGS)" \
|
|
CXXFLAGS="-I$(STAGING_DIR_HOSTPKG)/usr/protobuf-compat/include $(HOST_CXXFLAGS)" \
|
|
LDFLAGS="-L$(STAGING_DIR_HOSTPKG)/usr/protobuf-compat/lib $(HOST_LDFLAGS)"
|
|
|
|
CONFIGURE_VARS += \
|
|
PKG_CONFIG_PATH="$(STAGING_DIR)/usr/protobuf-compat/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
|
|
CPPFLAGS="-I$(STAGING_DIR)/usr/protobuf-compat/include $(TARGET_CPPFLAGS)" \
|
|
CXXFLAGS="-I$(STAGING_DIR)/usr/protobuf-compat/include $(TARGET_CXXFLAGS)" \
|
|
LDFLAGS="-L$(STAGING_DIR)/usr/protobuf-compat/lib $(TARGET_LDFLAGS)"
|
|
|
|
# only build the ola_protoc thingy
|
|
define Host/Compile
|
|
cd $(HOST_BUILD_DIR); \
|
|
$(MAKE) protoc/ola_protoc_plugin
|
|
endef
|
|
|
|
define Host/Install
|
|
$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin
|
|
$(CP) $(HOST_BUILD_DIR)/protoc/ola_protoc_plugin $(STAGING_DIR_HOSTPKG)/bin
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/ola $(1)/usr/include/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/olad $(1)/usr/include/
|
|
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/ola/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin
|
|
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib
|
|
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/olad.init $(1)/etc/init.d/olad
|
|
|
|
$(INSTALL_DIR) $(1)/usr/share/ola/pids
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/share/ola/pids/* $(1)/usr/share/ola/pids
|
|
|
|
$(INSTALL_DIR) $(1)/usr/share/olad/www
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/share/olad/www/* $(1)/usr/share/olad/www
|
|
endef
|
|
|
|
define Package/ola/postinst
|
|
#!/bin/sh
|
|
|
|
# make sure the conf dir exists and is writeable by the group olad uses
|
|
mkdir -p $${IPKG_INSTROOT}/etc/ola
|
|
chgrp nogroup $${IPKG_INSTROOT}/etc/ola
|
|
chmod 775 $${IPKG_INSTROOT}/etc/ola
|
|
endef
|
|
|
|
$(eval $(call HostBuild))
|
|
$(eval $(call BuildPackage,ola))
|