summaryrefslogtreecommitdiff
path: root/emulators/xmame/Makefile
blob: becda585a0563b63c9832d19cfa0306e06d7f053 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# $NetBSD: Makefile,v 1.150 2007/03/25 20:42:14 wiz Exp $
#

DISTNAME=		xmame-0.106
CATEGORIES=		emulators games x11
MASTER_SITES=		http://x.mame.net/download/
EXTRACT_SUFX=		.tar.bz2

MAINTAINER=		kristerw@NetBSD.org
HOMEPAGE=		http://x.mame.net/
COMMENT=		X11 emulator for old arcade machines

LICENSE=		mame-license
RESTRICTED=		selling is not allowed
NO_SRC_ON_CDROM=	${RESTRICTED}
NO_BIN_ON_CDROM=	${RESTRICTED}

USE_TOOLS+=		gmake
MAKE_FILE=		makefile.unix
TARGET=			${PKGBASE}
UNLIMIT_RESOURCES=	datasize

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

ROMPATH=		${PREFIX}/share/${TARGET}
SPOOLDIR=		${VARBASE}/games/${TARGET}

MAKE_FLAGS+=		TARGET="${TARGET:S/x//}"
MAKE_FLAGS+=		X11INC= X11LIB=

# Network support is broken since xmame-0.85
#MAKE_FLAGS+=		XMAME_NET=1

# Determine which CPU-specific code to use.
.for MARCH in alpha m68k i386 ia64 mips
MAME_CPU.${MARCH}?=	${MARCH}
.endfor
MAME_CPU.x86_64?=	amd64
.if !defined(MAME_CPU.${MACHINE_ARCH})
.  include "../../mk/endian.mk"
_MAME_CPU.big-endian=		risc
_MAME_CPU.little-endian=	risc_lsb
_MAME_CPU.unknown-endian=	risc		# assume unknown == big
MAME_CPU.${MACHINE_ARCH}?=	${_MAME_CPU.${MACHINE_ENDIAN}-endian}
.endif

# Determine which operating system defaults to use.
MAME_ARCH.NetBSD?=	netbsd
MAME_ARCH.Linux?=	linux
MAME_ARCH.SunOS?=	solaris
MAME_ARCH.DragonFly?=	dragonfly
.if !defined(MAME_ARCH.${OPSYS})
MAME_ARCH.${OPSYS}?=	generic
.endif

MAKE_FLAGS+=		DISPLAY_METHOD=${MAME_DISP_METHOD:Q}
MAKE_FLAGS+=		MY_CPU="${MAME_CPU.${MACHINE_ARCH}}"
MAKE_FLAGS+=		ARCH="${MAME_ARCH.${OPSYS}}"

.if ${X11_TYPE} == "modular"
.include "../../x11/libXv/buildlink3.mk"
.include "../../x11/libXxf86dga/buildlink3.mk"
.include "../../x11/libXxf86vm/buildlink3.mk"
MAKE_FLAGS+=		X11_DGA=1
MAKE_FLAGS+=		X11_XV=1
.else 
.  if exists(${X11BASE}/include/X11/extensions/xf86dga.h)
MAKE_FLAGS+=		X11_DGA=1
.  endif
.  if exists(${X11BASE}/include/X11/extensions/Xv.h)
MAKE_FLAGS+=		X11_XV=1
.  endif
.endif

# If supported, add appropriate definitions to build joystick drivers.
.if exists(/usr/include/machine/joystick.h) ||				\
    exists(/usr/include/linux/joystick.h)
MAKE_FLAGS+=		JOY_STANDARD=1
.endif
.if ${OPSYS} == "NetBSD"
.  if exists(/usr/lib/libusb.a) || exists(/usr/lib/libusbhid.a)
MAKE_FLAGS+=		JOY_USB=1
.  endif
.endif

OWN_DIRS=		${SPOOLDIR}
INSTALLATION_DIRS=	bin ${PKGMANDIR}/man6

post-configure:
	cd ${WRKSRC}/doc;						\
	${SED}	-e "s|@ROMPATH@|${ROMPATH}|g"				\
		-e "s|@SPOOLDIR@|${SPOOLDIR}|g"				\
		${TARGET}rc.dist > ${TARGET}rc
.if !empty(MAKE_FLAGS:M*USB*)
	${LN} -fs /usr/include/usb.h ${BUILDLINK_DIR}/include
	for FILE in /usr/lib/libusb*; do				\
		${LN} -fs $$FILE ${BUILDLINK_DIR}/lib;			\
	done
.endif

do-install:
	${INSTALL_PROGRAM} ${WRKSRC}/${TARGET}.${MAME_DISP_METHOD}	\
		${PREFIX}/bin/${TARGET}
	${INSTALL_PROGRAM} ${WRKSRC}/romcmp ${PREFIX}/bin/romcmp
	${INSTALL_PROGRAM} ${WRKSRC}/chdman ${PREFIX}/bin/chdman
	${INSTALL_PROGRAM} ${WRKSRC}/xml2info ${PREFIX}/bin/xml2info
	${INSTALL_MAN} ${WRKSRC}/doc/${TARGET}.6			\
		${PREFIX}/${PKGMANDIR}/man6/${TARGET}.6
	${INSTALL_DATA_DIR} ${ROMPATH}
	${INSTALL_DATA} ${WRKSRC}/doc/${TARGET}rc ${ROMPATH}/${TARGET}rc
	${INSTALL_DATA_DIR}  ${PREFIX}/share/doc/html/xmame/
	${INSTALL_DATA} ${WRKSRC}/doc/*.html ${PREFIX}/share/doc/html/xmame/
	${INSTALL_DATA_DIR}  ${PREFIX}/share/doc/xmame
	${INSTALL_DATA} ${WRKSRC}/doc/xmame-doc.txt ${PREFIX}/share/doc/xmame

# Pragma once is not needed, and case warnings/errors on gcc
SUBST_CLASSES+=		pragma
SUBST_STAGE.pragma=	pre-configure
SUBST_FILES.pragma=	src/*.h src/*/*.h
SUBST_SED.pragma=	-e "s|\#pragma once||g"

.include "../../devel/zlib/buildlink3.mk"
.include "../../textproc/expat/buildlink3.mk"
.include "../../x11/libXext/buildlink3.mk"
.include "../../x11/xextproto/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"