Subject: Re: Conversion of mplayer to options framework
To: Dieter Baron <dillo@danbala.tuwien.ac.at>
From: Julio M. Merino Vidal <jmmv84@gmail.com>
List: tech-pkg
Date: 06/01/2005 16:58:25
--=-nKrg9SthB1TG5pWcDVdq
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Wed, 2005-06-01 at 15:32 +0200, Dieter Baron wrote:
> In article <20050601120745.GK1529@dmath5.geometrie.tuwien.ac.at> Thomas wrote:
> : The option names for at least runtime-cpudetection, win32, xvid,
> : and real should be prefixed with "mplayer-" because I don't think
> : other packages will use them.
> 
>   Can the win32-codecs package be installed later and still be used by
> mplayer?  That is how xine-lib handles this.

Yes, it can (just tried it).  However, do we want to do this?  It seems
a bit inconsistent (i.e., all other options add a dependency, while the
win32/real ones would not).

Personally, I prefer removing them as dependencies, but keeping the
mplayer-win32/real options to optionally remove the glue code (would
anyone want to do that?).

>   The option xvid is not handled.

True; seen that while documenting the options.

>   Also, if MPLAYER_DISABLE_DRIVERS is set, please add a line to
> _DEPRECATED_WARNING (see bsd.options.mk, the loop that handles
> PKG_OPTIONS_LEGACY_VARS).  You don't need to add deprecated variables
> to BUILD_DEFS, the information is recorded via PKG_OPTIONS.

OK, done.

The new file is attached.

Thanks for the reviews!

-- 
Julio M. Merino Vidal <jmmv84@gmail.com>
http://www.livejournal.com/users/jmmv/
The NetBSD Project - http://www.NetBSD.org/

--=-nKrg9SthB1TG5pWcDVdq
Content-Disposition: attachment; filename=options.mk
Content-Type: text/plain; name=options.mk; charset=UTF-8
Content-Transfer-Encoding: 7bit

# $NetBSD$

.if !empty(PKGNAME) && empty(PKGNAME:Mmplayer-share*)

