[Midnightbsd-cvs] mports [15808] trunk/Mk: move ldap and openal to separate modules.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Wed Jan 1 11:57:13 EST 2014


Revision: 15808
          http://svnweb.midnightbsd.org/mports/?rev=15808
Author:   laffer1
Date:     2014-01-01 11:57:13 -0500 (Wed, 01 Jan 2014)
Log Message:
-----------
move ldap and openal to separate modules. update desktop categories list. reorder module load to be alphabetical for items we probably can do this with.

Modified Paths:
--------------
    trunk/Mk/bsd.mport.mk

Added Paths:
-----------
    trunk/Mk/extensions/ldap.mk
    trunk/Mk/extensions/openal.mk

Modified: trunk/Mk/bsd.mport.mk
===================================================================
--- trunk/Mk/bsd.mport.mk	2014-01-01 16:07:14 UTC (rev 15807)
+++ trunk/Mk/bsd.mport.mk	2014-01-01 16:57:13 UTC (rev 15808)
@@ -336,10 +336,10 @@
 _ALL_EXT=	charsetfix pathfix pkgconfig compiler kmod uidfix \
 		linux_rpm linux_apps xorg fortran \
 		gcc fmake fpc gmake bison local perl5 openssl \
-		emacs gnustep php python java ruby tcl apache kde qt \
-		autotools gnome lua wx gstreamer sdl xfce kde4 cmake mysql \
-		pgsql bdb sqlite gecko scons ocaml efl gettext \
-		fuse iconv imake ncurses
+		apache autotools bdb cmake efl emacs fuse \
+		gecko gettext gnome gnustep gstreamer iconv imake \
+		kde4 ldap lua mysql ncurses ocaml openal \
+		pgsql php python java qt ruby scons sdl sqlite tcl wx xfce
 
 .for EXT in ${_ALL_EXT:U} 
 .	if defined(USE_${EXT}) || defined(USE_${EXT}_RUN) || defined(USE_${EXT}_BUILD) || defined(WANT_${EXT}) || defined(_LOAD_${EXT}_EXT)
@@ -439,8 +439,6 @@
 # Location of mounted CDROM(s) to search for files
 CD_MOUNTPTS?=	/cdrom ${CD_MOUNTPT}
 
-WANT_OPENLDAP_VER?=	24
-
 # Owner and group of the WWW user
 WWWOWN?=	www
 WWWGRP?=	www
@@ -584,11 +582,7 @@
 .endif
 .endif
 
-.if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES)
-MANCOMPRESSED?=	yes
-.else
 MANCOMPRESSED?=	no
-.endif
 
 .if defined(PATCHFILES)
 .if ${PATCHFILES:M*.zip}x != x
@@ -596,6 +590,9 @@
 .endif
 .endif
 
+.if defined(USE_LHA)
+EXTRACT_DEPENDS+=	lha:${PORTSDIR}/archivers/lha
+.endif
 .if defined(USE_ZIP)
 EXTRACT_DEPENDS+=	${LOCALBASE}/bin/unzip:${PORTSDIR}/archivers/unzip
 .endif
@@ -612,12 +609,12 @@
 		READELF SIZE STRINGS
 BINUTILS_NO_MAKE_ENV?=
 . for b in ${BINUTILS}
-${b}= ${LOCALBASE}/bin/${b:C/PP/++/:L}
+${b}=	${LOCALBASE}/bin/${b:C/PP/++/:L}
 .  if defined(GNU_CONFIGURE) || defined(BINUTILS_CONFIGURE)
-CONFIGURE_ENV+=       ${b}="${${b}}"
+CONFIGURE_ENV+=	${b}="${${b}}"
 .  endif
 .  if ${BINUTILS_NO_MAKE_ENV:M${b}} == ""
-MAKE_ENV+=    ${b}="${${b}}"
+MAKE_ENV+=	${b}="${${b}}"
 .  endif
 . endfor
 .endif
@@ -627,98 +624,6 @@
 WANT_OPENLDAP_VER=	${USE_OPENLDAP_VER}
 .endif
 
