freebsd-ports/audio/oss/Makefile
Marten 4353081bac audio/oss: Save mixer before unloading module
After installing the oss package, a kernel panic occurs every time the
computer is shut down.

This is because the mixer RC script tries to save the mixer values after
the OSS module is unloaded.  We can avoid this by making OSS unload after
this is done.

[crees] While here, pet rclint.

PR:	ports/270709
2023-04-13 09:16:00 +01:00

115 lines
3.9 KiB
Makefile

PORTNAME= oss
DISTVERSION= 4.2-build2019
PORTREVISION= 4
CATEGORIES= audio
MASTER_SITES= http://www.opensound.com/developer/sources/stable/bsd/
DISTNAME= ${PORTNAME}-v${DISTVERSION}-src-bsd
MAINTAINER= crees@FreeBSD.org
COMMENT= Open Sound System from 4Front Technologies
WWW= http://opensound.com/
LICENSE= BSD2CLAUSE
ONLY_FOR_ARCHS= amd64 i386
BUILD_DEPENDS= gawk:lang/gawk
LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2
USES= gnome tar:bzip2 kmod pkgconfig
USE_GNOME= gtk20 cairo gdkpixbuf2
USE_RC_SUBR= oss
HAS_CONFIGURE= yes
CONFIGURE_OUTSOURCE= yes
CONFIGURE_ENV= HOSTCC="${CC}"
MAKE_ENV= WERROR="" # fix build: otherwise sys/conf/kmod.mk adds -Werror that breaks build
ALL_TARGET= all install
SUB_FILES= pkg-install pkg-deinstall
LLD_UNSAFE= yes
KMODDIR= ${PREFIX}/lib/oss/modules
OSS_CONF_FILES= oss_audigyls oss_audioloop oss_cs461x oss_emu10k1x \
oss_envy24 oss_envy24ht oss_fmedia oss_hdaudio \
oss_ich oss_imux oss_madi oss_midiloop oss_sblive \
oss_sbpci oss_sbxfi oss_trident oss_usb oss_userdev \
oss_ymf7xx osscore
PROTO_DIR= ${INSTALL_WRKSRC}/prototype
PROTO_ETCDIR= ${PROTO_DIR}/etc
PROTO_BINDIR= ${PROTO_DIR}/usr/bin
PROTO_SBINDIR= ${PROTO_DIR}/usr/sbin
PROTO_MANDIR= ${PROTO_DIR}/usr/share/man
PROTO_OSSLIBDIR=${PROTO_DIR}${PREFIX}/lib/oss
OPTIONS_DEFINE= VORBIS
OPTIONS_DEFAULT=VORBIS
VORBIS_LIB_DEPENDS= libvorbisfile.so:audio/libvorbis
VORBIS_CONFIGURE_ENV= OGG_SUPPORT=YES
pre-patch:
${FIND} ${PATCH_WRKSRC} -name '*.man' -or \
\( -name '*.[ch]' \! -name ossmkdep.c \) | \
${XARGS} ${REINPLACE_CMD} -e 's|/usr/|${PREFIX}/|g' \
-e 's|/etc/oss|${PREFIX}/etc/oss|g'
post-patch:
${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
${PATCH_WRKSRC}/setup/srcconf.c
${FIND} ${PATCH_WRKSRC} -name configure -or \
-name make.local -or -name soundoff -or -name soundon | \
${XARGS} ${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g'
pre-build:
${MAKE_CMD} -C ${BUILD_WRKSRC}/kernel/OS/FreeBSD \
-f /usr/share/mk/bsd.kmod.mk \
KMOD=osscore SRCS=os_freebsd.c \
device_if.h bus_if.h pci_if.h
do-install:
${INSTALL_PROGRAM} ${PROTO_BINDIR}/* ${STAGEDIR}${PREFIX}/bin/
# @${ECHO_CMD} "OSSLIBDIR=${PREFIX}/lib/oss" > ${PROTO_ETCDIR}/oss.conf
${INSTALL_DATA} ${PROTO_ETCDIR}/oss.conf ${STAGEDIR}${PREFIX}/etc/
-@${MKDIR} ${STAGEDIR}${PREFIX}/lib/oss 2>/dev/null
${INSTALL_DATA} ${PROTO_OSSLIBDIR}/soundon.user \
${STAGEDIR}${PREFIX}/lib/oss/soundon.user.sample
${INSTALL_DATA} ${PROTO_OSSLIBDIR}/sysfiles.list \
${STAGEDIR}${PREFIX}/lib/oss/
${INSTALL_DATA} ${PROTO_OSSLIBDIR}/version.dat \
${STAGEDIR}${PREFIX}/lib/oss/
-@${MKDIR} ${STAGEDIR}${PREFIX}/lib/oss/conf 2>/dev/null
.for CONF_FILE in ${OSS_CONF_FILES}
${INSTALL_DATA} ${PROTO_OSSLIBDIR}/conf/${CONF_FILE}.conf \
${STAGEDIR}${PREFIX}/lib/oss/conf/${CONF_FILE}.conf.sample
.endfor
-@${MKDIR} ${STAGEDIR}${PREFIX}/lib/oss/etc 2>/dev/null
${INSTALL_DATA} ${PROTO_OSSLIBDIR}/etc/devices.list \
${STAGEDIR}${PREFIX}/lib/oss/etc/
-@${MKDIR} ${STAGEDIR}${PREFIX}/lib/oss/include/sys 2>/dev/null
${INSTALL_DATA} ${PROTO_OSSLIBDIR}/include/sys/soundcard.h \
${STAGEDIR}${PREFIX}/lib/oss/include/sys/
${INSTALL_KLD} ${PROTO_OSSLIBDIR}/modules/*.ko ${STAGEDIR}${KMODDIR}
${INSTALL_MAN} ${PROTO_MANDIR}/man1/*.1.gz \
${STAGEDIR}${PREFIX}/man/man1/
${INSTALL_MAN} ${PROTO_MANDIR}/man7/*.7.gz \
${STAGEDIR}${PREFIX}/man/man7/
${INSTALL_MAN} ${PROTO_MANDIR}/man8/*.8.gz \
${STAGEDIR}${PREFIX}/man/man8/
${INSTALL_PROGRAM} ${PROTO_SBINDIR}/ossdetect \
${STAGEDIR}${PREFIX}/sbin/
${INSTALL_PROGRAM} ${PROTO_SBINDIR}/ossdevlinks \
${STAGEDIR}${PREFIX}/sbin/
${INSTALL_PROGRAM} ${PROTO_SBINDIR}/savemixer \
${STAGEDIR}${PREFIX}/sbin/
${INSTALL_SCRIPT} ${PROTO_SBINDIR}/soundoff \
${STAGEDIR}${PREFIX}/sbin/
${INSTALL_SCRIPT} ${PROTO_SBINDIR}/soundon \
${STAGEDIR}${PREFIX}/sbin/
${INSTALL_PROGRAM} ${PROTO_SBINDIR}/vmixctl \
${STAGEDIR}${PREFIX}/sbin/
.include <bsd.port.mk>