PKG_OPTIONS_VAR=	PKG_OPTIONS.${PKGNAME:C/-[0-9].*//}

.include "../../mk/bsd.prefs.mk"

# -------------------------------------------------------------------------
# Define PKG_SUPPORTED_OPTIONS based on the current package and system.
# -------------------------------------------------------------------------

# Options supported by both mplayer* or mencoder*.
PKG_SUPPORTED_OPTIONS=	gif jpeg mad dv dvdread oss png theora vorbis

# Set options based on the specific package being built.
.if !empty(PKGNAME:M*mplayer*)
PKG_SUPPORTED_OPTIONS+=	esound mplayer-menu nas sdl

.  if ${OPSYS} != "SunOS"
PKG_SUPPORTED_OPTIONS+=	arts
.  endif
.elif !empty(PKGNAME:M*mencoder*)
PKG_SUPPORTED_OPTIONS+=	lame
.endif

# OS-specific options.
.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "Linux" || ${OPSYS} == "NetBSD"
PKG_SUPPORTED_OPTIONS+=	cdparanoia
.elif ${OPSYS} == "SunOS"
PKG_SUPPORTED_OPTIONS+=	mlib
.endif

# Platform-specific options.
.if ${MACHINE_ARCH} == "i386"
PKG_SUPPORTED_OPTIONS+= mplayer-runtime-cpudetection mplayer-win32 \
			mplayer-xvid
.endif
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
    ${MACHINE_ARCH} == "alpha"
PKG_SUPPORTED_OPTIONS+=	mplayer-real
.endif

# -------------------------------------------------------------------------
# Define PKG_SUGGESTED_OPTIONS.
# -------------------------------------------------------------------------

PKG_SUGGESTED_OPTIONS+=	cdparanoia dv dvdread gif jpeg mad mplayer-menu \
			oss png mplayer-real theora vorbis \
			mplayer-runtime-cpudetection mplayer-win32 \
			mplayer-xvid
.if !empty(PKGNAME:M*mplayer*)
PKG_SUGGESTED_OPTIONS+=	arts esound nas sdl
.elif !empty(PKGNAME:M*mencoder*)
PKG_SUGGESTED_OPTIONS+=	lame
.endif

# -------------------------------------------------------------------------
# Define PKG_SUGGESTED_OPTIONS based on deprecated variables.
# -------------------------------------------------------------------------

BUILD_DEFS+=		MPLAYER_DISABLE_DRIVERS
.for d in ${MPLAYER_DISABLE_DRIVERS}
PKG_SUGGESTED_OPTIONS+=	-${d:S/esd/esound/}
_DEPRECATED_WARNING:=	${_DEPRECATED_WARNING} "Deprecated variable MPLAYER_DISABLE_DRIVERS=${d} used; use PKG_DEFAULT_OPTIONS+=-${d:S/esd/esound/} instead."
.endfor
.undef d

.if ${MACHINE_ARCH} == "i386"
PKG_OPTIONS_LEGACY_VARS+=	\
	MPLAYER_ENABLE_RUNTIME_CPU_DETECTION:mplayer-runtime-cpudetection
.endif

.if ${OPSYS} == "SunOS"
PKG_OPTIONS_LEGACY_VARS+=	MPLAYER_USE_MEDIALIB:mlib
.endif

# -------------------------------------------------------------------------
# Handle chosen options.
# -------------------------------------------------------------------------

.include "../../mk/bsd.options.mk"

.if !empty(PKG_OPTIONS:Marts)
CONFIGURE_ARGS+=	--enable-arts
.  include "../../audio/arts/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-arts
.endif

.if !empty(PKG_OPTIONS:Mcdparanoia)
CONFIGURE_ARGS+=	--enable-cdparanoia
CONFIGURE_ARGS+=	--with-cdparanoiaincdir="${BUILDLINK_PREFIX.cdparanoia}/include/cdparanoia"
.  include "../../audio/cdparanoia/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-cdparanoia
.endif

.if !empty(PKG_OPTIONS:Mdv)
CONFIGURE_ARGS+=	--enable-libdv
.  include "../../multimedia/libdv/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-libdv
.endif

.if !empty(PKG_OPTIONS:Mdvdread)
CONFIGURE_ARGS+=	--enable-dvdread
.  include "../../multimedia/libdvdread/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-dvdread
.endif

.if !empty(PKG_OPTIONS:Mesound)
CONFIGURE_ARGS+=	--enable-esd
.  include "../../audio/esound/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-esd
.endif

.if !empty(PKG_OPTIONS:Mgif)
CONFIGURE_ARGS+=	--enable-gif
.  include "../../graphics/libungif/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-gif
.endif

.if !empty(PKG_OPTIONS:Mjpeg)
CONFIGURE_ARGS+=	--enable-jpeg
.  include "../../graphics/jpeg/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-jpeg
.endif

.if !empty(PKG_OPTIONS:Mlame)
#CONFIGURE_ARGS+=	--enable-toolame
.  include "../../audio/lame/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-toolame
.endif

.if !empty(PKG_OPTIONS:Mmad)
CONFIGURE_ARGS+=	--enable-mad
.  include "../../audio/libmad/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-mad
.endif

.if !empty(PKG_OPTIONS:Mmlib)
CONFIGURE_ARGS+=	--enable-mlib
.else
CONFIGURE_ARGS+=	--disable-mlib
.endif

.if !empty(PKG_OPTIONS:Mmplayer-menu)
CONFIGURE_ARGS+=	--enable-menu
.else
CONFIGURE_ARGS+=	--disable-menu
.endif

.if !empty(PKG_OPTIONS:Mmplayer-real)
EVAL_PREFIX+=		PREFIX.realplayer-codecs=realplayer-codecs
PREFIX.realplayer-codecs_DEFAULT=	${LOCALBASE}
CONFIGURE_ARGS+=	--enable-real
CONFIGURE_ARGS+=	--with-reallibdir="${PREFIX.realplayer-codecs}/lib/RealPlayer8-Codecs"
DEPENDS+=		realplayer-codecs>=8nb2:../../multimedia/realplayer-codecs
.else
CONFIGURE_ARGS+=	--disable-real
.endif

.if !empty(PKG_OPTIONS:Mmplayer-runtime-cpudetection)
CONFIGURE_ARGS+=	--enable-runtime-cpudetection
.else
CONFIGURE_ARGS+=	--disable-runtime-cpudetection
.endif

.if !empty(PKG_OPTIONS:Mmplayer-win32)
EVAL_PREFIX+=		PREFIX.win32-codecs=win32-codecs
PREFIX.win32-codecs_DEFAULT=	${LOCALBASE}
CONFIGURE_ARGS+=	--enable-win32
CONFIGURE_ARGS+=	--with-win32libdir="${PREFIX.win32-codecs}/lib/win32"
DEPENDS+=		win32-codecs>=011227:../../multimedia/win32-codecs
.else
CONFIGURE_ARGS+=	--disable-win32
.endif

.if !empty(PKG_OPTIONS:Mmplayer-xvid)
CONFIGURE_ARGS+=	--enable-xvid
.  include "../../multimedia/xvidcore/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-xvid
.endif

.if !empty(PKG_OPTIONS:Mnas)
CONFIGURE_ARGS+=	--enable-nas
.  include "../../audio/nas/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-nas
.endif

.if !empty(PKG_OPTIONS:Moss)
CONFIGURE_ARGS+=	--enable-ossaudio
.  include "../../mk/ossaudio.buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-ossaudio
.endif

.if !empty(PKG_OPTIONS:Mpng)
CONFIGURE_ARGS+=	--enable-png
.  include "../../graphics/png/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-png
.endif

.if !empty(PKG_OPTIONS:Msdl)
CONFIGURE_ARGS+=	--enable-sdl
.  include "../../devel/SDL/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-sdl
.endif

.if !empty(PKG_OPTIONS:Mtheora)
CONFIGURE_ARGS+=	--enable-theora
.  include "../../multimedia/libtheora/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-theora
.endif

.if !empty(PKG_OPTIONS:Mvorbis)
CONFIGURE_ARGS+=	--enable-vorbis
.  include "../../audio/libvorbis/buildlink3.mk"
.else
CONFIGURE_ARGS+=	--disable-vorbis
.endif

.endif # !empty(PKGNAME) && empty(PKGNAME:Mmplayer-share*)

--=-nKrg9SthB1TG5pWcDVdq--