package/libopenh264: new package

[Thomas:
  - make the license info more specific: it's BSD-2c, not just BSD.
  - use a single conditional block to test the architecture, instead
    of multiple separate conditions.
  - add missing arm/armeb handling in the architecture condition.
  - make the host-nasm dependency only used on x86/x86-64, since it's
    not used for other architectures
  - group the ARCH= and ENABLE64BIT= make variable definitions in a
    LIBOPENH264_MAKE_OPTS variable, and use them at install time (in
    addition to build time) to avoid build issues.
  - wrap too long lines in the .mk file.]

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Bernd Kuhls 2015-08-11 20:16:53 +02:00 committed by Thomas Petazzoni
parent 838af7ac04
commit 082a3dd286
3 changed files with 75 additions and 0 deletions

View file

@ -957,6 +957,7 @@ menu "Multimedia"
source "package/libmms/Config.in"
source "package/libmpeg2/Config.in"
source "package/libogg/Config.in"
source "package/libopenh264/Config.in"
source "package/libplayer/Config.in"
source "package/libtheora/Config.in"
source "package/live555/Config.in"

View file

@ -0,0 +1,22 @@
config BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS
bool
default y if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_i386 || \
BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
BR2_x86_64
config BR2_PACKAGE_LIBOPENH264
bool "libopenh264"
depends on BR2_INSTALL_LIBSTDCPP
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS
help
OpenH264 is a codec library which supports H.264 encoding and
decoding.
http://www.openh264.org
comment "libopenh264 needs a toolchain w/ C++, dynamic library, threads"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
BR2_STATIC_LIBS
depends on BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS

View file

@ -0,0 +1,52 @@
################################################################################
#
# libopenh264
#
################################################################################
LIBOPENH264_VERSION = v1.4.0
LIBOPENH264_SITE = $(call github,cisco,openh264,$(LIBOPENH264_VERSION))
LIBOPENH264_LICENSE = BSD-2c
LIBOPENH264_LICENSE_FILES = LICENSE
LIBOPENH264_INSTALL_STAGING = YES
ifeq ($(BR2_aarch64),y)
LIBOPENH264_ARCH = aarch64
else ifeq ($(BR2_arm)$(BR2_armeb),y)
LIBOPENH264_ARCH = arm
else ifeq ($(BR2_i386),y)
LIBOPENH264_ARCH = x86
LIBOPENH264_DEPENDENCIES += host-nasm
else ifeq ($(BR2_mips)$(BR2_mipsel),y)
LIBOPENH264_ARCH = mips
else ifeq ($(BR2_mips64)$(BR2_mips64el),y)
LIBOPENH264_ARCH = mips64
else ifeq ($(BR2_x86_64),y)
LIBOPENH264_ARCH = x86_64
LIBOPENH264_DEPENDENCIES += host-nasm
endif
# ENABLE64BIT is really only used for x86-64, other 64 bits
# architecture don't need it.
LIBOPENH264_MAKE_OPTS = \
ARCH=$(LIBOPENH264_ARCH) \
ENABLE64BIT=$(if $(BR2_x86_64),Yes,No)
define LIBOPENH264_BUILD_CMDS
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \
$(LIBOPENH264_MAKE_OPTS)
endef
define LIBOPENH264_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \
$(LIBOPENH264_MAKE_OPTS) \
DESTDIR=$(STAGING_DIR) PREFIX=/usr install
endef
define LIBOPENH264_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \
$(LIBOPENH264_MAKE_OPTS) \
DESTDIR=$(TARGET_DIR) PREFIX=/usr install
endef
$(eval $(generic-package))