xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-multimedia/alsa/alsa-utils.inc (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "ALSA sound utilities"
2*4882a593SmuzhiyunDESCRIPTION = "collection of small and often extremely powerful applications \
3*4882a593Smuzhiyundesigned to allow users to control the various parts of the ALSA system."
4*4882a593SmuzhiyunHOMEPAGE = "http://www.alsa-project.org"
5*4882a593SmuzhiyunBUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
6*4882a593SmuzhiyunSECTION = "console/utils"
7*4882a593Smuzhiyun# Some parts are GPL-2.0-or-later, some are GPL-2.0-only (e.g. axfer, alsactl)
8*4882a593Smuzhiyun# so result is GPL-2.0-only
9*4882a593SmuzhiyunLICENSE = "GPL-2.0-only"
10*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
11*4882a593Smuzhiyun                    file://alsactl/utils.c;beginline=3;endline=18;md5=96cc06a4cebe5eb7975688ffb0e65642"
12*4882a593SmuzhiyunDEPENDS = "alsa-lib ncurses libsamplerate0"
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunPACKAGECONFIG ??= "udev"
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun# alsabat can be built also without fftw support (with reduced functionality).
17*4882a593Smuzhiyun# It would be better to always enable alsabat, but provide an option for
18*4882a593Smuzhiyun# enabling/disabling fftw. The configure script doesn't support that, however
19*4882a593Smuzhiyun# (at least in any obvious way), so for now we only support alsabat with fftw
20*4882a593Smuzhiyun# or no alsabat at all.
21*4882a593SmuzhiyunPACKAGECONFIG[bat] = "--enable-bat,--disable-bat,fftwf"
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunPACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d,--with-udev-rules-dir=/unwanted/rules.d,udev"
24*4882a593SmuzhiyunPACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun# alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe
27*4882a593SmuzhiyunSRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2"
28*4882a593SmuzhiyunSRC_URI[sha256sum] = "6a1efd8a1f1d9d38e489633eaec1fffa5c315663b316cab804be486887e6145d"
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun# On build machines with python-docutils (not python3-docutils !!) installed
31*4882a593Smuzhiyun# rst2man (not rst2man.py) is detected and compile fails with
32*4882a593Smuzhiyun# | make[1]: *** No rule to make target 'alsaucm.1', needed by 'all-am'.  Stop.
33*4882a593Smuzhiyun# Avoid this by disabling expicitly
34*4882a593SmuzhiyunEXTRA_OECONF = "--disable-rst2man"
35*4882a593Smuzhiyun
36*4882a593Smuzhiyuninherit autotools gettext pkgconfig manpages
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun# This are all packages that we need to make. Also, the now empty alsa-utils
39*4882a593Smuzhiyun# ipk depends on them.
40*4882a593Smuzhiyun
41*4882a593SmuzhiyunALSA_UTILS_PKGS = "\
42*4882a593Smuzhiyun             ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'alsa-utils-alsabat', '', d)} \
43*4882a593Smuzhiyun             alsa-utils-alsamixer \
44*4882a593Smuzhiyun             alsa-utils-alsatplg \
45*4882a593Smuzhiyun             alsa-utils-midi \
46*4882a593Smuzhiyun             alsa-utils-aplay \
47*4882a593Smuzhiyun             alsa-utils-amixer \
48*4882a593Smuzhiyun             alsa-utils-aconnect \
49*4882a593Smuzhiyun             alsa-utils-iecset \
50*4882a593Smuzhiyun             alsa-utils-speakertest \
51*4882a593Smuzhiyun             alsa-utils-aseqnet \
52*4882a593Smuzhiyun             alsa-utils-aseqdump \
53*4882a593Smuzhiyun             alsa-utils-alsactl \
54*4882a593Smuzhiyun             alsa-utils-alsaloop \
55*4882a593Smuzhiyun             alsa-utils-alsaucm \
56*4882a593Smuzhiyun            "
57*4882a593Smuzhiyun
58*4882a593SmuzhiyunPACKAGES += "${ALSA_UTILS_PKGS}"
59*4882a593SmuzhiyunRDEPENDS:${PN} += "${ALSA_UTILS_PKGS}"
60*4882a593Smuzhiyun
61*4882a593SmuzhiyunFILES:${PN} = ""
62*4882a593SmuzhiyunALLOW_EMPTY:alsa-utils = "1"
63*4882a593SmuzhiyunFILES:alsa-utils-alsabat     = "${bindir}/alsabat"
64*4882a593SmuzhiyunFILES:alsa-utils-alsatplg    = "${bindir}/alsatplg"
65*4882a593SmuzhiyunFILES:alsa-utils-aplay       = "${bindir}/aplay ${bindir}/arecord ${bindir}/axfer"
66*4882a593SmuzhiyunFILES:alsa-utils-amixer      = "${bindir}/amixer"
67*4882a593SmuzhiyunFILES:alsa-utils-alsamixer   = "${bindir}/alsamixer"
68*4882a593SmuzhiyunFILES:alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/speaker-test/"
69*4882a593SmuzhiyunFILES:alsa-utils-midi        = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
70*4882a593SmuzhiyunFILES:alsa-utils-aconnect    = "${bindir}/aconnect"
71*4882a593SmuzhiyunFILES:alsa-utils-aseqnet     = "${bindir}/aseqnet"
72*4882a593SmuzhiyunFILES:alsa-utils-iecset      = "${bindir}/iecset"
73*4882a593SmuzhiyunFILES:alsa-utils-alsactl     = "${sbindir}/alsactl */udev/rules.d/90-alsa-restore.rules */*/udev/rules.d/90-alsa-restore.rules ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/"
74*4882a593SmuzhiyunFILES:alsa-utils-aseqdump    = "${bindir}/aseqdump"
75*4882a593SmuzhiyunFILES:alsa-utils-alsaloop    = "${bindir}/alsaloop"
76*4882a593SmuzhiyunFILES:alsa-utils-alsaucm     = "${bindir}/alsaucm */udev/rules.d/89-alsa-ucm.rules */*/udev/rules.d/89-alsa-ucm.rules"
77*4882a593Smuzhiyun
78*4882a593SmuzhiyunSUMMARY:alsa-utils-alsabat      = "Command-line sound tester for ALSA sound card driver"
79*4882a593SmuzhiyunSUMMARY:alsa-utils-alsatplg     = "Converts topology text files into binary format for kernel"
80*4882a593SmuzhiyunSUMMARY:alsa-utils-aplay        = "Play (and record) sound files using ALSA"
81*4882a593SmuzhiyunSUMMARY:alsa-utils-amixer       = "Command-line control for ALSA mixer and settings"
82*4882a593SmuzhiyunSUMMARY:alsa-utils-alsamixer    = "ncurses-based control for ALSA mixer and settings"
83*4882a593SmuzhiyunSUMMARY:alsa-utils-speakertest  = "ALSA surround speaker test utility"
84*4882a593SmuzhiyunSUMMARY:alsa-utils-midi         = "Miscellaneous MIDI utilities for ALSA"
85*4882a593SmuzhiyunSUMMARY:alsa-utils-aconnect     = "ALSA sequencer connection manager"
86*4882a593SmuzhiyunSUMMARY:alsa-utils-aseqnet      = "Network client/server for ALSA sequencer"
87*4882a593SmuzhiyunSUMMARY:alsa-utils-iecset       = "ALSA utility for setting/showing IEC958 (S/PDIF) status bits"
88*4882a593SmuzhiyunSUMMARY:alsa-utils-alsactl      = "Saves/restores ALSA-settings in /etc/asound.state"
89*4882a593SmuzhiyunSUMMARY:alsa-utils-aseqdump     = "Shows the events received at an ALSA sequencer port"
90*4882a593SmuzhiyunSUMMARY:alsa-utils-alsaloop     = "ALSA PCM loopback utility"
91*4882a593SmuzhiyunSUMMARY:alsa-utils-alsaucm      = "ALSA Use Case Manager"
92*4882a593Smuzhiyun
93*4882a593SmuzhiyunRRECOMMENDS:alsa-utils-alsactl = "alsa-states"
94*4882a593Smuzhiyun
95*4882a593Smuzhiyundo_install() {
96*4882a593Smuzhiyun	autotools_do_install
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun	# We don't ship this here because it requires a dependency on bash.
99*4882a593Smuzhiyun	# See alsa-utils-scripts_${PV}.bb
100*4882a593Smuzhiyun	rm ${D}${sbindir}/alsaconf
101*4882a593Smuzhiyun	rm ${D}${sbindir}/alsa-info.sh
102*4882a593Smuzhiyun	rm -f ${D}${sbindir}/alsabat-test.sh
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun	# If udev is disabled, we told configure to install the rules
105*4882a593Smuzhiyun	# in /unwanted, so we can remove them now. If udev is enabled,
106*4882a593Smuzhiyun	# then /unwanted won't exist and this will have no effect.
107*4882a593Smuzhiyun	rm -rf ${D}/unwanted
108*4882a593Smuzhiyun}
109