Commit 082a3dd2 authored by Bernd Kuhls's avatar Bernd Kuhls Committed by Thomas Petazzoni
Browse files

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: default avatarBernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 838af7ac
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"
+22 −0
Original line number Diff line number Diff line
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
+52 −0
Original line number Diff line number Diff line
################################################################################
#
# 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))