aboutsummaryrefslogtreecommitdiff
path: root/Mk
diff options
context:
space:
mode:
authorAntoine Brodin <antoine@FreeBSD.org>2013-12-25 23:24:54 +0000
committerAntoine Brodin <antoine@FreeBSD.org>2013-12-25 23:24:54 +0000
commit6bf16e73115b4c62539ac4f0a4f6ccf1270eb26f (patch)
treeee77ed09c590859dab9052d7d463fe92a5da4610 /Mk
parentbb898c06bd9eb7e7eee463b6c0f37877a897abb3 (diff)
Notes
Diffstat (limited to 'Mk')
-rw-r--r--Mk/Uses/openal.mk90
1 files changed, 90 insertions, 0 deletions
diff --git a/Mk/Uses/openal.mk b/Mk/Uses/openal.mk
new file mode 100644
index 000000000000..6cf49a2a3919
--- /dev/null
+++ b/Mk/Uses/openal.mk
@@ -0,0 +1,90 @@
+# $FreeBSD$
+#
+# Handle dependency on OpenAL
+#
+# MAINTAINER: portmgr@FreeBSD.org
+#
+# Feature: openal
+# Usage: USES=openal or USES=openal:ARGS
+# Valid ARGS: al, soft (default), si, alut
+#
+# User-specified OpenAL wish:
+# Usage: WANT_OPENAL=ARG
+# Valid ARG: soft (default), si
+#
+#
+.if !defined(_INCLUDE_USES_OPENAL_MK)
+_INCLUDE_USES_OPENAL_MK= yes
+
+_valid_ARGS= al si soft alut
+_openal_ARGS= ${openal_ARGS:C/,/ /g}
+
+_si_DEPENDS= libopenal.so.0:${PORTSDIR}/audio/openal
+_soft_DEPENDS= libopenal.so.1:${PORTSDIR}/audio/openal-soft
+_alut_DEPENDS= libalut.so.1:${PORTSDIR}/audio/freealut
+
+_OPENAL_LIBS= si soft
+_DEFAULT_OPENAL= soft
+
+.if exists(${LOCALBASE}/lib/libopenal.a)
+_HAVE_OPENAL= si
+.elif exists(${LOCALBASE}/bin/openal-info)
+_HAVE_OPENAL= soft
+.endif
+
+# Be friendly
+.if ! defined(openal_ARGS)
+_openal_ARGS= ${_DEFAULT_OPENAL}
+.endif
+
+# Sanity checks
+.if defined(WANT_OPENAL) && defined(_HAVE_OPENAL) && ${_HAVE_OPENAL} != ${WANT_OPENAL}
+IGNORE= OpenAL mismatch: ${_HAVE_OPENAL} is installed, but ${WANT_OPENAL} desired
+.endif
+
+.if defined(_openal_ARGS)
+. for _arg in ${_openal_ARGS}
+. if ! ${_valid_ARGS:M${_arg}}
+IGNORE= Incorrect 'USES+= openal:${openal_ARGS}' usage: argument [${_arg}] is not recognized
+. endif
+. if ${_OPENAL_LIBS:M${_arg}} && ${_openal_ARGS:Mal}
+IGNORE= Incorrect 'USES+= openal:${openal_ARGS}' usage: argument [${_arg}] cannot be used together with al
+. endif
+. if ${_OPENAL_LIBS:M${_arg}} && defined(_HAVE_OPENAL) && ${_HAVE_OPENAL} != ${_arg}
+IGNORE= OpenAL mismatch: port wants to use ${_arg} while you have ${_HAVE_OPENAL}
+. endif
+. if ${_OPENAL_LIBS:M${_arg}} && defined(WANT_OPENAL) && ${WANT_OPENAL} != ${_arg}
+IGNORE= OpenAL mismatch: port wants to use ${_arg} while you wish to use ${WANT_OPENAL}
+. endif
+. if ${_OPENAL_LIBS:M${_arg}}
+. for _carg in ${_OPENAL_LIBS:N${_arg}}
+. if ${_openal_ARGS:M${_carg}}
+IGNORE= Incorrect 'USES+= openal:${openal_ARGS}' usage: arguments [${_arg}] and [${_carg}] cannot be used together
+. endif
+. endfor
+. endif
+. endfor
+.endif
+
+# Proceed
+_USE_OPENAL=
+
+.if ${_openal_ARGS:Mal}
+.if defined(_HAVE_OPENAL)
+_USE_OPENAL= ${_HAVE_OPENAL}
+.elif defined(WANT_OPENAL)
+_USE_OPENAL= ${WANT_OPENAL}
+.else
+_USE_OPENAL= ${_DEFAULT_OPENAL}
+.endif
+.endif
+
+.for _arg in ${_openal_ARGS:Nal}
+_USE_OPENAL+= ${_arg}
+.endfor
+
+.for _arg in ${_USE_OPENAL}
+LIB_DEPENDS+= ${_${_arg}_DEPENDS}
+.endfor
+
+.endif