#-*- mode: Fundamental; tab-width: 4; -*- # ex:ts=4 # # bsd.sdl.mk - Support for SDL-based ports. # # Created by: Edwin Groothuis # # 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. # # If you want to check for the availability for certain SDL ports, you # can set WANT_SDL and run it through bsd.port.pre.mk: # WANT_SDL= yes # USE_SDL= sdl # .include # .if ${HAVE_SDL:Mgraphics} # USE_SDL+= graphics # .endif # .include # Run "make -V USE_SDL" to see which libs are asked for at the end. # # # $FreeBSD$ # SDL_Include_MAINTAINER= edwin@FreeBSD.org # # These are the current supported SDL modules # _USE_SDL_ALL= gfx gui image mixer mm net sdl sound ttf # # 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= 11 _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_mixer= 2 _SUBDIR_mixer= audio _REQUIRES_mixer=sdl _VERSION_mm= 8 _SUBDIR_mm= devel _LIB_mm= SDLmm _PORTDIR_mm= sdlmm _REQUIRES_mm= sdl _VERSION_net= 0 _SUBDIR_net= net _REQUIRES_net= sdl _VERSION_sdl= 7 _SUBDIR_sdl= devel _LIB_sdl= SDL-1.1 _PORTDIR_sdl= sdl12 _VERSION_sound= 1 _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 # # If WANT_SDL is defined, check for the available libraries # .if !defined(AFTERPORTMK) .if !defined(SDL_Include_pre) SDL_Include_pre= bsd.sdl.mk HAVE_SDL?= .if defined(WANT_SDL) .for component in ${_USE_SDL_ALL} .if exists(${LOCALBASE}/lib/lib${_LIB_${component}}.so.${_VERSION_${component}}) HAVE_SDL+= ${component} .endif .endfor .endif .endif .endif # # If USE_SDL is defined, make dependencies for the libraries # .if !defined(BEFOREPORTMK) .if !defined(SDL_Include_post) .if defined(USE_SDL) SDL_Include_post= bsd.sdl.mk # # Keep some backward compatibility # .if ${USE_SDL}=="yes" USE_SDL= sdl .endif # # 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 .endif .endif