summaryrefslogtreecommitdiff
path: root/emulators/qemu/Makefile
blob: 6a281d3a5a0a6dda4d6f2925353f5e3f720561d5 (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
# $NetBSD: Makefile,v 1.108 2013/05/31 12:41:01 wiz Exp $

DISTNAME=		qemu-1.3.1
PKGREVISION=		1
CATEGORIES=		emulators
MASTER_SITES=		http://wiki.qemu.org/download/
EXTRACT_SUFX=		.tar.bz2

MAINTAINER=		pkgsrc-users@NetBSD.org
HOMEPAGE=		http://www.qemu.org/
COMMENT=		CPU emulator using dynamic translation
LICENSE=		gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd

CONFLICTS+=		qemu-bin-[0-9]*
NOT_FOR_PLATFORM=	NetBSD-1.[0-6]*-*
# qemu 1 does not work on NetBSD-5; see http://gnats.netbsd.org/46565.
# As a workaround, use emulators/qemu0.
NOT_FOR_PLATFORM=	NetBSD-5*-*

USE_TOOLS+=		gmake makeinfo perl:build pkg-config
UNLIMIT_RESOURCES=	datasize
HAS_CONFIGURE=		yes

BUILD_DEPENDS+=		texi2html-[0-9]*:../../textproc/texi2html

.include "options.mk"

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

CONFIGURE_ENV+=		mansuffix=/${PKGMANDIR}
CONFIGURE_ARGS+=	--prefix=${PREFIX}
CONFIGURE_ARGS+=	--interp-prefix=${PREFIX}/share/qemu
CONFIGURE_ARGS+=	--sysconfdir=${PKG_SYSCONFDIR}
CONFIGURE_ARGS+=	--python=${PYTHONBIN}
CONFIGURE_ARGS+=	--smbd=${PREFIX}/sbin/smbd
CONFIGURE_ARGS+=	--mandir=${PREFIX}/${PKGMANDIR}

CONF_FILES=		${EGDIR}/target-x86_64.conf \
			${PKG_SYSCONFDIR}/target-x86_64.conf
EGDIR=			${PREFIX}/share/examples/qemu
INSTALL_MAKE_FLAGS=	egdir=${EGDIR}
PKG_SYSCONFSUBDIR=	qemu

# Avoid clash with system include file:
pre-patch:
	mv ${WRKSRC}/audio/audio.h ${WRKSRC}/audio/qaudio.h

SUBST_CLASSES+=		qaudio
SUBST_STAGE.qaudio=	pre-configure
SUBST_FILES.qaudio=	arch_init.c monitor.c savevm.c vl.c \
			audio/*.c \
			hw/ac97.c \
			hw/adlib.c \
			hw/cs4231a.c \
			hw/es1370.c \
			hw/gus.c \
			hw/hda-audio.c \
			hw/lm4549.c \
			hw/lm4549.h \
			hw/marvell_88w8618_audio.c \
			hw/milkymist-ac97.c \
			hw/mips_fulong2e.c \
			hw/mips_jazz.c \
			hw/mips_malta.c \
			hw/omap2.c \
			hw/palm.c \
			hw/pcspk.c \
			hw/sb16.c \
			hw/spitz.c \
			hw/tsc210x.c \
			hw/usb/dev-audio.c \
			hw/wm8750.c \
			hw/z2.c \
			ui/vnc.h
SUBST_SED.qaudio=	-e s,audio.h\",qaudio.h\",g
SUBST_MESSAGE.qaudio=	Fixing audio.h confusion

REPLACE_PERL+=		scripts/texi2pod.pl

BUILDLINK_PASSTHRU_DIRS+= /usr/lib
BUILDLINK_PASSTHRU_RPATHDIRS+= /usr/lib

INSTALLATION_DIRS=	${PKGMANDIR}/man1 share/doc/qemu

UE_ARCHS+=		alpha arm armeb cris i386 m68k microblaze mips mipsel
UE_ARCHS+=		or32 ppc ppc64 ppc64abi32 sh4 sh4eb sparc sparc32plus
UE_ARCHS+=		sparc64 x86_64 microblazeel s390x unicore32

.if ${OPSYS} == "NetBSD"
.  if (!empty(OS_VERSION:M5.99.*) || !empty(OS_VERSION:M[6-9].*))
# XXX
# i386 and x86_64 user emul require newer binutils for PROVIDE_HIDDEN()
# http://git.qemu.org/qemu.git/commit/?id=845f2c2812d9ed24b36c02a3d06ee83aeafe8b49
# but binutils-2.19 was enabled around 5.99.22:
# http://cvsweb.NetBSD.org/bsdweb.cgi/src/share/mk/bsd.own.mk#rev1.594
USER_EMUL=		i386 x86_64 sparc sparc64
.  else
CONFIGURE_ARGS+=	--disable-bsd-user
USER_EMUL=
.  endif
PLIST.nbd=		YES
.elif !empty(OPSYS:M*BSD) || !empty(OPSYS:MDragonFly)
USER_EMUL=		i386 x86_64 sparc sparc64
PLIST.nbd=		YES
.elif !empty(OPSYS:MDarwin)
USER_EMUL=
CONFIGURE_ARGS+=	--disable-bsd-user
PLIST.nbd=		YES
.elif !empty(OPSYS:MLinux)
USER_EMUL=		${UE_ARCHS}
PLIST.nbd=		YES
.endif

PLIST_VARS+=		${UE_ARCHS} nbd
.for _var_ in ${USER_EMUL}
PLIST.${_var_}=		YES
.endfor

post-install:
	${INSTALL_DATA} ${FILESDIR}/Makefile.multinode-NetBSD \
		${DESTDIR}${PREFIX}/share/doc/qemu/

# On Darwin, qemu uses Cocoa and CoreAudio
.if empty(OPSYS:MDarwin)
.include "../../mk/oss.buildlink3.mk"
.endif
.include "../../devel/glib2/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../lang/python/extension.mk"
.include "../../x11/pixman/buildlink3.mk"
.include "../../mk/curses.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"