pkgsrc/mk/oss.buildlink3.mk
joerg 2d1ba244e9 Simply and speed up buildlink3.mk files and processing.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
2009-03-20 19:23:50 +00:00

64 lines
1.7 KiB
Makefile

# $NetBSD: oss.buildlink3.mk,v 1.10 2009/03/20 19:25:01 joerg Exp $
#
# This Makefile fragment is included by packages that require an Open Sound
# System (OSS) implementation. After inclusion of this file, the following
# variables may be examined:
#
# OSS_TYPE
# The type of OSS implementation that has been found. "native"
# means the native OSS implementation is used. "none" means that
# no suitable OSS implementation could be found.
#
OSS_BUILDLINK3_MK:= ${OSS_BUILDLINK3_MK}+
.include "../../mk/bsd.prefs.mk"
.if !defined(_OSS_TYPE)
_OSS_TYPE= none
CHECK_BUILTIN.oss:= yes
. include "../../mk/oss.builtin.mk"
CHECK_BUILTIN.oss:= no
. if defined(IS_BUILTIN.oss) && !empty(IS_BUILTIN.oss:M[yY][eE][sS])
_OSS_TYPE= native
. endif
.endif
MAKEVARS+= _OSS_TYPE
OSS_TYPE= ${_OSS_TYPE}
.if ${OSS_TYPE} != "none"
BUILDLINK_TREE+= oss -oss
BUILDLINK_BUILTIN_MK.oss= ../../mk/oss.builtin.mk
.if !empty(OSS_BUILDLINK3_MK:M+)
LIBOSSAUDIO?= ${BUILDLINK_LDADD.oss}
. if (${OPSYS} == "Linux") && exists(/dev/dsp)
DEVOSSAUDIO?= /dev/dsp
DEVOSSSOUND?= /dev/dsp
. elif ${OPSYS} == "DragonFly"
DEVOSSAUDIO?= /dev/dsp
DEVOSSSOUND?= /dev/dsp
. elif ${OPSYS} == "FreeBSD"
. if !empty(OS_VERSION:M4.*) || !empty(OS_VERSION:M5.[12]*)
DEVOSSAUDIO?= /dev/dsp
DEVOSSSOUND?= /dev/dsp
. else
DEVOSSAUDIO?= /dev/dsp0.0
DEVOSSSOUND?= /dev/dsp0.0
. endif
. else
DEVOSSAUDIO?= /dev/audio
DEVOSSSOUND?= /dev/sound
. endif
CONFIGURE_ENV+= LIBOSSAUDIO=${LIBOSSAUDIO:Q}
CONFIGURE_ENV+= DEVOSSAUDIO=${DEVOSSAUDIO:Q}
CONFIGURE_ENV+= DEVOSSSOUND=${DEVOSSSOUND:Q}
MAKE_ENV+= LIBOSSAUDIO=${LIBOSSAUDIO:Q}
MAKE_ENV+= DEVOSSAUDIO=${DEVOSSAUDIO:Q}
MAKE_ENV+= DEVOSSSOUND=${DEVOSSSOUND:Q}
.endif # OSS_BUILDLINK3_MK
.endif # OSS_TYPE != none