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