-.if defined(USE_OPENLDAP)
-.if defined(WANT_OPENLDAP_SASL)
-_OPENLDAP_FLAVOUR=	-sasl
-.else
-_OPENLDAP_FLAVOUR=
-.endif
-.if ${WANT_OPENLDAP_VER} == 23
-LIB_DEPENDS+=		ldap-2.3.2:${PORTSDIR}/net/openldap23${_OPENLDAP_FLAVOUR}-client
-.elif ${WANT_OPENLDAP_VER} == 24
-LIB_DEPENDS+=		ldap-2.4.8:${PORTSDIR}/net/openldap24${_OPENLDAP_FLAVOUR}-client
-.else
-IGNORE=			unknown OpenLDAP version: ${WANT_OPENLDAP_VER}
-.endif
-.endif
-
-.if defined(USE_OPENAL)
-_OPENAL_ALL=	al si soft alut
-_OPENAL_LIBS=	si soft
-# Default choice.
-_DEFAULT_OPENAL=	soft
-
-_OPENAL_SOFT=	openal.1:${PORTSDIR}/audio/openal-soft
-_OPENAL_SI=	openal.0:${PORTSDIR}/audio/openal
-_OPENAL_ALUT=	alut.1:${PORTSDIR}/audio/freealut
-
-.if exists(${LOCALBASE}/lib/libopenal.a)
-_HAVE_OPENAL=	si
-.elif exists(${LOCALBASE}/bin/openal-info)
-_HAVE_OPENAL=	soft
-.endif
-
-.if ${USE_OPENAL} == "yes"
-# Be friendly.
-USE_OPENAL=	${_DEFAULT_OPENAL}
-.endif
-
-__USED_OPENAL=
-_USE_OPENAL=
-.for component in ${USE_OPENAL}
-.if ${__USED_OPENAL:M${component}} == ""
-__USED_OPENAL+=	${component}
-
-.if ${_OPENAL_ALL:M${component}} == ""
-BROKEN= OPENAL mismatch: unknown component ${component}
-.elif ${_OPENAL_ALL:M${component}} == "al"
-
-# Check if the user wish matches the found OpenAL system.
-.if defined(WANT_OPENAL) && defined(_HAVE_OPENAL) && ${_HAVE_OPENAL} != ${WANT_OPENAL}
-BROKEN=		OPENAL mismatch: ${_HAVE_OPENAL} is installed, but ${WANT_OPENAL} desired
-.endif # WANT_OPENAL
-
-.if defined(_HAVE_OPENAL)
-_OPENAL_SYSTEM=	${_HAVE_OPENAL}
-.elif defined(WANT_OPENAL)
-_OPENAL_SYSTEM=	${WANT_OPENAL}
-.else
-_OPENAL_SYSTEM=	${_DEFAULT_OPENAL}
-.endif # _HAVE_OPENAL
-
-_USE_OPENAL+=	${_OPENAL_${_OPENAL_SYSTEM:U}}
-
-.else # ${_OPENAL_ALL:M${component}} == ""
-
-.if ${_OPENAL_LIBS:M${component}} == ${component}
-# Check for the system implementation to use.
-.if defined(WANT_OPENAL) && ${WANT_OPENAL} != ${component}
-BROKEN=	OPENAL mismatch: wants to use ${component}, while you wish to use ${WANT_OPENAL}
-.endif
-.if defined(_OPENAL_SYSTEM)
-BROKEN=	OPENAL mismatch: cannot use ${component} and al together.
-.endif
-.if defined(_HAVE_OPENAL) && ${_HAVE_OPENAL} != ${component}
-BROKEN=	OPENAL mismatch: wants to use ${component}, but ${_HAVE_OPENAL} is installed
-.endif
-
-_OPENAL_SYSTEM=	${component}
-
-.endif # ${_OPENAL_LIBS:M${component}} == ${component}
-
-_USE_OPENAL+=	${_OPENAL_${component:U}}
-
-.endif # ${_OPENAL_ALL:M${component}} == ""
-
-.endif # ${__USED_OPENAL:M${component} == ""
-.endfor # component in ${USE_OPENAL}
-
-.for dep in ${_USE_OPENAL}
-LIB_DEPENDS+=	${dep}
-.endfor
-
-.endif # USE_OPENAL
-
 .if defined(USE_FAM)
 DEFAULT_FAM_SYSTEM=	gamin
 # Currently supported FAM systems
