Bug 55494 - [patch] ports/Mk/bsd.sdl.mk
[patch] ports/Mk/bsd.sdl.mk
Status: Closed FIXED
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s)
Latest
Any Any
: Normal Affects Only Me
Assigned To: portmgr
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2003-08-12 12:40 UTC by edwin
Modified: 2004-01-20 19:16 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description edwin 2003-08-12 12:40:16 UTC
More and more graphical games are using SDL. Upgrade of one of the
SDL libraries requires patches in all these ports. Making a typo
in a LIB_DEPENDS is easy. USE_SDL=yes is a step in the right
directorion, but incorporating[sp] all of the SDL modules is another
step.

This patch add the same functionality to USE_SDL as bsd.gnome.mk
did to USE_GNOME:

"USE_SDL=	yes" will check for the standard SDL library.
"USE_SDL=	sdl" will check for the standard SDL library.
"USE_SDL=       sdl image ttf" will check for the SDL, sdl_image
		and sdl_ttf library.

The following SDL libraries are supported:
	    gfx gui image mixer ldbad net sdl sound ttf

Fix: 

Add this patch to bsd.port.mk:

--- bsd.port.mk 4 Aug 2003 01:17:39 -0000       1.461
+++ bsd.port.mk 12 Aug 2003 11:32:17 -0000
@@ -1362,10 +1362,7 @@
 .endif
 
 .if defined(USE_SDL)
-LIB_DEPENDS+=  SDL-1.1.5:${PORTSDIR}/devel/sdl12
-SDL_CONFIG?=   ${LOCALBASE}/bin/sdl11-config
-CONFIGURE_ENV+=        SDL_CONFIG=${SDL_CONFIG}
-MAKE_ENV+=             SDL_CONFIG=${SDL_CONFIG}
+.include "${PORTSDIR}/Mk/bsd.sdl.mk"
 .endif
 
 .if defined(USE_MOTIF)

And add this file to ports/Mk as bsd.sdl.mk

#-*- mode: Fundamental; tab-width: 4; -*-
# ex:ts=4
#
# bsd.sdl.mk - Support for SDL-based ports.
#
# Created by: Edwin Groothuis <edwin@freebsd.org>
#
# For FreeBSD committers:
# - Changes in the version number of the shared libraries are encouraged.
# - For the rest, please try to run them via the maintainer but feel free
#   to commit themselves if nothing breaks.
#
# For ports-developers:
# If your port needs SDL or one of the SDL modules, you can easily
# include them with the "USE_SDL=" statement. For example if you need
# the standard SDL and SDL_sound, use "USE_SDL=sdl sound" and the
# required libraries are included in your LIB_DEPENDS.
#

#
# $FreeBSD$
#

.if !defined(SDL_Include)

SDL_Include=			bsd.sdl.mk
SDL_Include_MAINTAINER=		edwin@FreeBSD.org

#
# These are the current supported SDL modules
#
_USE_SDL_ALL=	gfx gui image mixer ldbad net sdl sound ttf

#
# Keep some backward compatibility
#
.if ${USE_SDL}=="yes"
USE_SDL=sdl
.endif

#
# Variables used to determine what is needed:
# _VERSION_xxx	version of the shared library (required)
# _SUBDIR_xxx	subdirectory below ${PORTSDIR} (required)
# _PORTDIR_xxx	subdirectory below ${PORTSDIR}/${_SUBDIR_xxx}, default sdl_xxx
# _LIB_xxx		name of the shared lib, default SDL_xxx
# _REQUIRES_xxx	also needs these SDL libraries
# 

_VERSION_gfx=	8
_SUBDIR_gfx=	graphics
_REQUIRES_gfx=	sdl

_VERSION_gui=	0
_SUBDIR_gui=	x11-toolkits
_REQUIRES_gui=	sdl image ttf

_VERSION_image=	10
_SUBDIR_image=	graphics
_REQUIRES_image=sdl

_VERSION_ldbad=	4
_SUBDIR_ldbad=	devel
_REQUIRES_ldbad=sdl

_VERSION_mixer=	2
_SUBDIR_mixer=	audio
_REQUIRES_mixer=sdl

_VERSION_net=	0
_SUBDIR_net=	net
_REQUIRES_net=	sdl

_VERSION_sdl=	5
_SUBDIR_sdl=	devel
_LIB_sdl=		SDL-1.1
_PORTDIR_sdl=	sdl12

_VERSION_sound=	0
_SUBDIR_sound=	audio
_LIB_sound=		SDL_sound-1.0
_REQUIRES_sound=sdl

_VERSION_ttf=	3
_SUBDIR_ttf=	graphics
_REQUIRES_ttf=	sdl

#
# Update the variables if they need the default values.
#
.for component in ${_USE_SDL_ALL}
. if !defined(_LIB_${component})
_LIB_${component}=SDL_${component}
. endif
. if !defined(_PORTDIR_${component})
_PORTDIR_${component}=sdl_${component}
. endif
. if !defined(_REQUIRES_${component})
_REQUIRES_${component}=
. endif
.endfor

