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
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.
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/
State Changed From-To: open->analyzed This patch is currently being tested on bento.
State Changed From-To: analyzed->closed Committed, thanks!