Annotation of pkgsrc/emulators/qemu/Makefile, Revision 1.290
1.290 ! adam 1: # $NetBSD: Makefile,v 1.289 2021/09/29 19:00:35 adam Exp $
1.1 xtraeme 2:
1.283 ryoon 3: DISTNAME= qemu-6.1.0
4: PKGNAME= ${DISTNAME:S/-rc/rc/}
1.290 ! adam 5: PKGREVISION= 5
1.112 adam 6: CATEGORIES= emulators
1.190 ryoon 7: MASTER_SITES= https://download.qemu.org/
1.168 adam 8: EXTRACT_SUFX= .tar.xz
1.112 adam 9:
10: MAINTAINER= pkgsrc-users@NetBSD.org
1.164 ryoon 11: HOMEPAGE= http://www.qemu-project.org/
1.112 adam 12: COMMENT= CPU emulator using dynamic translation
13: LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd
1.1 xtraeme 14:
1.274 nia 15: TOOL_DEPENDS+= ninja-build-[0-9]*:../../devel/ninja-build
1.264 wiz 16:
1.165 adam 17: USE_CURSES= resize_term wide
18: USE_LANGUAGES+= c c++
1.274 nia 19: USE_TOOLS+= bison flex makeinfo perl:build pod2man pkg-config
1.79 wiz 20: UNLIMIT_RESOURCES= datasize
1.1 xtraeme 21: HAS_CONFIGURE= yes
22:
1.287 nia 23: # https://github.com/qemu/qemu/commit/56208a0d473c6db263cc333c787ca48b502d72ab
24: GCC_REQD+= 7
25:
1.218 adam 26: PYTHON_VERSIONED_DEPENDENCIES= sphinx:tool
1.283 ryoon 27: BUILD_DEPENDS+= ${PYPKGPREFIX}-sphinx-rtd-theme>=0.4.3:../../textproc/py-sphinx-rtd-theme
1.41 adrianp 28:
1.205 leot 29: SUBST_CLASSES+= sphinx-build
30: SUBST_STAGE.sphinx-build= pre-configure
31: SUBST_MESSAGE.sphinx-build= Fix hardcoded sphinx-build
1.238 rillig 32: SUBST_FILES.sphinx-build+= configure
1.263 ryoon 33: SUBST_FILES.sphinx-build+= docs/meson.build
1.205 leot 34: SUBST_FILES.sphinx-build+= roms/skiboot/doc/Makefile
1.283 ryoon 35: SUBST_FILES.sphinx-build+= roms/u-boot/doc/Makefile
1.218 adam 36: SUBST_SED.sphinx-build+= -e 's/sphinx-build/sphinx-build-${PYVERSSUFFIX}/g'
1.205 leot 37:
1.78 wiz 38: .include "options.mk"
39:
1.36 xtraeme 40: .include "../../mk/bsd.prefs.mk"
41:
1.278 thorpej 42: # When upgrading Qemu, you need to determine if this PALcode binary for
43: # the Alpha emulator needs to be re-built. If it does not, then you do
44: # not need to bump the version of this PALcode binary blob (which is
45: # supplied as a separate distfile). Contact thorpej@ for details.
46: PALCODE_CLIPPER= palcode-clipper-qemu-5.2.0nb8
47:
1.253 thorpej 48: DISTFILES= ${DEFAULT_DISTFILES}
1.278 thorpej 49: DISTFILES+= ${PALCODE_CLIPPER}
50: SITES.${PALCODE_CLIPPER}= http://ftp.NetBSD.org/pub/NetBSD/arch/alpha/qemu/
1.253 thorpej 51:
1.77 adam 52: CONFIGURE_ARGS+= --prefix=${PREFIX}
53: CONFIGURE_ARGS+= --interp-prefix=${PREFIX}/share/qemu
54: CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
1.91 ryoon 55: CONFIGURE_ARGS+= --python=${PYTHONBIN}
1.102 shattere 56: CONFIGURE_ARGS+= --smbd=${PREFIX}/sbin/smbd
1.87 sbd 57: CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR}
1.114 jnemeth 58: CONFIGURE_ARGS+= --enable-curses
1.205 leot 59: CONFIGURE_ARGS+= --enable-docs
1.165 adam 60: CONFIGURE_ARGS+= --enable-jemalloc
1.113 adam 61: CONFIGURE_ENV+= mansuffix=/${PKGMANDIR}
1.75 jmmv 62:
1.159 wiz 63: .if defined(PKGSRC_USE_SSP)
64: # do not add flags to everything
65: PKGSRC_USE_SSP= no
66: CONFIGURE_ARGS+= --enable-stack-protector
67: .endif
68:
1.153 maya 69: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-aarch64
70: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-alpha
71: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-arm
72: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-cris
1.198 gson 73: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-hppa
1.153 maya 74: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-i386
75: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-m68k
76: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-microblaze
77: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-microblazeel
78: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mips
79: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mips64
80: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mips64el
81: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mipsel
1.198 gson 82: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-nios2
1.168 adam 83: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-or1k
1.153 maya 84: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-ppc
85: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-ppc64
1.198 gson 86: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-riscv32
87: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-riscv64
1.153 maya 88: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-s390x
89: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sh4
90: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sh4eb
91: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sparc
92: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sparc64
93: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-tricore
1.150 pgoyette 94: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-x86_64
1.153 maya 95: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-xtensa
96: NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-xtensaeb
1.150 pgoyette 97:
1.75 jmmv 98: PKG_SYSCONFSUBDIR= qemu
1.1 xtraeme 99:
1.49 joerg 100: INSTALLATION_DIRS= ${PKGMANDIR}/man1 share/doc/qemu
101:
1.273 nia 102: .include "../../mk/oss.buildlink3.mk"
103:
104: .if ${OSS_TYPE} != "none"
105: SUBST_CLASSES+= oss
106: SUBST_STAGE.oss= pre-configure
107: SUBST_MESSAGE.oss= Correcting the path to the OSS device.
108: SUBST_FILES.oss+= audio/ossaudio.c
109: SUBST_SED.oss+= -e "s,/dev/dsp,${DEVOSSAUDIO},g"
110: .endif
111:
1.208 kamil 112: UE_ARCHS+= aarch64 aarch64_be
113: UE_ARCHS+= alpha arm armeb cris
1.281 mcf 114: UE_ARCHS+= hexagon hppa
1.208 kamil 115: UE_ARCHS+= i386
116: UE_ARCHS+= m68k microblaze microblazeel
117: UE_ARCHS+= mips mips64 mips64el mipsel mipsn32 mipsn32el
118: UE_ARCHS+= nios2
1.271 nia 119: UE_ARCHS+= or1k ppc ppc64 ppc64le
1.208 kamil 120: UE_ARCHS+= riscv32 riscv64
121: UE_ARCHS+= s390x sh4 sh4eb sparc sparc32plus sparc64
122: UE_ARCHS+= x86_64 xtensa xtensaeb
1.65 sbd 123:
1.76 tsutsui 124: .if ${OPSYS} == "NetBSD"
1.246 nia 125: PLIST.nbd= yes
126: . if !exists(/usr/include/machine/trap.h)
127: CONFIGURE_ARGS+= --disable-bsd-user
128: . else
1.284 mcf 129: USER_EMUL= i386 x86_64
1.246 nia 130: . endif
1.187 adam 131: .elif !empty(OPSYS:M*BSD) || ${OPSYS} == "DragonFly"
1.284 mcf 132: USER_EMUL= i386 x86_64
1.220 rillig 133: PLIST.nbd= yes
1.187 adam 134: .elif ${OPSYS} == "Darwin"
1.77 adam 135: USER_EMUL=
1.220 rillig 136: CONFIGURE_ARGS+= --disable-bsd-user
137: PLIST.nbd= yes
1.187 adam 138: .elif ${OPSYS} == "Linux"
1.220 rillig 139: USER_EMUL= ${UE_ARCHS}
140: PLIST.bridge-helper= yes
141: PLIST.nbd= yes
142: PLIST.pr-helper= yes
1.116 jperkin 143: .elif !empty(MACHINE_PLATFORM:MSunOS-5.11-*)
1.220 rillig 144: PLIST.nbd= yes
145: CONFIGURE_ARGS+= --disable-coroutine-pool
1.65 sbd 146: .endif
147:
1.272 nia 148: PLIST_VARS+= ${UE_ARCHS} bridge-helper keymap nbd pr-helper
1.188 adam 149: .for pvar in ${USER_EMUL}
1.209 wiz 150: PLIST.${pvar}= yes
1.65 sbd 151: .endfor
152:
1.219 adam 153: # different versions of Sphinx generate different static files
154: PLIST_SRC= PLIST ${WRKDIR}/PLIST.STATIC
155:
1.270 wiz 156: PRINT_PLIST_AWK+= /\/_static\// { next; }
157:
1.172 kamil 158: TEST_TARGET= check
159:
1.275 nia 160: PYTHON_FOR_BUILD_ONLY= tool
161:
1.253 thorpej 162: post-extract:
1.278 thorpej 163: cp ${WRKDIR}/${PALCODE_CLIPPER} ${WRKSRC}/pc-bios/palcode-clipper
1.262 reinoud 164: cp ${FILESDIR}/hw-mips-mipssim_virtio.c ${WRKSRC}/hw/mips/mipssim_virtio.c
1.253 thorpej 165:
1.263 ryoon 166: do-build:
167: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
168: ninja -j ${_MAKE_JOBS_N:U1} -C build
169:
170: do-install:
171: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${INSTALL_ENV} \
172: ninja -j ${_MAKE_JOBS_N:U1} -C build install
173:
1.221 jperkin 174: # Some dependencies aren't correct and this tries to be re-made on install,
175: # failing due to configure bugs.
176: post-build:
177: ${TOUCH} ${WRKSRC}/config-host.mak
178:
1.18 hubertf 179: post-install:
1.49 joerg 180: ${INSTALL_DATA} ${FILESDIR}/Makefile.multinode-NetBSD \
181: ${DESTDIR}${PREFIX}/share/doc/qemu/
1.216 adam 182: ${RM} -f ${DESTDIR}${PREFIX}/share/doc/qemu/interop/.buildinfo
1.219 adam 183: ${RM} -f ${DESTDIR}${PREFIX}/share/doc/qemu/specs/.buildinfo
184: ${RM} -f ${WRKDIR}/PLIST.STATIC
185: cd ${DESTDIR}${PREFIX} && \
186: ${FIND} share/doc/qemu -path '*/_static/*' -type f -print > ${WRKDIR}/PLIST.STATIC
1.41 adrianp 187:
1.165 adam 188: .include "../../archivers/lzo/buildlink3.mk"
1.279 ryoon 189: .include "../../archivers/zstd/buildlink3.mk"
1.81 ryoon 190: .include "../../devel/glib2/buildlink3.mk"
1.165 adam 191: .include "../../devel/jemalloc/buildlink3.mk"
192: .include "../../devel/snappy/buildlink3.mk"
1.68 tnn 193: .include "../../devel/zlib/buildlink3.mk"
1.205 leot 194: .include "../../graphics/hicolor-icon-theme/buildlink3.mk"
1.165 adam 195: .include "../../graphics/png/buildlink3.mk"
1.275 nia 196: .include "../../lang/python/tool.mk"
1.218 adam 197: .include "../../lang/python/versioned_dependencies.mk"
1.147 ryoon 198: .include "../../security/libgcrypt/buildlink3.mk"
1.165 adam 199: .include "../../www/curl/buildlink3.mk"
1.106 wiz 200: .include "../../x11/pixman/buildlink3.mk"
1.268 reinoud 201: .include "../../mk/curses.buildlink3.mk"
1.165 adam 202: .include "../../mk/jpeg.buildlink3.mk"
1.2 xtraeme 203: .include "../../mk/pthread.buildlink3.mk"
1.1 xtraeme 204: .include "../../mk/bsd.pkg.mk"
CVSweb <webmaster@jp.NetBSD.org>