Lines 1-6
Link Here
|
1 |
PORTNAME= mame |
1 |
PORTNAME= mame |
2 |
PORTVERSION= 0.254 |
2 |
DISTVERSION= 0.254 |
3 |
PORTREVISION= 1 |
3 |
PORTREVISION= 2 |
4 |
CATEGORIES= emulators games |
4 |
CATEGORIES= emulators games |
5 |
|
5 |
|
6 |
MAINTAINER= agh@riseup.net |
6 |
MAINTAINER= agh@riseup.net |
Lines 21-181
LICENSE_FILE= ${WRKSRC}/docs/LICENSE
Link Here
|
21 |
ONLY_FOR_ARCHS= aarch64 amd64 armv7 i386 powerpc powerpc64 powerpc64le |
21 |
ONLY_FOR_ARCHS= aarch64 amd64 armv7 i386 powerpc powerpc64 powerpc64le |
22 |
ONLY_FOR_ARCHS_REASON= not yet ported to any architecture other than armv7, arm64, x86, and powerpc* |
22 |
ONLY_FOR_ARCHS_REASON= not yet ported to any architecture other than armv7, arm64, x86, and powerpc* |
23 |
|
23 |
|
24 |
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-svg2pdfconverter>0:textproc/py-sphinxcontrib-svg2pdfconverter@${PY_FLAVOR} |
24 |
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-svg2pdfconverter>0:textproc/py-sphinxcontrib-svg2pdfconverter@${PY_FLAVOR} \ |
|
|
25 |
glm>0:math/glm \ |
26 |
rapidjson>0:devel/rapidjson |
25 |
LIB_DEPENDS= libexpat.so:textproc/expat2 \ |
27 |
LIB_DEPENDS= libexpat.so:textproc/expat2 \ |
26 |
libFLAC.so:audio/flac \ |
28 |
libFLAC.so:audio/flac \ |
27 |
libfontconfig.so:x11-fonts/fontconfig \ |
29 |
libfontconfig.so:x11-fonts/fontconfig \ |
28 |
libfreetype.so:print/freetype2 \ |
30 |
libfreetype.so:print/freetype2 \ |
29 |
libpugixml.so:textproc/pugixml |
31 |
libportmidi.so:audio/portmidi \ |
|
|
32 |
libpugixml.so:textproc/pugixml \ |
33 |
libutf8proc.so:textproc/utf8proc \ |
34 |
libuv.so:devel/libuv |
30 |
RUN_DEPENDS= liberation-fonts-ttf>=0:x11-fonts/liberation-fonts-ttf |
35 |
RUN_DEPENDS= liberation-fonts-ttf>=0:x11-fonts/liberation-fonts-ttf |
31 |
|
36 |
|
32 |
USES= compiler:c++14-lang gl gmake jpeg localbase lua:54 pkgconfig \ |
37 |
USES= compiler:c++17-lang gl gmake jpeg localbase lua:54 pkgconfig \ |
33 |
python:3.9,build qt:5 sdl shebangfix sqlite:3 xorg |
38 |
python:3.9,build sdl shebangfix sqlite:3 xorg |
34 |
|
39 |
|
35 |
USE_GITHUB= yes |
40 |
USE_GITHUB= yes |
36 |
GH_ACCOUNT= mamedev |
41 |
GH_ACCOUNT= mamedev |
37 |
GH_PROJECT= mame # explicit (master port) |
42 |
GH_TAGNAME= mame${DISTVERSION:S/.//} |
38 |
GH_TAGNAME= mame${PORTVERSION:S/.//} |
|
|
39 |
USE_GL= gl |
43 |
USE_GL= gl |
40 |
USE_QT= buildtools core gui qmake widgets |
|
|
41 |
USE_SDL= sdl2 ttf2 |
44 |
USE_SDL= sdl2 ttf2 |
42 |
USE_XORG= x11 xext xi xinerama xrender |
45 |
USE_XORG= x11 xext xi xinerama xrender |
43 |
|
46 |
|
44 |
MAKEFILE= makefile |
47 |
MAKEFILE= makefile |
45 |
MAKE_ARGS= TARGETOS=freebsd \ |
48 |
MAKE_ARGS= TARGETOS=freebsd \ |
46 |
TOOLS=1 \ |
49 |
VERBOSE="1" |
47 |
USE_SYSTEM_LIB_PUGIXML=1 \ |
50 |
MAKE_ENV= LDOPTS="${LDFLAGS}" \ |
48 |
USE_SYSTEM_LIB_SQLITE3=1 \ |
51 |
NO_USE_PORTAUDIO=1 \ |
49 |
VERBOSE=1 |
52 |
NO_USE_PULSEAUDIO=1 \ |
50 |
MAKE_ENV= FULLNAME="mame" \ |
|
|
51 |
GCC_LDFLAGS="${LDFLAGS}" \ |
52 |
LD="${CXX}" \ |
53 |
NOWERROR=1 \ |
53 |
NOWERROR=1 \ |
54 |
OPT_FLAGS="${CXXFLAGS}" \ |
54 |
OPT_FLAGS="${CXXFLAGS}" \ |
55 |
PYTHON="${PYTHON_CMD}" \ |
55 |
PRECOMPILE=0 \ |
56 |
SDL_NETWORK="pcap" \ |
56 |
PYTHON_EXECUTABLE="${PYTHON_CMD}" \ |
57 |
SUBTARGET="${MSUBTARGET}" \ |
57 |
USE_PCAP=1 \ |
58 |
TARGET="${MTARGET}" \ |
58 |
USE_SYSTEM_LIB_EXPAT=1 \ |
59 |
USE_NETWORK=1 |
59 |
USE_SYSTEM_LIB_FLAC=1 \ |
60 |
|
60 |
USE_SYSTEM_LIB_GLM=1 \ |
61 |
BINARY_ALIAS= python3=${PYTHON_CMD} python=${PYTHON_CMD} |
61 |
USE_SYSTEM_LIB_JPEG=1 \ |
62 |
SUB_FILES= pkg-message target.ini |
62 |
USE_SYSTEM_LIB_PORTMIDI=1 \ |
63 |
SUB_LIST= MSUBTARGET=${MSUBTARGET} \ |
63 |
USE_SYSTEM_LIB_PUGIXML=1 \ |
64 |
MTARGET=${MTARGET} |
64 |
USE_SYSTEM_LIB_RAPIDJSON=1 \ |
65 |
|
65 |
USE_SYSTEM_LIB_SQLITE3=1 \ |
66 |
PORTDOCS= LICENSE html/* legal/* |
66 |
USE_SYSTEM_LIB_UTF8PROC=1 \ |
67 |
PORTEXAMPLES= ${MSUBTARGET}.ini |
67 |
USE_SYSTEM_LIB_UV=1 \ |
68 |
|
68 |
USE_SYSTEM_LIB_ZLIB=1 \ |
69 |
OPTIONS_DEFINE= DEBUG DOCS EXAMPLES |
69 |
USE_TAPTUN=1 |
70 |
DEBUG_DESC= Build with debug profiling and symbols |
70 |
|
71 |
DOCS_DESC= Install additional MAME documentation |
71 |
SUB_FILES= pkg-message mame.ini plugin.ini ui.ini |
72 |
EXAMPLES_DESC= Install example ${EMULATOR}.ini configuration |
72 |
|
73 |
|
73 |
PORTDOCS= html/* |
74 |
DEBUG_MAKE_ENV= DEBUG=1 |
74 |
|
75 |
|
75 |
OPTIONS_DEFINE= DEBUG DOCS QTDEBUGGER TOOLS |
76 |
GENIE= ${WRKSRC}/3rdparty/genie |
76 |
OPTIONS_SUB= yes |
77 |
MSUBTARGET= mame |
77 |
|
78 |
MTARGET= mame |
78 |
DEBUG_DESC= Build with debug profiling and symbols |
|
|
79 |
DOCS_DESC= Install extensive online MAME documentation |
80 |
QTDEBUGGER_DESC= Install Qt interactive low-level machine debugger |
81 |
TOOLS_DESC= Install tools for machine archiving and development |
82 |
|
83 |
DEBUG_MAKE_ENV= DEBUG=1 \ |
84 |
OPTIMIZE=0 \ |
85 |
PROFILER=1 \ |
86 |
SYMBOLS=1 |
87 |
DEBUG_MAKE_ENV_OFF= OPTIMIZE=2 \ |
88 |
STRIP_SYMBOLS=1 |
89 |
# Attempt to avoid address space exhaustion during linking, specifically |
90 |
# on armv7, and possibly other architectures: |
91 |
DEBUG_LDFLAGS_OFF= -s |
92 |
QTDEBUGGER_USES= qt:5 |
93 |
QTDEBUGGER_USE= QT=core,gui,widgets,buildtools:build,qmake:build |
94 |
QTDEBUGGER_MAKE_ENV= USE_QTDEBUG=1 |
95 |
QTDEBUGGER_MAKE_ENV_OFF= USE_QTDEBUG=0 |
96 |
TOOLS_MAKE_ENV= TOOLS=1 |
97 |
TOOLS_MAKE_ENV_OFF= TOOLS=0 |
98 |
|
99 |
_GENIE= ${WRKSRC}/3rdparty/genie |
79 |
|
100 |
|
80 |
.include <bsd.port.options.mk> |
101 |
.include <bsd.port.options.mk> |
81 |
|
102 |
|
82 |
.if ${PORT_OPTIONS:MDEBUG} |
103 |
.if ${PORT_OPTIONS:MDEBUG} |
83 |
WITH_DEBUG= "YES" |
104 |
WITH_DEBUG= yes |
84 |
MAKE_ENV+= DEBUG="1" \ |
105 |
.endif |
85 |
OPTIMIZE="0" \ |
106 |
|
86 |
PROFILER="1" \ |
107 |
.if ${OPSYS} == FreeBSD && ${OSVERSION} > 1400000 |
87 |
SYMBOLS="1" |
108 |
USES+= llvm:15,build |
|
|
109 |
MAKE_ENV+= OVERRIDE_AR="llvm-ar${LLVM_VERSION}" \ |
110 |
OVERRIDE_CC="clang${LLVM_VERSION}" \ |
111 |
OVERRIDE_CXX="clang++${LLVM_VERSION}" \ |
112 |
OVERRIDE_LD="lld${LLVM_VERSION}" |
88 |
.else |
113 |
.else |
89 |
# avoid address space exhaustion in linker on armv7 |
114 |
MAKE_ENV+= OVERRIDE_AR="${AR}" \ |
90 |
LDFLAGS+= -s |
115 |
OVERRIDE_CC="${CC}" \ |
|
|
116 |
OVERRIDE_CXX="${CXX}" \ |
117 |
OVERRIDE_LD="${LD}" |
91 |
.endif |
118 |
.endif |
92 |
|
119 |
|
93 |
.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH:Mpowerpc64*} |
120 |
.if ${ARCH:Maarch64} || ${ARCH:Mamd64} || ${ARCH:Mpowerpc64*} |
94 |
MAKE_ARGS+= PTR64=1 |
121 |
MAKE_ARGS+= PTR64=1 |
95 |
.endif |
122 |
.endif |
96 |
|
123 |
|
97 |
EMULATOR= ${MSUBTARGET} |
124 |
post-extract: |
98 |
PLIST_SUB+= EMULATOR=${EMULATOR} |
125 |
@${MV} ${WRKSRC}/src/lib/util/png.h \ |
|
|
126 |
${WRKSRC}/src/lib/util/localpng.h |
127 |
|
128 |
post-patch: |
129 |
# Prefer some system headers over bundled. |
130 |
@${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/dirent.h |
131 |
@${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/signal.h |
132 |
# Accommodate GENie conception of BSD. |
133 |
@${MV} ${_GENIE}/build/gmake.freebsd \ |
134 |
${_GENIE}/build/gmake.bsd |
135 |
# Patch build to use bundled PNG. |
136 |
@${GREP} -rl '"png.h"' ${WRKSRC}/src | \ |
137 |
${XARGS} ${REINPLACE_CMD} -e 's|"png.h"|"localpng.h"|' |
138 |
@${REINPLACE_CMD} -e 's|"util/png.h"|"util/localpng.h"|' \ |
139 |
${WRKSRC}/src/frontend/mame/ui/icorender.cpp |
99 |
|
140 |
|
100 |
do-build-DOCS-on: |
141 |
do-build-DOCS-on: |
101 |
(cd ${WRKSRC}/docs && ${SETENV} ${MAKE_ENV} \ |
142 |
(cd ${WRKSRC}/docs && \ |
102 |
${MAKE_CMD} ${MAKE_ARGS} html \ |
143 |
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} html SPHINXBUILD=sphinx-build-${PYTHON_VER}) |
103 |
SPHINXBUILD=sphinx-build-${PYTHON_VER}) |
|
|
104 |
@${RM} ${WRKSRC}/docs/build/html/.buildinfo |
144 |
@${RM} ${WRKSRC}/docs/build/html/.buildinfo |
105 |
|
145 |
|
106 |
do-install: |
146 |
post-build: |
107 |
.for PROGRAM in castool chdman floptool imgtool jedutil ldresample ldverify \ |
147 |
(cd ${WRKSRC}/docs && \ |
108 |
nltool nlwav pngcmp regrep romcmp split srcclean testkeys unidasm |
148 |
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} man SPHINXBUILD=sphinx-build-${PYTHON_VER}) |
109 |
${INSTALL_PROGRAM} ${WRKSRC}/${PROGRAM} \ |
|
|
110 |
${STAGEDIR}${PREFIX}/bin |
111 |
.endfor |
112 |
|
149 |
|
113 |
.for data in artwork bgfx ctrlr ini hash language plugins samples |
150 |
do-install: |
|
|
151 |
.for DATA in artwork bgfx ctrlr ini hash language plugins samples |
114 |
(cd ${WRKSRC} && \ |
152 |
(cd ${WRKSRC} && \ |
115 |
${COPYTREE_SHARE} ${data} ${STAGEDIR}${DATADIR}) |
153 |
${COPYTREE_SHARE} ${DATA} ${STAGEDIR}${DATADIR}) |
116 |
.endfor |
154 |
.endfor |
117 |
|
155 |
|
118 |
${MKDIR} ${STAGEDIR}${DOCSDIR} |
156 |
${MKDIR} ${STAGEDIR}${DOCSDIR} |
119 |
${INSTALL_MAN} ${WRKSRC}/docs/man/*.1 \ |
157 |
${INSTALL_MAN} ${WRKSRC}/docs/build/man/MAME.1 \ |
120 |
${STAGEDIR}${MANPREFIX}/man/man1 |
158 |
${STAGEDIR}${MANPREFIX}/man/man1 |
121 |
${INSTALL_MAN} ${WRKSRC}/docs/build/man/*.1 \ |
159 |
${INSTALL_MAN} ${WRKSRC}/docs/man/mame.6 \ |
122 |
${STAGEDIR}${MANPREFIX}/man/man1 |
|
|
123 |
${INSTALL_MAN} ${WRKSRC}/docs/man/${EMULATOR}.6 \ |
124 |
${STAGEDIR}${MANPREFIX}/man/man6 |
160 |
${STAGEDIR}${MANPREFIX}/man/man6 |
125 |
${INSTALL_MAN} ${WRKSRC}/docs/LICENSE \ |
|
|
126 |
${STAGEDIR}${DOCSDIR} |
127 |
(cd ${WRKSRC}/docs && \ |
128 |
${COPYTREE_SHARE} legal ${STAGEDIR}${DOCSDIR}) |
129 |
|
161 |
|
130 |
do-install-DEBUG-off: |
162 |
.for INI in mame plugin ui |
131 |
${INSTALL_PROGRAM} ${WRKSRC}/${MSUBTARGET} \ |
163 |
${MKDIR} ${STAGEDIR}${ETCDIR} |
132 |
${STAGEDIR}${PREFIX}/bin/${EMULATOR} |
164 |
${INSTALL_DATA} ${WRKDIR}/${INI}.ini \ |
|
|
165 |
${STAGEDIR}${ETCDIR}/${INI}.ini.sample |
166 |
.endfor |
133 |
|
167 |
|
134 |
do-install-DEBUG-on: |
168 |
do-install-DEBUG-on: |
135 |
${INSTALL_PROGRAM} ${WRKSRC}/${MSUBTARGET}d \ |
169 |
${INSTALL_PROGRAM} ${WRKSRC}/mamed \ |
136 |
${STAGEDIR}${PREFIX}/bin/${EMULATOR} |
170 |
${STAGEDIR}${PREFIX}/bin/mame |
137 |
|
171 |
|
138 |
post-build: |
172 |
do-install-DEBUG-off: |
139 |
cd ${WRKSRC}/docs && ${SETENV} ${MAKE_ENV} \ |
173 |
${INSTALL_PROGRAM} ${WRKSRC}/mame \ |
140 |
${MAKE_CMD} ${MAKE_ARGS} man \ |
174 |
${STAGEDIR}${PREFIX}/bin/ |
141 |
SPHINXBUILD=sphinx-build-${PYTHON_VER} |
|
|
142 |
|
175 |
|
143 |
post-install-DOCS-on: |
176 |
do-install-DOCS-on: |
144 |
${MKDIR} ${STAGEDIR}${DOCSDIR} |
177 |
${MKDIR} ${STAGEDIR}${DOCSDIR} |
145 |
(cd ${WRKSRC}/docs/build && \ |
178 |
(cd ${WRKSRC}/docs/build && \ |
146 |
${COPYTREE_SHARE} html ${STAGEDIR}${DOCSDIR}) |
179 |
${COPYTREE_SHARE} html ${STAGEDIR}${DOCSDIR}) |
147 |
|
180 |
|
148 |
post-install-EXAMPLES-on: |
181 |
do-install-TOOLS-on: |
149 |
${MKDIR} ${STAGEDIR}${EXAMPLESDIR} |
182 |
.for PROGRAM in castool chdman floptool imgtool jedutil ldresample ldverify \ |
150 |
${INSTALL_DATA} ${WRKDIR}/target.ini \ |
183 |
nltool nlwav pngcmp regrep romcmp split srcclean testkeys unidasm |
151 |
${STAGEDIR}${EXAMPLESDIR}/${EMULATOR}.ini |
184 |
${INSTALL_PROGRAM} ${WRKSRC}/${PROGRAM} \ |
|
|
185 |
${STAGEDIR}${PREFIX}/bin |
186 |
.endfor |
152 |
|
187 |
|
153 |
post-patch: |
188 |
.for MANUAL in castool chdman floptool imgtool jedutil ldplayer ldresample \ |
154 |
@${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/dirent.h |
189 |
ldverify romcmp |
155 |
@${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/signal.h |
190 |
${INSTALL_MAN} ${WRKSRC}/docs/man/${MANUAL}.1 \ |
156 |
@${MV} ${GENIE}/build/gmake.freebsd \ |
191 |
${STAGEDIR}${MANPREFIX}/man/man1 |
157 |
${GENIE}/build/gmake.bsd |
192 |
.endfor |
158 |
@${REINPLACE_CMD} -e \ |
|
|
159 |
's|^\(AR \)|#\1| ; \ |
160 |
s|^\(CC \)|#\1| ; \ |
161 |
s|^\(CXX \)|#\1| ; \ |
162 |
s|^\(CXX:\)|#\1| ; \ |
163 |
s|^\(LD \)|#\1| ; \ |
164 |
s| .(ARCH)||g' \ |
165 |
${WRKSRC}/makefile \ |
166 |
${GENIE}/build/gmake.bsd/genie.make |
167 |
@${REINPLACE_CMD} -e 's|gcc|${CC}|; s|g++|${CXX}|' \ |
168 |
${GENIE}/src/tools/gcc.lua \ |
169 |
${GENIE}/src/tools/snc.lua \ |
170 |
${GENIE}/tests/test_gmake_cpp.lua |
171 |
@${REINPLACE_CMD} -e 's|= \"gcc|= \"${CC}|; s|= \"g++|= \"${CXX}|' \ |
172 |
-e "s|'CXX =|'#CXX =|; s|'CC =|'#CC =|; s| .(ARCH)| |g" \ |
173 |
${GENIE}/src/host/scripts.c |
174 |
@${GREP} -rl '"png.h"' ${WRKSRC}/src | \ |
175 |
${XARGS} ${REINPLACE_CMD} -e 's|"png.h"|"localpng.h"|' |
176 |
@${REINPLACE_CMD} -e 's|"util/png.h"|"util/localpng.h"|' \ |
177 |
${WRKSRC}/src/frontend/mame/ui/icorender.cpp |
178 |
@${MV} ${WRKSRC}/src/lib/util/png.h \ |
179 |
${WRKSRC}/src/lib/util/localpng.h |
180 |
|
193 |
|
181 |
.include <bsd.port.mk> |
194 |
.include <bsd.port.mk> |