@@ -1002,7 +907,7 @@
 MAKEFILE?=		Makefile
 MAKE_ENV+=		TARGETDIR=${TARGETDIR} DESTDIR=${DESTDIR} PREFIX=${PREFIX} \
 			LOCALBASE=${LOCALBASE_REL} \
-			MOTIFLIB="${MOTIFLIB}" LIBDIR="${LIBDIR}" \
+			LIBDIR="${LIBDIR}" \
 			CC="${CC}" CFLAGS="${CFLAGS}" \
 			CPP="${CPP}" CPPFLAGS="${CPPFLAGS}" \
 			LDFLAGS="${LDFLAGS}" \
@@ -1022,6 +927,18 @@
 CFLAGS:=	${CFLAGS:N-std=*} -std=${USE_CSTD}
 .endif
 
+.if defined(CFLAGS_${ARCH})
+CFLAGS+=	${CFLAGS_${ARCH}}
+.endif
+
+.if defined(USE_CXXSTD)
+CXXFLAGS:=	${CXXFLAGS:N-std=*} -std=${USE_CXXSTD}
+.endif
+
+.if defined(CXXFLAGS_${ARCH})
+CXXFLAGS+=	${CXXFLAGS_${ARCH}}
+.endif
+
 # Multiple make jobs support
 .if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE)
 _MAKE_JOBS=		#
@@ -1044,7 +961,7 @@
 PTHREAD_CFLAGS?=
 PTHREAD_LIBS?=		-pthread
 
-.if exists(/usr/bin/fetch)
+FETCH_ENV?=	SSL_NO_VERIFY_PEER=1 SSL_NO_VERIFY_HOSTNAME=1
 FETCH_BINARY?=	/usr/bin/fetch
 FETCH_ARGS?=	-AFpr
 FETCH_REGET?=	1
@@ -1051,11 +968,6 @@
 .if !defined(DISABLE_SIZE)
 FETCH_BEFORE_ARGS+=	$${CKSIZE:+-S $$CKSIZE}
 .endif
-.else
-FETCH_BINARY?=	/usr/bin/ftp
-FETCH_ARGS?=	-R
-FETCH_REGET?=	0
-.endif
 FETCH_CMD?=		${FETCH_BINARY} ${FETCH_ARGS}
 
 .if defined(RANDOMIZE_MASTER_SITES) && exists(/usr/games/random)
@@ -1164,12 +1076,12 @@
 .if ${UID} == 0
 COPYTREE_BIN=	${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \
 					2>&1) && \
-					${CHOWN} -R ${BINOWN}:${BINGRP} $$1 && \
+					${CHOWN} -Rh ${BINOWN}:${BINGRP} $$1 && \
 					${FIND} -d $$0 $$2 -type d -exec chmod 755 $$1/{} \; && \
 					${FIND} -d $$0 $$2 -type f -exec chmod ${BINMODE} $$1/{} \;' --
 COPYTREE_SHARE=	${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \
 					2>&1) && \
-					${CHOWN} -R ${SHAREOWN}:${SHAREGRP} $$1 && \
+					${CHOWN} -Rh ${SHAREOWN}:${SHAREGRP} $$1 && \
 					${FIND} -d $$0 $$2 -type d -exec chmod 755 $$1/{} \; && \
 					${FIND} -d $$0 $$2 -type f -exec chmod ${SHAREMODE} $$1/{} \;' --
 .else
@@ -1225,10 +1137,9 @@
 
 PKG_SUFX?=	.mport
 
-MOTIFLIB?=	-L${LOCALBASE}/lib -lXm -lXp
-
 ALL_TARGET?=		all
 INSTALL_TARGET?=	install
+INSTALL_TARGET+=	${LATE_INSTALL_ARGS}
 
 # This is a mid-term solution patch while pkg-comment files are
 # phased out.
@@ -4212,20 +4123,23 @@
 	for native_category in ${CATEGORIES}; do \
 		c=""; \
 		case $$native_category in \
