Lines 1-6
Link Here
|
1 |
PORTNAME= mame |
1 |
PORTNAME= mame |
2 |
PORTVERSION= 0.254 |
2 |
PORTVERSION= 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-106
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_PROJECT= mame # explicit (master port) |
38 |
GH_TAGNAME= mame${PORTVERSION:S/.//} |
43 |
GH_TAGNAME= mame${PORTVERSION:S/.//} |
39 |
USE_GL= gl |
44 |
USE_GL= gl |
40 |
USE_QT= buildtools core gui qmake widgets |
|
|
41 |
USE_SDL= sdl2 ttf2 |
45 |
USE_SDL= sdl2 ttf2 |
42 |
USE_XORG= x11 xext xi xinerama xrender |
46 |
USE_XORG= x11 xext xi xinerama xrender |
43 |
|
47 |
|
44 |
MAKEFILE= makefile |
48 |
MAKEFILE= makefile |
45 |
MAKE_ARGS= TARGETOS=freebsd \ |
49 |
MAKE_ARGS= TARGETOS=freebsd \ |
46 |
TOOLS=1 \ |
50 |
VERBOSE="1" |
47 |
USE_SYSTEM_LIB_PUGIXML=1 \ |
51 |
MAKE_ENV= LDOPTS="${LDFLAGS}" \ |
48 |
USE_SYSTEM_LIB_SQLITE3=1 \ |
52 |
NO_USE_PORTAUDIO=1 \ |
49 |
VERBOSE=1 |
53 |
NO_USE_PULSEAUDIO=1 \ |
50 |
MAKE_ENV= FULLNAME="mame" \ |
|
|
51 |
GCC_LDFLAGS="${LDFLAGS}" \ |
52 |
LD="${CXX}" \ |
53 |
NOWERROR=1 \ |
54 |
NOWERROR=1 \ |
54 |
OPT_FLAGS="${CXXFLAGS}" \ |
55 |
OPT_FLAGS="${CXXFLAGS}" \ |
55 |
PYTHON="${PYTHON_CMD}" \ |
56 |
OPTIMIZE=2 \ |
56 |
SDL_NETWORK="pcap" \ |
57 |
PRECOMPILE=0 \ |
57 |
SUBTARGET="${MSUBTARGET}" \ |
58 |
PYTHON_EXECUTABLE="${PYTHON_CMD}" \ |
58 |
TARGET="${MTARGET}" \ |
59 |
TOOLS=1 \ |
59 |
USE_NETWORK=1 |
60 |
USE_PCAP=1 \ |
|
|
61 |
USE_SYSTEM_LIB_EXPAT=1 \ |
62 |
USE_SYSTEM_LIB_FLAC=1 \ |
63 |
USE_SYSTEM_LIB_GLM=1 \ |
64 |
USE_SYSTEM_LIB_JPEG=1 \ |
65 |
USE_SYSTEM_LIB_PORTMIDI=1 \ |
66 |
USE_SYSTEM_LIB_RAPIDJSON=1 \ |
67 |
USE_SYSTEM_LIB_SQLITE3=1 \ |
68 |
USE_SYSTEM_LIB_UTF8PROC=1 \ |
69 |
USE_SYSTEM_LIB_UV=1 \ |
70 |
USE_SYSTEM_LIB_ZLIB=1 \ |
71 |
USE_TAPTUN=1 |
60 |
|
72 |
|
61 |
BINARY_ALIAS= python3=${PYTHON_CMD} python=${PYTHON_CMD} |
|
|
62 |
SUB_FILES= pkg-message target.ini |
73 |
SUB_FILES= pkg-message target.ini |
63 |
SUB_LIST= MSUBTARGET=${MSUBTARGET} \ |
|
|
64 |
MTARGET=${MTARGET} |
65 |
|
74 |
|
66 |
PORTDOCS= LICENSE html/* legal/* |
75 |
PORTDOCS= html/* |
67 |
PORTEXAMPLES= ${MSUBTARGET}.ini |
76 |
PORTEXAMPLES= mame.ini |
68 |
|
77 |
|
69 |
OPTIONS_DEFINE= DEBUG DOCS EXAMPLES |
78 |
OPTIONS_DEFINE= DEBUG DOCS EXAMPLES QTDEBUGGER |
70 |
DEBUG_DESC= Build with debug profiling and symbols |
|
|
71 |
DOCS_DESC= Install additional MAME documentation |
72 |
EXAMPLES_DESC= Install example ${EMULATOR}.ini configuration |
73 |
|
79 |
|
74 |
DEBUG_MAKE_ENV= DEBUG=1 |
80 |
DEBUG_DESC= Build with debug profiling and symbols |
|
|
81 |
DOCS_DESC= Install extensive online MAME documentation |
82 |
EXAMPLES_DESC= Install example mame.ini configuration |
83 |
QTDEBUGGER_DESC= Build Qt interactive low-level machine debugger |
75 |
|
84 |
|
76 |
GENIE= ${WRKSRC}/3rdparty/genie |
85 |
_GENIE= ${WRKSRC}/3rdparty/genie |
77 |
MSUBTARGET= mame |
|
|
78 |
MTARGET= mame |
79 |
|
86 |
|
80 |
.include <bsd.port.options.mk> |
87 |
.include <bsd.port.options.mk> |
81 |
|
88 |
|
|
|
89 |
.if ${OPSYS} == FreeBSD && ${OSVERSION} > 1400000 |
90 |
#LLVM_USES= llvm:15,build # This convention does not work? |
91 |
USES+= llvm:15,build # MAME always selects /usr/bin/c++ |
92 |
MAKE_ENV+= OVERRIDE_AR="llvm-ar${LLVM_VERSION}" \ |
93 |
OVERRIDE_CC="${COMPILER_TYPE}${LLVM_VERSION}" \ |
94 |
OVERRIDE_CXX="${COMPILER_TYPE}++${LLVM_VERSION}" \ |
95 |
OVERRIDE_LD="lld${LLVM_VERSION}" |
96 |
.else |
97 |
MAKE_ENV+= OVERRIDE_AR="${AR}" \ |
98 |
OVERRIDE_CC="${CC}" \ |
99 |
OVERRIDE_CXX="${CXX}" \ |
100 |
OVERRIDE_LD="${LD}" |
101 |
.endif |
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 |
MAKE_ENV+= DEBUG=1 \ |
85 |
OPTIMIZE="0" \ |
106 |
OPTIMIZE=0 \ |
86 |
PROFILER="1" \ |
107 |
PROFILER=1 \ |
87 |
SYMBOLS="1" |
108 |
SYMBOLS=1 |
88 |
.else |
109 |
.else |
89 |
# avoid address space exhaustion in linker on armv7 |
110 |
# Attempt to avoid address space exhaustion during linking. |
90 |
LDFLAGS+= -s |
111 |
LDFLAGS+= -s |
|
|
112 |
MAKE_ENV+= STRIP_SYMBOLS=1 |
91 |
.endif |
113 |
.endif |
92 |
|
114 |
|
93 |
.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH:Mpowerpc64*} |
115 |
#.if ${PORT_OPTIONS:MQTDEBUGGER} |
|
|
116 |
MAKE_ENV+= USE_QTDEBUG=1 |
117 |
USES+= qt:5 |
118 |
USE_QT= core gui widgets buildtools:build qmake:build |
119 |
#.else |
120 |
#MAKE_ENV+= USE_QTDEBUG=0 |
121 |
#.endif |
122 |
|
123 |
.if ${ARCH:Maarch64} || ${ARCH:Mamd64} || ${ARCH:Mpowerpc64*} |
94 |
MAKE_ARGS+= PTR64=1 |
124 |
MAKE_ARGS+= PTR64=1 |
95 |
.endif |
125 |
.endif |
96 |
|
126 |
|
97 |
EMULATOR= ${MSUBTARGET} |
|
|
98 |
PLIST_SUB+= EMULATOR=${EMULATOR} |
99 |
|
100 |
do-build-DOCS-on: |
127 |
do-build-DOCS-on: |
101 |
(cd ${WRKSRC}/docs && ${SETENV} ${MAKE_ENV} \ |
128 |
(cd ${WRKSRC}/docs && \ |
102 |
${MAKE_CMD} ${MAKE_ARGS} html \ |
129 |
${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 |
130 |
@${RM} ${WRKSRC}/docs/build/html/.buildinfo |
105 |
|
131 |
|
106 |
do-install: |
132 |
do-install: |
Lines 110-118
do-install:
Link Here
|
110 |
${STAGEDIR}${PREFIX}/bin |
136 |
${STAGEDIR}${PREFIX}/bin |
111 |
.endfor |
137 |
.endfor |
112 |
|
138 |
|
113 |
.for data in artwork bgfx ctrlr ini hash language plugins samples |
139 |
.for DATA in artwork bgfx ctrlr ini hash language plugins samples |
114 |
(cd ${WRKSRC} && \ |
140 |
(cd ${WRKSRC} && \ |
115 |
${COPYTREE_SHARE} ${data} ${STAGEDIR}${DATADIR}) |
141 |
${COPYTREE_SHARE} ${DATA} ${STAGEDIR}${DATADIR}) |
116 |
.endfor |
142 |
.endfor |
117 |
|
143 |
|
118 |
${MKDIR} ${STAGEDIR}${DOCSDIR} |
144 |
${MKDIR} ${STAGEDIR}${DOCSDIR} |
Lines 120-144
do-install:
Link Here
|
120 |
${STAGEDIR}${MANPREFIX}/man/man1 |
146 |
${STAGEDIR}${MANPREFIX}/man/man1 |
121 |
${INSTALL_MAN} ${WRKSRC}/docs/build/man/*.1 \ |
147 |
${INSTALL_MAN} ${WRKSRC}/docs/build/man/*.1 \ |
122 |
${STAGEDIR}${MANPREFIX}/man/man1 |
148 |
${STAGEDIR}${MANPREFIX}/man/man1 |
123 |
${INSTALL_MAN} ${WRKSRC}/docs/man/${EMULATOR}.6 \ |
149 |
${INSTALL_MAN} ${WRKSRC}/docs/man/*.6 \ |
124 |
${STAGEDIR}${MANPREFIX}/man/man6 |
150 |
${STAGEDIR}${MANPREFIX}/man/man6 |
125 |
${INSTALL_MAN} ${WRKSRC}/docs/LICENSE \ |
|
|
126 |
${STAGEDIR}${DOCSDIR} |
127 |
(cd ${WRKSRC}/docs && \ |
128 |
${COPYTREE_SHARE} legal ${STAGEDIR}${DOCSDIR}) |
129 |
|
130 |
do-install-DEBUG-off: |
131 |
${INSTALL_PROGRAM} ${WRKSRC}/${MSUBTARGET} \ |
132 |
${STAGEDIR}${PREFIX}/bin/${EMULATOR} |
133 |
|
151 |
|
134 |
do-install-DEBUG-on: |
152 |
do-install-DEBUG-on: |
135 |
${INSTALL_PROGRAM} ${WRKSRC}/${MSUBTARGET}d \ |
153 |
${INSTALL_PROGRAM} ${WRKSRC}/mamed \ |
136 |
${STAGEDIR}${PREFIX}/bin/${EMULATOR} |
154 |
${STAGEDIR}${PREFIX}/bin/mame |
|
|
155 |
|
156 |
do-install-DEBUG-off: |
157 |
${INSTALL_PROGRAM} ${WRKSRC}/mame \ |
158 |
${STAGEDIR}${PREFIX}/bin/ |
137 |
|
159 |
|
138 |
post-build: |
160 |
post-build: |
139 |
cd ${WRKSRC}/docs && ${SETENV} ${MAKE_ENV} \ |
161 |
(cd ${WRKSRC}/docs && \ |
140 |
${MAKE_CMD} ${MAKE_ARGS} man \ |
162 |
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} man SPHINXBUILD=sphinx-build-${PYTHON_VER}) |
141 |
SPHINXBUILD=sphinx-build-${PYTHON_VER} |
|
|
142 |
|
163 |
|
143 |
post-install-DOCS-on: |
164 |
post-install-DOCS-on: |
144 |
${MKDIR} ${STAGEDIR}${DOCSDIR} |
165 |
${MKDIR} ${STAGEDIR}${DOCSDIR} |
Lines 148-176
post-install-DOCS-on:
Link Here
|
148 |
post-install-EXAMPLES-on: |
169 |
post-install-EXAMPLES-on: |
149 |
${MKDIR} ${STAGEDIR}${EXAMPLESDIR} |
170 |
${MKDIR} ${STAGEDIR}${EXAMPLESDIR} |
150 |
${INSTALL_DATA} ${WRKDIR}/target.ini \ |
171 |
${INSTALL_DATA} ${WRKDIR}/target.ini \ |
151 |
${STAGEDIR}${EXAMPLESDIR}/${EMULATOR}.ini |
172 |
${STAGEDIR}${EXAMPLESDIR}/mame.ini |
152 |
|
173 |
|
153 |
post-patch: |
174 |
post-patch: |
|
|
175 |
# Prefer some system headers over bundled. |
154 |
@${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/dirent.h |
176 |
@${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/dirent.h |
155 |
@${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/signal.h |
177 |
@${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/signal.h |
156 |
@${MV} ${GENIE}/build/gmake.freebsd \ |
178 |
# Accommodate GENie conception of BSD. |
157 |
${GENIE}/build/gmake.bsd |
179 |
@${MV} ${_GENIE}/build/gmake.freebsd \ |
158 |
@${REINPLACE_CMD} -e \ |
180 |
${_GENIE}/build/gmake.bsd |
159 |
's|^\(AR \)|#\1| ; \ |
181 |
# Patch build to use bundled PNG. |
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 | \ |
182 |
@${GREP} -rl '"png.h"' ${WRKSRC}/src | \ |
175 |
${XARGS} ${REINPLACE_CMD} -e 's|"png.h"|"localpng.h"|' |
183 |
${XARGS} ${REINPLACE_CMD} -e 's|"png.h"|"localpng.h"|' |
176 |
@${REINPLACE_CMD} -e 's|"util/png.h"|"util/localpng.h"|' \ |
184 |
@${REINPLACE_CMD} -e 's|"util/png.h"|"util/localpng.h"|' \ |