#
# Check if all the values given in USE_SDL are valid.
#
_USE_SDL=
.for component in ${USE_SDL}
. if ${_USE_SDL_ALL:M${component}}==""
BROKEN=	"Unknown SDL component ${component}"
. endif
_USE_SDL+=	${_REQUIRES_${component}} ${component}
.endfor

#
# Uniquefy[sp] the list of libs required
#
__USE_SDL=
.for component in ${_USE_SDL}
. if ${__USE_SDL:M${component}}==""
__USE_SDL+= ${component}
. endif
.endfor

#
# Finally make the list of libs required
#
.for component in ${__USE_SDL}
LIB_DEPENDS+=	${_LIB_${component}}.${_VERSION_${component}}:${PORTSDIR}/${_SUBDIR_${component}}/${_PORTDIR_${component}}
.endfor

#
# "Normal" dependencies and variables
#
BUILD_DEPENDS+=	${SDL_CONFIG}:${PORTSDIR}/${_SUBDIR_sdl}/${_PORTDIR_sdl}
SDL_CONFIG?=	${LOCALBASE}/bin/sdl11-config
CONFIGURE_ENV+=	SDL_CONFIG=${SDL_CONFIG}
MAKE_ENV+=		SDL_CONFIG=${SDL_CONFIG}

.endif
Comment 1 Edwin Groothuis freebsd_committer 2003-08-12 12:42:52 UTC
Responsible Changed
From-To: freebsd-ports-bugs->portmgr

Over to portmgr for approval. 
I volunteer for patching all the ports which use sdl and the sdl libraries.
Comment 2 edwin 2004-01-12 02:00:03 UTC
This update adds libSDLmm and updates the revision numbers of a
couple of libraries.

--- bsd.sdl.mk.orig	Mon Jan 12 12:48:37 2004
+++ bsd.sdl.mk	Mon Jan 12 12:54:58 2004
@@ -29,7 +29,7 @@
 #
 # These are the current supported SDL modules
 #
-_USE_SDL_ALL=	gfx gui image mixer ldbad net sdl sound ttf
+_USE_SDL_ALL=	gfx gui image mixer ldbad mm net sdl sound ttf
 
 #
 # Keep some backward compatibility
@@ -47,7 +47,7 @@
 # _REQUIRES_xxx	also needs these SDL libraries
 # 
 
-_VERSION_gfx=	8
+_VERSION_gfx=	10
 _SUBDIR_gfx=	graphics
 _REQUIRES_gfx=	sdl
 
@@ -67,6 +67,11 @@
 _SUBDIR_mixer=	audio
 _REQUIRES_mixer=sdl
 
+_VERSION_mm=	8
+_SUBDIR_mm=		devel
+_LIB_mm=		SDLmm
+_REQUIRES_mm=	sdl
+
 _VERSION_net=	0
 _SUBDIR_net=	net
 _REQUIRES_net=	sdl
@@ -76,7 +81,7 @@
 _LIB_sdl=		SDL-1.1
 _PORTDIR_sdl=	sdl12
 
-_VERSION_sound=	0
+_VERSION_sound=	1
 _SUBDIR_sound=	audio
 _LIB_sound=		SDL_sound-1.0
 _REQUIRES_sound=sdl


To test it, for example with games/enigma, use this patch on it:
RCS file: /home/pcvs/ports/games/enigma/Makefile,v
retrieving revision 1.15
diff -u -r1.15 Makefile
--- Makefile    7 Jan 2004 21:36:55 -0000       1.15
+++ Makefile    12 Jan 2004 01:59:07 -0000
@@ -16,11 +16,9 @@
 MAINTAINER=    edwin@mavetju.org
 COMMENT=       Enigma is a reimplementation of Oxyd, a puzzle game
 
-BUILD_DEPENDS= sdl11-config:${PORTSDIR}/devel/sdl12 \
+BUILD_DEPENDS= lua:${PORTSDIR}/lang/lua
+
-               lua:${PORTSDIR}/lang/lua
-LIB_DEPENDS=   SDL_mixer.2:${PORTSDIR}/audio/sdl_mixer \
-               SDL_image.10:${PORTSDIR}/graphics/sdl_image \
-               SDL_gfx.10:${PORTSDIR}/graphics/sdl_gfx
+USE_SDL=       gfx image mixer sdl
 
 GNU_CONFIGURE= yes
 USE_XLIB=      yes



-- 
Edwin Groothuis      |            Personal website: http://www.mavetju.org
edwin@mavetju.org    |          Weblog: http://weblog.barnet.com.au/edwin/
Comment 3 Joe Marcus Clarke freebsd_committer 2004-01-14 07:29:31 UTC
State Changed
From-To: open->analyzed

This patch is currently being tested on bento.
Comment 4 Joe Marcus Clarke freebsd_committer 2004-01-20 19:15:57 UTC
State Changed
From-To: analyzed->closed

Committed, thanks!