summaryrefslogtreecommitdiff
path: root/emulators/xmame/Makefile
blob: dbcf24eb785c4a337a03c30628e3a5d3c24d7dcc (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
128
129
130
131
132
133
134
135
# $NetBSD: Makefile,v 1.155 2009/12/23 18:42:43 joerg 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}

CONFLICTS=		sdlmame-[0-9]*

PKG_DESTDIR_SUPPORT=	user-destdir
MAKE_JOBS_SAFE=		no

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}	\
		${DESTDIR}${PREFIX}/bin/${TARGET}
	${INSTALL_PROGRAM} ${WRKSRC}/romcmp ${DESTDIR}${PREFIX}/bin/romcmp
	${INSTALL_PROGRAM} ${WRKSRC}/chdman ${DESTDIR}${PREFIX}/bin/chdman
	${INSTALL_PROGRAM} ${WRKSRC}/xml2info ${DESTDIR}${PREFIX}/bin/xml2info
	${INSTALL_MAN} ${WRKSRC}/doc/${TARGET}.6			\
		${DESTDIR}${PREFIX}/${PKGMANDIR}/man6/${TARGET}.6
	${INSTALL_DATA_DIR} ${DESTDIR}${ROMPATH}
	${INSTALL_DATA} ${WRKSRC}/doc/${TARGET}rc			\
		${DESTDIR}${ROMPATH}/${TARGET}rc
	${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/doc/html/xmame/
	${INSTALL_DATA} ${WRKSRC}/doc/*.html				\
		${DESTDIR}${PREFIX}/share/doc/html/xmame/
	${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/doc/xmame
	${INSTALL_DATA} ${WRKSRC}/doc/xmame-doc.txt			\
		${DESTDIR}${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"