| @@ -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 | |
3 | DISTNAME= mame-0.262 | | 3 | DISTNAME= mame-0.262 |
4 | CATEGORIES= emulators | | 4 | CATEGORIES= emulators |
5 | MASTER_SITES= ${MASTER_SITE_GITHUB:=mamedev/} | | 5 | MASTER_SITES= ${MASTER_SITE_GITHUB:=mamedev/} |
6 | GITHUB_TAG= ${DISTNAME:S/-//S/.//} | | 6 | GITHUB_TAG= ${DISTNAME:S/-//S/.//} |
7 | | | 7 | |
8 | MAINTAINER= wiz@NetBSD.org | | 8 | MAINTAINER= wiz@NetBSD.org |
9 | HOMEPAGE= https://www.mamedev.org/ | | 9 | HOMEPAGE= https://www.mamedev.org/ |
10 | COMMENT= Multiple Arcade Machine Emulator | | 10 | COMMENT= Multiple Arcade Machine Emulator |
11 | LICENSE= modified-bsd AND gnu-gpl-v2 | | 11 | LICENSE= modified-bsd AND gnu-gpl-v2 |
12 | | | 12 | |
13 | DOCDIR= share/doc/mame | | 13 | DOCDIR= share/doc/mame |
14 | SHAREDIR= share/mame | | 14 | SHAREDIR= share/mame |
15 | INSTALLATION_DIRS= bin ${DOCDIR} ${PKGMANDIR}/man1 ${PKGMANDIR}/man6 | | 15 | INSTALLATION_DIRS= bin ${DOCDIR} ${PKGMANDIR}/man1 ${PKGMANDIR}/man6 |
16 | INSTALLATION_DIRS+= ${SHAREDIR}/artwork/bgfx/border_blur | | 16 | INSTALLATION_DIRS+= ${SHAREDIR}/artwork/bgfx/border_blur |
17 | INSTALLATION_DIRS+= ${SHAREDIR}/artwork/bgfx/chains/crt-geom ${SHAREDIR}/hash | | 17 | INSTALLATION_DIRS+= ${SHAREDIR}/artwork/bgfx/chains/crt-geom ${SHAREDIR}/hash |
18 | | | 18 | |
19 | DEPENDS+= liberation-ttf-[0-9]*:../../fonts/liberation-ttf | | 19 | DEPENDS+= liberation-ttf-[0-9]*:../../fonts/liberation-ttf |
20 | | | 20 | |
21 | USE_LANGUAGES= c99 c++ | | 21 | USE_LANGUAGES= c99 c++ |
22 | USE_CXX_FEATURES+= c++17 | | 22 | USE_CXX_FEATURES+= c++17 |
23 | USE_TOOLS+= gmake pkg-config | | 23 | USE_TOOLS+= gmake pkg-config |
24 | UNLIMIT_RESOURCES+= cputime datasize memorysize virtualsize | | 24 | UNLIMIT_RESOURCES+= cputime datasize memorysize virtualsize |
25 | MAKE_FILE= makefile | | 25 | MAKE_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() (!) |
28 | FORCE_CXX_STD= gnu++17 | | 28 | FORCE_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 | # |
36 | GCC_REQD+= 8 | | 36 | GCC_REQD+= 8 |
37 | | | 37 | |
38 | .include "../../mk/bsd.prefs.mk" | | 38 | .include "../../mk/bsd.prefs.mk" |
39 | | | 39 | |
40 | MAKE_FLAGS+= PRECOMPILE=0 | | 40 | MAKE_FLAGS+= PRECOMPILE=0 |
41 | # TODO: set differently when debugging? | | 41 | # TODO: set differently when debugging? |
42 | MAKE_FLAGS+= OPTIMIZE=2 | | 42 | MAKE_FLAGS+= OPTIMIZE=2 |
43 | MAKE_FLAGS+= NO_USE_PORTAUDIO=1 | | 43 | MAKE_FLAGS+= NO_USE_PORTAUDIO=1 |
44 | MAKE_FLAGS+= NO_USE_PULSEAUDIO=1 | | 44 | MAKE_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 |
48 | MAKE_FLAGS+= NOASM=1 | | 48 | MAKE_FLAGS+= NOASM=1 |
49 | MAKE_FLAGS+= FORCE_DRC_C_BACKEND=1 | | 49 | MAKE_FLAGS+= FORCE_DRC_C_BACKEND=1 |
50 | BUILDLINK_TRANSFORM+= rm:-m32 | | 50 | BUILDLINK_TRANSFORM+= rm:-m32 |
51 | BUILDLINK_TRANSFORM+= rm:-m64 | | 51 | BUILDLINK_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" |
| | | 57 | CFLAGS+= -mssse3 |
| | | 58 | .endif |
| | | 59 | |
54 | # -Werror is problematic | | 60 | # -Werror is problematic |
55 | MAKE_ENV+= NOWERROR=1 | | 61 | MAKE_ENV+= NOWERROR=1 |
56 | # on Darwin, avoid SDL2.framework | | 62 | # on Darwin, avoid SDL2.framework |
57 | MAKE_ENV+= USE_LIBSDL=1 | | 63 | MAKE_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 |
60 | CPPFLAGS.NetBSD+= -D_NETBSD_SOURCE | | 66 | CPPFLAGS.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 |
65 | MAKE_ENV+= USE_SYSTEM_LIB_EXPAT=1 | | 71 | MAKE_ENV+= USE_SYSTEM_LIB_EXPAT=1 |
66 | MAKE_ENV+= USE_SYSTEM_LIB_ZLIB=1 | | 72 | MAKE_ENV+= USE_SYSTEM_LIB_ZLIB=1 |
67 | MAKE_ENV+= USE_SYSTEM_LIB_JPEG=1 | | 73 | MAKE_ENV+= USE_SYSTEM_LIB_JPEG=1 |
68 | MAKE_ENV+= USE_SYSTEM_LIB_FLAC=1 | | 74 | MAKE_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 |
73 | MAKE_ENV+= USE_SYSTEM_LIB_SQLITE3=1 | | 79 | MAKE_ENV+= USE_SYSTEM_LIB_SQLITE3=1 |
74 | MAKE_ENV+= USE_SYSTEM_LIB_UTF8PROC=1 | | 80 | MAKE_ENV+= USE_SYSTEM_LIB_UTF8PROC=1 |
75 | MAKE_ENV+= USE_SYSTEM_LIB_GLM=1 | | 81 | MAKE_ENV+= USE_SYSTEM_LIB_GLM=1 |
76 | MAKE_ENV+= USE_SYSTEM_LIB_RAPIDJSON=1 | | 82 | MAKE_ENV+= USE_SYSTEM_LIB_RAPIDJSON=1 |
77 | MAKE_ENV+= USE_SYSTEM_LIB_PUGIXML=1 | | 83 | MAKE_ENV+= USE_SYSTEM_LIB_PUGIXML=1 |
78 | # find proper python binary | | 84 | # find proper python binary |
79 | MAKE_ENV+= PYTHON_EXECUTABLE=${PYTHONBIN} | | 85 | MAKE_ENV+= PYTHON_EXECUTABLE=${PYTHONBIN} |
80 | # don't depend on qt5 | | 86 | # don't depend on qt5 |
81 | MAKE_ENV+= USE_QTDEBUG=0 | | 87 | MAKE_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 |
85 | MAKE_ENV+= TOOLS=1 | | 91 | MAKE_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" |
89 | MAKE_ENV+= BIGENDIAN=1 | | 95 | MAKE_ENV+= BIGENDIAN=1 |
90 | .endif | | 96 | .endif |
91 | | | 97 | |
92 | PYTHON_FOR_BUILD_ONLY= yes | | 98 | PYTHON_FOR_BUILD_ONLY= yes |
93 | | | 99 | |
94 | post-extract: | | 100 | post-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 | |
101 | pre-build: | | 107 | pre-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 | |
105 | do-install: | | 111 | do-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" |