[Buildroot] [PATCH 1/1] package/alac: new package

Romain Naour romain.naour at gmail.com
Mon Jul 27 16:21:00 UTC 2020


Hello Marc,

Le 27/07/2020 à 17:27, Marc Chalain a écrit :
> From: Marc Chalain <marc.chalain at smile.fr>
> 
> The Apple Lossless Audio Codec (ALAC) is an audio codec developed by Apple and supported on iPhone, iPad, most iPods, Mac and iTunes. ALAC is a data compression method which reduces the size of audio files with no loss of information. A decoded ALAC stream is bit-for-bit identical to the original uncompressed audio file.
> 
> https://macosforge.github.io/alac/
> 
> A patch fix problem to link the convert utility with libalac.a

Did you try with the alac library provided by libaudiofile package ?
It's seems libaudiofile provide the same functionality.

Best regards,
Romain

> 
> Signed-off-by: Marc Chalain <marc.chalain at smile.fr>
> ---
>  package/Config.in                             |  1 +
>  ...rary-and-objects-to-link-all-symbols.patch | 26 ++++++++++++++
>  package/alac/Config.in                        | 16 +++++++++
>  package/alac/alac.hash                        |  2 ++
>  package/alac/alac.mk                          | 35 +++++++++++++++++++
>  5 files changed, 80 insertions(+)
>  create mode 100644 package/alac/0001-reorder-library-and-objects-to-link-all-symbols.patch
>  create mode 100644 package/alac/Config.in
>  create mode 100644 package/alac/alac.hash
>  create mode 100644 package/alac/alac.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 5c30d27b7a..4a03a67a0d 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1239,6 +1239,7 @@ endmenu
>  menu "Libraries"
>  
>  menu "Audio/Sound"
> +	source "package/alac/Config.in"
>  	source "package/alsa-lib/Config.in"
>  	source "package/alure/Config.in"
>  	source "package/aubio/Config.in"
> diff --git a/package/alac/0001-reorder-library-and-objects-to-link-all-symbols.patch b/package/alac/0001-reorder-library-and-objects-to-link-all-symbols.patch
> new file mode 100644
> index 0000000000..580a18d3a6
> --- /dev/null
> +++ b/package/alac/0001-reorder-library-and-objects-to-link-all-symbols.patch
> @@ -0,0 +1,26 @@
> +convert-utility: reorder library and objects to link all symbols
> +
> +Signed-off-by: Marc Chalain <marc.chalain at smile.fr>
> +
> +--- a/convert-utility/makefile
> ++++ b/convert-utility/makefile
> +@@ -1,7 +1,8 @@
> + # alacconvert make
> + 
> + CFLAGS = -g -O3 -c
> +-LFLAGS = -Wall -L$(CODECDIR) -lalac
> ++LFLAGS = -Wall -L$(CODECDIR)
> ++LIBS = -lalac
> + CC = g++
> + 
> + SRCDIR = .
> +@@ -30,7 +31,7 @@ CAFFileALAC.o
> + 
> + alacconvert:	$(OBJS)
> + 	(cd $(CODECDIR); $(MAKE))
> +-	$(CC) $(LFLAGS) $(OBJS) -o alacconvert
> ++	$(CC) $(LFLAGS) $(OBJS) $(LIBS) -o alacconvert
> + 
> + main.o : main.cpp
> + 	$(CC) -I $(INCLUDES) $(CFLAGS) main.cpp
> +
> diff --git a/package/alac/Config.in b/package/alac/Config.in
> new file mode 100644
> index 0000000000..2f1d4a1077
> --- /dev/null
> +++ b/package/alac/Config.in
> @@ -0,0 +1,16 @@
> +config BR2_PACKAGE_ALAC
> +	bool "Apple Lossless Audio Codec"
> +	help
> +	  Alac is an audio codec developed by Apple and
> +	  supported on iPhone, iPad, most iPods, Mac and
> +	  iTunes. ALAC is a data compression method which
> +	  reduces the size of audio files with no loss
> +	  of information. A decoded ALAC stream is bit-for-bit
> +	  identical to the original uncompressed audio file
> +
> +	  https://macosforge.github.io/alac/
> +
> +
> +config BR2_PACKAGE_ALAC_CONVERT
> +	bool "binary converter"
> +	depends on BR2_PACKAGE_ALAC
> diff --git a/package/alac/alac.hash b/package/alac/alac.hash
> new file mode 100644
> index 0000000000..9477916558
> --- /dev/null
> +++ b/package/alac/alac.hash
> @@ -0,0 +1,2 @@
> +sha256 98635ece42fb1c3fceb75eaa4b5164d866e09f0195b3e7ec4085f1123c5e272f  alac-c38887c5c5e64a4b31108733bd79ca9b2496d987.tar.gz
> +sha256 a337314dd82d26791112c1e5a85725b2eb92f5b7e6f9102fa4eaa2903f77518f  LICENSE
> diff --git a/package/alac/alac.mk b/package/alac/alac.mk
> new file mode 100644
> index 0000000000..64227eaa2e
> --- /dev/null
> +++ b/package/alac/alac.mk
> @@ -0,0 +1,35 @@
> +################################################################################
> +#
> +# alac
> +#
> +################################################################################
> +
> +ALAC_VERSION = c38887c5c5e64a4b31108733bd79ca9b2496d987
> +ALAC_SITE =$(call github,macosforge,alac,$(ALAC_VERSION))
> +ALAC_LICENSE = APACHE
> +ALAC_LICENSE_FILES = LICENSE
> +ALAC_INSTALL_STAGING = YES
> +
> +ALAC_MAKE_OPTS =  CC=$(TARGET_CXX)
> +
> +ifeq ($(BR2_PACKAGE_ALAC_CONVERT),y)
> +define ALACCONVERT_BUILD_CMDS
> +	$(MAKE) $(ALAC_MAKE_OPTS) -C $(@D)/convert-utility
> +endef
> +define ALAC_INSTALL_TARGET_CMDS
> +	$(INSTALL) -D -m 755 $(@D)/convert-utility/alacconvert $(TARGET_DIR)/usr/bin
> +endef
> +endif
> +
> +define ALAC_BUILD_CMDS
> +	$(MAKE) $(ALAC_MAKE_OPTS) -C $(@D)/codec
> +	$(ALACCONVERT_BUILD_CMDS)
> +endef
> +
> +define ALAC_INSTALL_STAGING_CMDS
> +	$(INSTALL) -D -m 644 $(@D)/codec/libalac.a      $(STAGING_DIR)/usr/lib/libalac.a
> +	$(INSTALL) -D -m 644 $(@D)/codec/ALACDecoder.h  $(STAGING_DIR)/usr/include/ALACDecoder.h
> +	$(INSTALL) -D -m 644 $(@D)/codec/ALACEncoder.h  $(STAGING_DIR)/usr/include/ALACEncoder.h
> +endef
> +
> +$(eval $(generic-package))
> 




More information about the buildroot mailing list