Sat Feb 17 21:43:04 2024 UTC (120d)
mame: Assumes presence of SSSE3 on x86-64


(nia)
diff -r1.188 -r1.189 pkgsrc/emulators/mame/Makefile

cvs diff -r1.188 -r1.189 pkgsrc/emulators/mame/Makefile (switch to unified diff)

--- pkgsrc/emulators/mame/Makefile 2024/01/31 21:00:04 1.188
+++ pkgsrc/emulators/mame/Makefile 2024/02/17 21:43:03 1.189
@@ -1,136 +1,142 @@ @@ -1,136 +1,142 @@
1# $NetBSD: Makefile,v 1.188 2024/01/31 21:00:04 wiz Exp $ 1# $NetBSD: Makefile,v 1.189 2024/02/17 21:43:03 nia Exp $
2 2
3DISTNAME= mame-0.262 3DISTNAME= mame-0.262
4CATEGORIES= emulators 4CATEGORIES= emulators
5MASTER_SITES= ${MASTER_SITE_GITHUB:=mamedev/} 5MASTER_SITES= ${MASTER_SITE_GITHUB:=mamedev/}
6GITHUB_TAG= ${DISTNAME:S/-//S/.//} 6GITHUB_TAG= ${DISTNAME:S/-//S/.//}
7 7
8MAINTAINER= wiz@NetBSD.org 8MAINTAINER= wiz@NetBSD.org
9HOMEPAGE= https://www.mamedev.org/ 9HOMEPAGE= https://www.mamedev.org/
10COMMENT= Multiple Arcade Machine Emulator 10COMMENT= Multiple Arcade Machine Emulator
11LICENSE= modified-bsd AND gnu-gpl-v2 11LICENSE= modified-bsd AND gnu-gpl-v2
12 12
13DOCDIR= share/doc/mame 13DOCDIR= share/doc/mame
14SHAREDIR= share/mame 14SHAREDIR= share/mame
15INSTALLATION_DIRS= bin ${DOCDIR} ${PKGMANDIR}/man1 ${PKGMANDIR}/man6 15INSTALLATION_DIRS= bin ${DOCDIR} ${PKGMANDIR}/man1 ${PKGMANDIR}/man6
16INSTALLATION_DIRS+= ${SHAREDIR}/artwork/bgfx/border_blur 16INSTALLATION_DIRS+= ${SHAREDIR}/artwork/bgfx/border_blur
17INSTALLATION_DIRS+= ${SHAREDIR}/artwork/bgfx/chains/crt-geom ${SHAREDIR}/hash 17INSTALLATION_DIRS+= ${SHAREDIR}/artwork/bgfx/chains/crt-geom ${SHAREDIR}/hash
18 18
19DEPENDS+= liberation-ttf-[0-9]*:../../fonts/liberation-ttf 19DEPENDS+= liberation-ttf-[0-9]*:../../fonts/liberation-ttf
20 20
21USE_LANGUAGES= c99 c++ 21USE_LANGUAGES= c99 c++
22USE_CXX_FEATURES+= c++17 22USE_CXX_FEATURES+= c++17
23USE_TOOLS+= gmake pkg-config 23USE_TOOLS+= gmake pkg-config
24UNLIMIT_RESOURCES+= cputime datasize memorysize virtualsize 24UNLIMIT_RESOURCES+= cputime datasize memorysize virtualsize
25MAKE_FILE= makefile 25MAKE_FILE= makefile
26 26
27# Need to use gnu++ instead of c++ to get __builtin_alloca() (!) 27# Need to use gnu++ instead of c++ to get __builtin_alloca() (!)
28FORCE_CXX_STD= gnu++17 28FORCE_CXX_STD= gnu++17
29 29
30# 30#
31# Earliest version known to succeed: gcc8 from Rocky Linux 8: 31# Earliest version known to succeed: gcc8 from Rocky Linux 8:
32# 32#
33# ../../../../../3rdparty/bx/include/bx/inline/typetraits.inl:227:30: error: expected primary-expression before ',' token 33# ../../../../../3rdparty/bx/include/bx/inline/typetraits.inl:227:30: error: expected primary-expression before ',' token
34# return !!__is_assignable(Ty, FromT); 34# return !!__is_assignable(Ty, FromT);
35# 35#
36GCC_REQD+= 8 36GCC_REQD+= 8
37 37
38.include "../../mk/bsd.prefs.mk" 38.include "../../mk/bsd.prefs.mk"
39 39
40MAKE_FLAGS+= PRECOMPILE=0 40MAKE_FLAGS+= PRECOMPILE=0
41# TODO: set differently when debugging? 41# TODO: set differently when debugging?
42MAKE_FLAGS+= OPTIMIZE=2 42MAKE_FLAGS+= OPTIMIZE=2
43MAKE_FLAGS+= NO_USE_PORTAUDIO=1 43MAKE_FLAGS+= NO_USE_PORTAUDIO=1
44MAKE_FLAGS+= NO_USE_PULSEAUDIO=1 44MAKE_FLAGS+= NO_USE_PULSEAUDIO=1
45 45
46.if ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "x86_64" 46.if ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "x86_64"
47# \todo Arch detection for aarch64 fails, investigate why 47# \todo Arch detection for aarch64 fails, investigate why
48MAKE_FLAGS+= NOASM=1 48MAKE_FLAGS+= NOASM=1
49MAKE_FLAGS+= FORCE_DRC_C_BACKEND=1 49MAKE_FLAGS+= FORCE_DRC_C_BACKEND=1
50BUILDLINK_TRANSFORM+= rm:-m32 50BUILDLINK_TRANSFORM+= rm:-m32
51BUILDLINK_TRANSFORM+= rm:-m64 51BUILDLINK_TRANSFORM+= rm:-m64
52.endif 52.endif
53 53
 54# "error: inlining failed in call to always_inline
 55# '__m128i _mm_shuffle_epi8(__m128i, __m128i)': target specific option mismatch"
 56.if ${MACHINE_ARCH} == "x86_64"
 57CFLAGS+= -mssse3
 58.endif
 59
54# -Werror is problematic 60# -Werror is problematic
55MAKE_ENV+= NOWERROR=1 61MAKE_ENV+= NOWERROR=1
56# on Darwin, avoid SDL2.framework 62# on Darwin, avoid SDL2.framework
57MAKE_ENV+= USE_LIBSDL=1 63MAKE_ENV+= USE_LIBSDL=1
58 64
59# for c++ to get LLONG_MAX for luaconf.h 65# for c++ to get LLONG_MAX for luaconf.h
60CPPFLAGS.NetBSD+= -D_NETBSD_SOURCE 66CPPFLAGS.NetBSD+= -D_NETBSD_SOURCE
61 67
62# use pkgsrc libraries 68# use pkgsrc libraries
63# boost-header's asio.hpp is not compatible as of mame-0.251/boost 1.81.0 69# boost-header's asio.hpp is not compatible as of mame-0.251/boost 1.81.0
64#MAKE_ENV+= USE_SYSTEM_LIB_ASIO=1 70#MAKE_ENV+= USE_SYSTEM_LIB_ASIO=1
65MAKE_ENV+= USE_SYSTEM_LIB_EXPAT=1 71MAKE_ENV+= USE_SYSTEM_LIB_EXPAT=1
66MAKE_ENV+= USE_SYSTEM_LIB_ZLIB=1 72MAKE_ENV+= USE_SYSTEM_LIB_ZLIB=1
67MAKE_ENV+= USE_SYSTEM_LIB_JPEG=1 73MAKE_ENV+= USE_SYSTEM_LIB_JPEG=1
68MAKE_ENV+= USE_SYSTEM_LIB_FLAC=1 74MAKE_ENV+= USE_SYSTEM_LIB_FLAC=1
69# use audio from SDL 75# use audio from SDL
70#MAKE_ENV+= USE_SYSTEM_LIB_PORTAUDIO=1 76#MAKE_ENV+= USE_SYSTEM_LIB_PORTAUDIO=1
71# no portmidi package exists yet 77# no portmidi package exists yet
72#MAKE_ENV+= USE_SYSTEM_LIB_PORTMIDI=1 78#MAKE_ENV+= USE_SYSTEM_LIB_PORTMIDI=1
73MAKE_ENV+= USE_SYSTEM_LIB_SQLITE3=1 79MAKE_ENV+= USE_SYSTEM_LIB_SQLITE3=1
74MAKE_ENV+= USE_SYSTEM_LIB_UTF8PROC=1 80MAKE_ENV+= USE_SYSTEM_LIB_UTF8PROC=1
75MAKE_ENV+= USE_SYSTEM_LIB_GLM=1 81MAKE_ENV+= USE_SYSTEM_LIB_GLM=1
76MAKE_ENV+= USE_SYSTEM_LIB_RAPIDJSON=1 82MAKE_ENV+= USE_SYSTEM_LIB_RAPIDJSON=1
77MAKE_ENV+= USE_SYSTEM_LIB_PUGIXML=1 83MAKE_ENV+= USE_SYSTEM_LIB_PUGIXML=1
78# find proper python binary 84# find proper python binary
79MAKE_ENV+= PYTHON_EXECUTABLE=${PYTHONBIN} 85MAKE_ENV+= PYTHON_EXECUTABLE=${PYTHONBIN}
80# don't depend on qt5 86# don't depend on qt5
81MAKE_ENV+= USE_QTDEBUG=0 87MAKE_ENV+= USE_QTDEBUG=0
82# avoid midi for now 88# avoid midi for now
83#MAKE_ENV+= NO_USE_MIDI=1 89#MAKE_ENV+= NO_USE_MIDI=1
84# build tools 90# build tools
85MAKE_ENV+= TOOLS=1 91MAKE_ENV+= TOOLS=1
86 92
87.include "../../mk/endian.mk" 93.include "../../mk/endian.mk"
88.if ${MACHINE_ENDIAN} == "big" 94.if ${MACHINE_ENDIAN} == "big"
89MAKE_ENV+= BIGENDIAN=1 95MAKE_ENV+= BIGENDIAN=1
90.endif 96.endif
91 97
92PYTHON_FOR_BUILD_ONLY= yes 98PYTHON_FOR_BUILD_ONLY= yes
93 99
94post-extract: 100post-extract:
95 # will be chosen in preference to /usr/include/signal.h, but does not provide kill() 101 # will be chosen in preference to /usr/include/signal.h, but does not provide kill()
96 ${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/signal.h 102 ${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/signal.h
97 # will be chosen in preference to /usr/include/dirent.h, but does not provide opendir() et al. 103 # will be chosen in preference to /usr/include/dirent.h, but does not provide opendir() et al.
98 ${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/dirent.h 104 ${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/dirent.h
99 ${MV} ${WRKSRC}/3rdparty/genie/build/gmake.freebsd ${WRKSRC}/3rdparty/genie/build/gmake.bsd 105 ${MV} ${WRKSRC}/3rdparty/genie/build/gmake.freebsd ${WRKSRC}/3rdparty/genie/build/gmake.bsd
100 106
101pre-build: 107pre-build:
102 # problems with mame-specific png.h 108 # problems with mame-specific png.h
103 ${RM} -f ${WRKDIR}/.buildlink/include/png* 109 ${RM} -f ${WRKDIR}/.buildlink/include/png*
104 110
105do-install: 111do-install:
106 ${INSTALL_PROGRAM} ${WRKSRC}/mame ${DESTDIR}${PREFIX}/bin/mame 112 ${INSTALL_PROGRAM} ${WRKSRC}/mame ${DESTDIR}${PREFIX}/bin/mame
107 set -e; \ 113 set -e; \
108 for prg in castool chdman floptool imgtool jedutil ldresample ldverify \ 114 for prg in castool chdman floptool imgtool jedutil ldresample ldverify \
109 nltool nlwav pngcmp regrep romcmp split srcclean unidasm; do \ 115 nltool nlwav pngcmp regrep romcmp split srcclean unidasm; do \
110 ${INSTALL_PROGRAM} ${WRKSRC}/"$$prg" ${DESTDIR}${PREFIX}/bin; \ 116 ${INSTALL_PROGRAM} ${WRKSRC}/"$$prg" ${DESTDIR}${PREFIX}/bin; \
111 done 117 done
112 ${INSTALL_DATA} ${WRKSRC}/docs/man/*.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 118 ${INSTALL_DATA} ${WRKSRC}/docs/man/*.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
113 ${INSTALL_DATA} ${WRKSRC}/docs/man/*.6 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man6 119 ${INSTALL_DATA} ${WRKSRC}/docs/man/*.6 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man6
114 ${INSTALL_DATA} ${WRKSRC}/artwork/LICENSE ${DESTDIR}${PREFIX}/${SHAREDIR}/artwork 120 ${INSTALL_DATA} ${WRKSRC}/artwork/LICENSE ${DESTDIR}${PREFIX}/${SHAREDIR}/artwork
115 ${INSTALL_DATA} ${WRKSRC}/artwork/*.* ${DESTDIR}${PREFIX}/${SHAREDIR}/artwork 121 ${INSTALL_DATA} ${WRKSRC}/artwork/*.* ${DESTDIR}${PREFIX}/${SHAREDIR}/artwork
116 ${INSTALL_DATA} ${WRKSRC}/artwork/bgfx/border_blur/* ${DESTDIR}${PREFIX}/${SHAREDIR}/artwork/bgfx/border_blur 122 ${INSTALL_DATA} ${WRKSRC}/artwork/bgfx/border_blur/* ${DESTDIR}${PREFIX}/${SHAREDIR}/artwork/bgfx/border_blur
117 ${INSTALL_DATA} ${WRKSRC}/artwork/bgfx/chains/*.* ${DESTDIR}${PREFIX}/${SHAREDIR}/artwork/bgfx/chains 123 ${INSTALL_DATA} ${WRKSRC}/artwork/bgfx/chains/*.* ${DESTDIR}${PREFIX}/${SHAREDIR}/artwork/bgfx/chains
118 ${INSTALL_DATA} ${WRKSRC}/artwork/bgfx/chains/crt-geom/* ${DESTDIR}${PREFIX}/${SHAREDIR}/artwork/bgfx/chains/crt-geom/ 124 ${INSTALL_DATA} ${WRKSRC}/artwork/bgfx/chains/crt-geom/* ${DESTDIR}${PREFIX}/${SHAREDIR}/artwork/bgfx/chains/crt-geom/
119 ${INSTALL_DATA} ${WRKSRC}/docs/*.md ${DESTDIR}${PREFIX}/${DOCDIR} 125 ${INSTALL_DATA} ${WRKSRC}/docs/*.md ${DESTDIR}${PREFIX}/${DOCDIR}
120 ${INSTALL_DATA} ${WRKSRC}/hash/* ${DESTDIR}${PREFIX}/${SHAREDIR}/hash 126 ${INSTALL_DATA} ${WRKSRC}/hash/* ${DESTDIR}${PREFIX}/${SHAREDIR}/hash
121 127
122.include "../../audio/flac/buildlink3.mk" 128.include "../../audio/flac/buildlink3.mk"
123.include "../../converters/utf8proc/buildlink3.mk" 129.include "../../converters/utf8proc/buildlink3.mk"
124.include "../../devel/SDL2/buildlink3.mk" 130.include "../../devel/SDL2/buildlink3.mk"
125.include "../../devel/zlib/buildlink3.mk" 131.include "../../devel/zlib/buildlink3.mk"
126.include "../../databases/sqlite3/buildlink3.mk" 132.include "../../databases/sqlite3/buildlink3.mk"
127.include "../../graphics/glm/buildlink3.mk" 133.include "../../graphics/glm/buildlink3.mk"
128.include "../../fonts/SDL2_ttf/buildlink3.mk" 134.include "../../fonts/SDL2_ttf/buildlink3.mk"
129.include "../../fonts/fontconfig/buildlink3.mk" 135.include "../../fonts/fontconfig/buildlink3.mk"
130.include "../../lang/python/batteries-included.mk" 136.include "../../lang/python/batteries-included.mk"
131.include "../../lang/python/pyversion.mk" 137.include "../../lang/python/pyversion.mk"
132.include "../../textproc/expat/buildlink3.mk" 138.include "../../textproc/expat/buildlink3.mk"
133.include "../../textproc/pugixml/buildlink3.mk" 139.include "../../textproc/pugixml/buildlink3.mk"
134.include "../../textproc/rapidjson/buildlink3.mk" 140.include "../../textproc/rapidjson/buildlink3.mk"
135.include "../../mk/jpeg.buildlink3.mk" 141.include "../../mk/jpeg.buildlink3.mk"
136.include "../../mk/bsd.pkg.mk" 142.include "../../mk/bsd.pkg.mk"