-			accessibility)	c="Accessibility Utility"		;; \
-			archivers)		c="Archiving"					;; \
-			astro)			c="Astronomy Science Education"	;; \
-			audio)			c="Audio AudioVideo"			;; \
+			accessibility)	c="Utility Accessibility"		;; \
+			archivers)		c="Utility Archiving"					;; \
+			astro)			c="Education Science Astronomy"	;; \
+			audio)			c="AudioVideo Audio"			;; \
 			benchmarks)		c="System"						;; \
 			biology)		c="Biology Science Education"	;; \
-			cad)			c="Engineering"					;; \
-			core)			c="MidnightBSD Meta"				;; \
-			databases)		c="Database"					;; \
+			cad)			c="Graphics Engineering"					;; \
+			core)			c="System"				;; \
+			comms)			c="Utility"				;; \
+			converters)		c="Utility"				;; \
+			databases)		c="Office Database"					;; \
 			deskutils)		c="Utility"						;; \
 			devel)			c="Development"					;; \
 			dns)			c="Network"						;; \
 			elisp)			c="Development"					;; \
-			emulators)		c="Emulator"					;; \
+			editors)		c="Utility"						;; \
+			emulators)		c="System Emulator"					;; \
 			finance)		c="Finance Office"				;; \
 			ftp)			c="FileTransfer Network"		;; \
 			games)			c="Game"						;; \
@@ -4261,7 +4175,7 @@
 			www)			c="Network"						;; \
 			x11-clocks)		c="Clock Utility"				;; \
 			x11-fm)			c="FileManager"					;; \
-			xfce)			c="GTK"							;; \
+			xfce)			c="GTK XFCE"							;; \
 			zope)			c="WebDevelopment Development"	;; \
 		esac; \
 		if [ -n "$$c" ]; then \
@@ -4274,24 +4188,35 @@
 		${ECHO_MSG}; \
 	fi
 
-VALID_DESKTOP_CATEGORIES+= Application Core Development Building Debugger IDE \
-	GUIDesigner Profiling RevisionControl Translation Office Calendar \
-	ContactManagement Database Dictionary Chart Email Finance FlowChart PDA \
-	ProjectManagement Presentation Spreadsheet WordProcessor Graphics \
-	2DGraphics VectorGraphics RasterGraphics 3DGraphics Scanning OCR \
-	Photography Viewer Settings DesktopSettings HardwareSettings \
-	PackageManager Network Dialup InstantMessaging IRCClient FileTransfer \
-	HamRadio News P2P RemoteAccess Telephony WebBrowser WebDevelopment \
-	AudioVideo Audio Midi Mixer Sequencer Tuner Video TV AudioVideoEditing \
-	Player Recorder DiscBurning Game ActionGame AdventureGame ArcadeGame \
-	BoardGame BlocksGame CardGame KidsGame LogicGame RolePlaying Simulation \
-	SportsGame StrategyGame Education Art Construction Music Languages \
-	Science Astronomy Biology Chemistry Geology Math MedicalSoftware Physics \
-	Teaching Amusement Applet Archiving Electronics Emulator Engineering \
-	FileManager Shell Screensaver TerminalEmulator TrayIcon System Filesystem \
-	Monitor Security Utility Accessibility Calculator Clock TextEditor KDE \
-	GNOME GTK Qt Motif Java ConsoleOnly AdvancedSettings
+# http://standards.freedesktop.org/menu-spec/menu-spec-latest.html
+DESKTOP_CATEGORIES_MAIN=	AudioVideo Audio Video Development Education \
+	Game Graphics Network Office Science Settings System Utility
+DESKTOP_CATEGORIES_ADDITIONAL=	Building Debugger IDE GUIDesigner Profiling \
+	RevisionControl Translation Calendar ContactManagement Database \
+	Dictionary Chart Email Finance FlowChart PDA ProjectManagement \
+	Presentation Spreadsheet WordProcessor 2DGraphics VectorGraphics \
+	RasterGraphics 3DGraphics Scanning OCR Photography Publishing Viewer \
+	TextTools DesktopSettings HardwareSettings Printing PackageManager \
+	Dialup InstantMessaging Chat IRCClient Feed FileTransfer HamRadio News \
+	P2P RemoteAccess Telephony TelephonyTools VideoConference WebBrowser \
+	WebDevelopment Midi Mixer Sequencer Tuner TV AudioVideoEditing Player \
+	Recorder DiscBurning ActionGame AdventureGame ArcadeGame BoardGame \
+	BlocksGame CardGame KidsGame LogicGame RolePlaying Shooter Simulation \
+	SportsGame StrategyGame Art Construction Music Languages \
+	ArtificialIntelligence Astronomy Biology Chemistry ComputerScience \
+	DataVisualization Economy Electricity Geography Geology Geoscience \
+	History Humanities ImageProcessing Literature Maps Math \
+	NumericalAnalysis MedicalSoftware Physics Robotics Spirituality Sports \
+	ParallelComputing Amusement Archiving Compression Electronics Emulator \
+	Engineering FileTools FileManager TerminalEmulator Filesystem Monitor \
+	Security Accessibility Calculator Clock TextEditor Documentation Adult \
+	Core KDE GNOME MATE XFCE GTK Qt Motif Java ConsoleOnly
+DESKTOP_CATEGORIES_RESERVED=	Screensaver TrayIcon Applet Shell
 
