[Buildroot] [PATCH v2] libamcodec: New Package

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Wed Jun 1 21:32:02 UTC 2016


Hello,

Thanks for this new iteration!

On Thu,  2 Jun 2016 00:16:07 +0300, Dagg wrote:

> +-CPP=g++
> +-AS=as
> +-AR=ar
> +-LD=ld
> +-NM=nm
> +-STRIP=strip
> +-OBJCOPY=objcopy
> ++CPP ?= g++
> ++AS ?= as
> ++AR ?= ar
> ++LD ?= ld
> ++NM ?= nm
> ++STRIP ?= strip
> ++OBJCOPY ?= objcopy

This patch would not be needed if $(TARGET_CONFIGURE_OPTS) was passed
as a make option instead of in the make environment. I.e

	$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS)

instead of

	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE)

However, this also means that a number of other variables from your
package Makefile will be overridden, such as CFLAGS, CXXFLAGS, LDFLAGS,
etc. This sometimes causes some problems.

> +comment "libamcodec needs a toolchain w/ threads"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS

You need to replicate the architecture dependency here, so that the
comment is not needlessly displayed on architectures for which the
libamcodec option will anyway not be available, regardless of the
availability of thread support.

> +LIBAMCODEC_VERSION = ed1d8b8c54b05c1a02a8ee44c59744e4cbed3d8d
> +LIBAMCODEC_SITE = $(call github,mdrjr,c2_aml_libs,$(LIBAMCODEC_VERSION))
> +LIBAMCODEC_DEPENDENCIES = alsa-lib
> +
> +# this pkg uses a non standard prefix vars, so we need to use them.

# This package uses the M_PREFIX variable to construct the header and
# library paths used when compiling.

is probably a slightly better explanation.

> +define LIBAMCODEC_BUILD_CMDS
> +	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/amavutils M_PREFIX="$(STAGING_DIR)/usr"
> +	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/amadec M_PREFIX="$(STAGING_DIR)/usr"
> +	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/amcodec PREFIX="$(STAGING_DIR)"
> +endef
> +
> +define LIBAMCODEC_INSTALL_STAGING_CMDS
> +	$(INSTALL) -D -m 0755 $(@D)/amavutils/libamavutils.so $(STAGING_DIR)/usr/lib
> +	$(INSTALL) -D -m 0555 $(@D)/amadec/libamadec.so $(STAGING_DIR)/usr/lib
> +	$(INSTALL) -D -m 0555 $(@D)/amcodec/libamcodec.so $(STAGING_DIR)/usr/lib

Full destination path needed.

> +

Unneeded empty line (already mentioned by Vicente)

> +	mkdir -p $(STAGING_DIR)/usr/include/amcodec
> +	cp -rf $(@D)/amcodec/include/* $(STAGING_DIR)/usr/include/amcodec
> +endef
> +
> +define LIBAMCODEC_INSTALL_TARGET_CMDS
> +	$(INSTALL) -D -m 0755 $(@D)/amavutils/libamavutils.so $(TARGET_DIR)/usr/lib
> +	$(INSTALL) -D -m 0555 $(@D)/amadec/libamadec.so $(TARGET_DIR)/usr/lib
> +	$(INSTALL) -D -m 0555 $(@D)/amcodec/libamcodec.so $(TARGET_DIR)/usr/lib

Full destination path needed.

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


More information about the buildroot mailing list