freebsd-ports/emulators/xmame/Makefile
Mario Sergio Fujikawa Ferreira 34ab4f9ae7 Deploy USE_GNOMENG infrastructure
PR:		42199
Submitted by:	Edwin Groothuis <edwin@mavetju.org>
2002-08-30 13:41:06 +00:00

327 lines
8.3 KiB
Makefile

# New ports collection makefile for: xmame
# Date created: 4 Sep 1999
# Whom: Donald Burr <dburr@FreeBSD.org>
#
# $FreeBSD$
#
PORTNAME?= xmame
PORTVERSION?= 0.60.1
CATEGORIES= emulators
MASTER_SITES= http://x.mame.net/download/ \
http://www.mame.net/zips/ \
http://cheat.retrogames.com/ \
http://www.win.tue.nl/~stijn/xmame/
DISTNAME= xmame-${XMAMEVERSION:S/p/pre/}
DIST_SUBDIR= xmame
MAINTAINER?= stijn@win.tue.nl
USE_BZIP2= yes
USE_GMAKE= yes
USE_GNOMENG= yes
MAN6= x${MAMEMESS}.6
XMAMEVERSION?= ${PORTVERSION}
# Are we building MAME, MESS or PinMAME? (also set by slave ports)
MAMEMESS?= mame
PLIST_SUB+= MAMEMESS="x${MAMEMESS}" SPOOLGAMES="${SPOOLGAMES}"
.if ${MAMEMESS} == "mame"
PLIST_SUB+= MAMEONLY="" MESSONLY="@comment " PINMAMEONLY="@comment "
.else
.if ${MAMEMESS} == "mess"
PLIST_SUB+= MAMEONLY="@comment " MESSONLY="" PINMAMEONLY="@comment "
.else
.if ${MAMEMESS} == "pinmame"
PLIST_SUB+= MAMEONLY="@comment " MESSONLY="@comment " PINMAMEONLY=""
.else
.error MAMEMESS must be set to one of "mame", "mess" or "pinmame".
.endif
.endif
.endif
# Where do we want game spool data?
SPOOLGAMES?= /var/games
# Docs list
GENERALDOCS= changes.unix \
liesmich.unix \
multiplayer-readme.txt \
xmame-doc-1.html \
xmame-doc-2.html \
xmame-doc-3.html \
xmame-doc-4.html \
xmame-doc-5.html \
xmame-doc-6.html \
xmame-doc-7.html \
xmame-doc-8.html \
xmame-doc.html \
xmame-gdoc-1.html \
xmame-gdoc-2.html \
xmame-gdoc-3.html \
xmame-gdoc-4.html \
xmame-gdoc-5.html \
xmame-gdoc-6.html \
xmame-gdoc-7.html \
xmame-gdoc-8.html \
xmame-gdoc.html \
xmame.css \
xmame-doc.lyx \
xmame-doc.txt \
ctrlr.txt \
dga2.txt
XMAMEDOCS= changes.mame \
gamelist.mame \
readme.mame
XMESSDOCS= changes.mess \
credits.mess \
gamelist.mess \
readme.mess \
messroms.txt \
imgtool.txt \
messroms.txt
PINMAMEDOCS= pinmame/simulation.txt \
pinmame/whatsnew.txt \
pinmame/pinmame.txt \
pinmame/gamelist.txt \
pinmame/keys.txt \
pinmame/sounds.dat
GLDOCS= changes.opengl
.if ${MAMEMESS} == "mame"
ALLDOCS= ${GENERALDOCS} ${XMAMEDOCS}
.else
.if ${MAMEMESS} == "mess"
ALLDOCS= ${GENERALDOCS} ${XMESSDOCS}
.else
ALLDOCS= ${GENERALDOCS} ${PINMAMEDOCS}
.endif
.endif
PKGOPTS= ${FILESDIR}/pkg-opts
#
# Various options are processed here. Note that due to a bug in make(1), at
# present the conditionals are suboptimal. See PR bin/34032.
#
# Option WITH_DATFILES
.if ${MAMEMESS} == "mame"
.if !defined(WITH_DATFILES)
WITH_DATFILES= yes
.endif
.if ${WITH_DATFILES:L} != "no"
PLIST_SUB+= DATFILES=""
BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip
HIVER= 7
DISTFILES+= ${DISTNAME}${EXTRACT_SUFX} \
hsdat${HIVER}.zip history.zip cheat.zip
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
post-extract:
cd ${WRKDIR} && \
unzip -q ${DISTDIR}/${DIST_SUBDIR}/hsdat${HIVER}.zip hiscore.dat
cd ${WRKDIR} && \
unzip -q ${DISTDIR}/${DIST_SUBDIR}/history.zip history.dat
cd ${WRKDIR} && \
unzip -q ${DISTDIR}/${DIST_SUBDIR}/cheat.zip cheat.dat
.else
PLIST_SUB+= DATFILES="@comment "
.endif
.endif
# Option WITH_ASM68K
.if !defined(WITH_ASM68K)
WITH_ASM68K= no
.endif
.if ${WITH_ASM68K:L} == "yes"
ASM_COMMENT=
.else
ASM_COMMENT=\#
.endif
# Option WITH_OPTIMIZATION
.if defined(WITH_OPTIMIZATION)
.if ${WITH_OPTIMIZATION:L} == "yes"
CFLAGS+= -O3 -Wall -Wno-unused -funroll-loops \
-fstrength-reduce -fomit-frame-pointer -ffast-math \
-malign-functions=4 -malign-jumps=4 -malign-loops=4
.endif
.endif
# Option DISPLAY_TARGET
.if !defined(DISPLAY_TARGET)
DISPLAY_TARGET=sdl
.endif
.if ${DISPLAY_TARGET:L} == "opengl"
CFLAGS+= ${PTHREAD_CFLAGS}
USE_MESA= yes
DISPLAY_METHOD= xgl
PLIST_SUB+= OPENGL=""
ALL_DOCS+= ${GLDOCS}
.else
PLIST_SUB+= OPENGL="@comment "
.if ${DISPLAY_TARGET:L} == "svgalib"
LIB_DEPENDS= vga.1:${PORTSDIR}/graphics/svgalib
CFLAGS+= -I${LOCALBASE}/include
MAKE_ENV+= LOCALBASE=${LOCALBASE}
DISPLAY_METHOD= svgalib
.else
.if ${DISPLAY_TARGET:L} == "x11"
DISPLAY_METHOD= x11
.else
.if ${DISPLAY_TARGET:L} != "sdl"
pre-everything::
@${ECHO_MSG} "You must select a valid DISPLAY_TARGET. Refer to"
@${ECHO_MSG} "'make options' for more information."
@exit 1
.endif
LIB_DEPENDS= SDL-1.1.4:${PORTSDIR}/devel/sdl12
SDL_CONFIG?= ${LOCALBASE}/bin/sdl11-config
MAKE_ENV+= SDL_CONFIG=${SDL_CONFIG}
DISPLAY_METHOD= SDL
.endif
.endif
.endif
.if ${DISPLAY_TARGET:L} != "svgalib"
USE_XPM= yes
USE_X_PREFIX= yes
.endif
PKGNAMESUFFIX=-${DISPLAY_METHOD:L}
# Option WITH_ESOUND
.if !defined(WITH_ESOUND)
WITH_ESOUND= no
.endif
.if ${WITH_ESOUND:L} == "yes"
ESOUNDCOMMENT=
USE_GNOME= esound
.else
ESOUNDCOMMENT=\#\
.endif
# Option WITH_NETWORK
.if ${MAMEMESS} == "mame"
.if !defined(WITH_NETWORK)
WITH_NETWORK= yes
.endif
.if ${WITH_NETWORK:L} != "no"
NETWORK=
.else
NETWORK=\#\
.endif
.endif
# USB joysticks are only enabled on -STABLE because of conflicting USB
# prototypes in -STABLE & -CURRENT.
.include <bsd.port.pre.mk>
.if ${OSVERSION} >= 500000
JOYUSBCOMMENT=\#\
.else
JOYUSBCOMMENT=
.endif
#
# Regular targets
#
options:
@(${ECHO_MSG} "===> Build options for ${PKGNAME}:"; \
${PERL} -ne '/^#/ || /^\s/ && print || \
print sprintf "* %s [%s]\n %s", split(/\|/)' ${PKGOPTS}) | \
$${PAGER:-/usr/bin/more}
pre-everything::
.if !defined(BATCH)
@${TEST} -r ${PKGOPTS} && \
(${ECHO_MSG} '-------------------------------------------------------------------------'; \
${ECHO_MSG} 'Perform a "make options" to see a list of available installation options.'; \
${ECHO_MSG} '-------------------------------------------------------------------------';)
.endif
# Some simple patches that don't warrant a separate patch
post-patch:
${PERL} -pi -e 's@SDL/@SDL11/@' ${WRKSRC}/src/unix/video-drivers/SDL.c
${PERL} -pi -e 's@png.h@../../png.h@' \
${WRKSRC}/src/unix/video-drivers/glexport.c
${PERL} -pi -e 's@malloc.h@stdlib.h@' \
${WRKSRC}/src/unix/video-drivers/gljpg.c
${PERL} -pi -e 's@asm/io.h@machine/cpufunc.h@' \
${WRKSRC}/src/unix/video-drivers/twkuser.c
# The large number of sed regexes here is intended to make this port a whole
# lot easier to maintain - please don't convert them into a patch.
do-configure:
${SED} -e "s@= gcc@?= ${CC}@g" \
-e "s@^CFLAGS.*@CFLAGS ?= ${CFLAGS}@g" \
-e "s@lib/x\$$(TARGET)@share/x\$$(TARGET)@g" \
-e "s@/usr/X11R6@${X11BASE}@g" \
-e "s@-g bin@-g wheel@g" \
-e "s@^ARCH = linux@ARCH = freebsd@g" \
-e "s@# X11_DGA@X11_DGA@g" \
-e "s@# JOY_USB@${JOYUSBCOMMENT}JOY_USB@g" \
-e "s@= x11@= ${DISPLAY_METHOD}@g" \
-e "s@= mame@= ${MAMEMESS}@g" \
-e "s@# X86_ASM@${ASM_COMMENT}X86_ASM@g" \
-e "s@# SOUND_ESOUND@${ESOUNDCOMMENT}SOUND_ESOUND@g" \
-e "s@# MAME_NET@${NETWORK}MAME_NET@g" \
-e "s@GLLIBS=.-ldl@GLLIBS= ${PTHREAD_LIBS}@g" \
${WRKSRC}/makefile.unix > ${WRKSRC}/Makefile
post-build:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} SDL_VIDEODRIVER=aalib \
${GMAKE} doc/x${MAMEMESS}.6
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} SDL_VIDEODRIVER=aalib \
${GMAKE} doc/x${MAMEMESS}rc.dist
@${CP} ${WRKSRC}/doc/x${MAMEMESS}rc.dist \
${WRKSRC}/doc/x${MAMEMESS}rc.dist.sed
${SED} -e "s@^spooldir.*\$$@spooldir ${SPOOLGAMES}/x${MAMEMESS}@" \
-e "s@^rompath.*\$$@rompath ${PREFIX}/share/x${MAMEMESS}/roms@" \
${WRKSRC}/doc/x${MAMEMESS}rc.dist.sed > ${WRKSRC}/doc/x${MAMEMESS}rc.dist
post-install:
${MV} ${PREFIX}/bin/x${MAMEMESS}.${DISPLAY_METHOD} \
${PREFIX}/bin/x${MAMEMESS}
${CHOWN} root:games ${PREFIX}/bin/x${MAMEMESS}
${CHMOD} u-s,g+s ${PREFIX}/bin/x${MAMEMESS}
${MKDIR} ${PREFIX}/share/x${MAMEMESS} ${PREFIX}/share/x${MAMEMESS}/roms
${MKDIR} ${SPOOLGAMES}/x${MAMEMESS}
${CHOWN} -R root:games ${SPOOLGAMES}/x${MAMEMESS}
${CHMOD} 775 ${SPOOLGAMES}/x${MAMEMESS}
${INSTALL_DATA} ${WRKSRC}/doc/x${MAMEMESS}rc.dist \
${PREFIX}/etc/x${MAMEMESS}rc.sample
${LN} -sf ${PREFIX}/etc/x${MAMEMESS}rc \
${PREFIX}/share/x${MAMEMESS}/x${MAMEMESS}rc
.if !defined(NOPORTDOCS)
${MKDIR} ${PREFIX}/share/doc/x${MAMEMESS}
.for file in ${ALLDOCS}
${INSTALL_DATA} ${WRKSRC}/doc/${file} ${PREFIX}/share/doc/x${MAMEMESS}
.endfor
.endif
.if ${MAMEMESS} == "mess"
${INSTALL_DATA} ${WRKSRC}/doc/sysinfo.dat \
${PREFIX}/share/xmess/history.dat
.endif
.if ${MAMEMESS} == "mame" && defined(WITH_DATFILES) && ${WITH_DATFILES} == "yes"
${INSTALL_DATA} ${WRKDIR}/hiscore.dat ${PREFIX}/share/xmame
${INSTALL_DATA} ${WRKDIR}/history.dat ${PREFIX}/share/xmame
${INSTALL_DATA} ${WRKDIR}/cheat.dat ${PREFIX}/share/xmame
.endif
.include <bsd.port.post.mk>