+VALID_DESKTOP_CATEGORIES+=	${DESKTOP_CATEGORIES_MAIN} \
+	${DESKTOP_CATEGORIES_ADDITIONAL} \
+	${DESKTOP_CATEGORIES_RESERVED}
+
 check-desktop-entries:
 .if defined(DESKTOP_ENTRIES)
 	@set -- ${DESKTOP_ENTRIES} XXX; \
@@ -4314,7 +4239,7 @@
 		if ${ECHO_CMD} "$$3" | ${GREP} -iq '.\(png\|svg\|xpm\)$$'; then \
 			if ! ${ECHO_CMD} "$$3" | ${GREP} -iq '^/'; then \
 				${ECHO_MSG} "${PKGNAME}: Makefile warning: in desktop entry $$entry: field 3 (Icon) should be either absolute path or icon name without extension if installed icons follow Icon Theme Specification"; \
-			 fi; \
+			fi; \
                 fi; \
 		if [ -z "$$4" ]; then \
 			${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 4 (Exec) is empty"; \

Added: trunk/Mk/extensions/ldap.mk
===================================================================
--- trunk/Mk/extensions/ldap.mk	                        (rev 0)
+++ trunk/Mk/extensions/ldap.mk	2014-01-01 16:57:13 UTC (rev 15808)
@@ -0,0 +1,95 @@
+# $MidnightBSD$
+
+.if defined(_POSTMKINCLUDED) && !defined(Ldap_Post_Include)
+
+Ldap_Post_Include=			ldap.mk
+Database_Include_MAINTAINER=		ports at MidnightBSD.org
+
+# For including this file define macro USE_OPENLDAP. Defining macro like
+# USE_OPENLDAP_VER or WANT_OPENLDAP_VER will include this file too.
+#
+##
+# USE_OPENLDAP			- Add OpenLDAP client dependency.
+#				  If no version is given (by the maintainer via the port or
+#				  by the user via defined variable), try to find the
+#				  currently installed version.  Fall back to default if
+#				  necessary (OpenLDAP 2.4 = 24).
+# DEFAULT_OPENLDAP_VER
+#				- OpenLDAP default version. Can be overriden within a port.
+#				  Default: 24.
+# WANT_OPENLDAP_VER
+#				- Maintainer can set an arbitrary version of OpenLDAP by using it.
+# WANT_OPENLDAP_SASL
+#				- If set, this port depends on SASL enabled OpenLDAP client.
+# IGNORE_OPENLDAP_OPENLDAP
+#				- This variable can be defined if the ports doesn't support
+#				  one or more version of OpenLDAP.
+# WITH_OPENLDAP_VER
+#				- User defined variable to set OpenLDAP version.
+# OPENLDAP_VER
+#				- Detected OpenLDAP version.
+
+.if defined(USE_OPENLDAP)
+DEFAULT_OPENLDAP_VER?=	24
+# OpenLDAP client versions currently supported
+OPENLDAP23_LIBVER=	2.3.2
+OPENLDAP24_LIBVER=	2.4.8
+
+.if exists(${LOCALBASE}/bin/ldapwhoami)
+_OPENLDAP_VER!=	${LOCALBASE}/bin/ldapwhoami -VV 2>&1 | ${GREP} ldapwhoami | ${SED} -E 's/.*OpenLDAP: ldapwhoami (2)\.(3|4).*/\1\2/'
+.endif
+
+.if defined(WANT_OPENLDAP_VER)
+.if defined(WITH_OPENLDAP_VER) && ${WITH_OPENLDAP_VER} != ${WANT_OPENLDAP_VER}
+IGNORE=		cannot install: the port wants openldap${WANT_OPENLDAP_VER}-client and you try to install openldap${WITH_OPENLDAP_VER}-client.
+.endif
+OPENLDAP_VER=	${WANT_OPENLDAP_VER}
+.elif defined(WITH_OPENLDAP_VER)
+OPENLDAP_VER=	${WITH_OPENLDAP_VER}
+.else
+.if defined(_OPENLDAP_VER)
+OPENLDAP_VER=	${_OPENLDAP_VER}
+.else
+OPENLDAP_VER=	${DEFAULT_OPENLDAP_VER}
+.endif
+.endif # WANT_OPENLDAP_VER
+
+.if defined(_OPENLDAP_VER)
+.if ${_OPENLDAP_VER} != ${OPENLDAP_VER}
+IGNORE=	cannot install: OpenLDAP versions mismatch: openldap${_OPENLDAP_VER}-client is installed and wanted version is openldap${OPENLDAP_VER}-client
+.endif
+.endif
+
+CFLAGS+=	-DLDAP_DEPRECATED
+
+_OPENLDAP_CLIENT_PKG!=	${PKG_INFO} -Ex openldap.\*-client 2>/dev/null; ${ECHO_CMD}
+_OPENLDAP_FLAVOUR=	${_OPENLDAP_CLIENT_PKG:C/openldap//:C/-client-.*//}
+
+.if defined(WANT_OPENLDAP_SASL)
+.if !empty(_OPENLDAP_CLIENT_PKG) && empty(_OPENLDAP_FLAVOUR)
+IGNORE= cannot install: SASL support requested and ${_OPENLDAP_CLIENT_PKG} is installed
+.endif
+_OPENLDAP_FLAVOUR=	-sasl
+.endif
+
+# And now we are checking if we can use it
+.if defined(OPENLDAP${OPENLDAP_VER}_LIBVER)
+# compatability shim
+.if defined(BROKEN_WITH_OPENLDAP)
+IGNORE_WITH_OPENLDAP=${BROKEN_WITH_OPENLDAP}
+.endif
+.if defined(IGNORE_WITH_OPENLDAP)
+.	for VER in ${IGNORE_WITH_OPENLDAP}
+.		if (${OPENLDAP_VER} == "${VER}")
+IGNORE=		cannot install: doesn't work with OpenLDAP version: ${OPENLDAP_VER} (Doesn't support OpenLDAP ${IGNORE_WITH_OPENLDAP})
+.		endif
+.	endfor
+.endif # IGNORE_WITH_OPENLDAP
+LIB_DEPENDS+=	ldap-${OPENLDAP${OPENLDAP_VER}_LIBVER}:${PORTSDIR}/net/openldap${OPENLDAP_VER}${_OPENLDAP_FLAVOUR}-client
+.else
+IGNORE=		cannot install: unknown OpenLDAP version: ${OPENLDAP_VER}
+.endif # Check for correct libs
+
+.endif # defined(USE_OPENLDAP)
+
+.endif # defined(_POSTMKINCLUDED) && !defined(Ldap_Post_Include)

Added: trunk/Mk/extensions/openal.mk
===================================================================
--- trunk/Mk/extensions/openal.mk	                        (rev 0)
+++ trunk/Mk/extensions/openal.mk	2014-01-01 16:57:13 UTC (rev 15808)
@@ -0,0 +1,88 @@
+# $MidnightBSD$
+#
+# Handle dependency on OpenAL
+#
+# 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



More information about the Midnightbsd-cvs mailing list