aboutsummaryrefslogtreecommitdiff
path: root/emulators/mame
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2019-08-01 19:17:57 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2019-08-01 19:17:57 +0000
commit89d09c3e09ade4e9d6be323d12ca41194c8aefc0 (patch)
tree9232d15156b7d1384809831f8099d684974d0994 /emulators/mame
parent7babc4e7e4bf19ef6e1e38b1e0e10f6ebd2119e8 (diff)
downloadports-89d09c3e09ade4e9d6be323d12ca41194c8aefc0.tar.gz
ports-89d09c3e09ade4e9d6be323d12ca41194c8aefc0.zip
emulators/mame: fix build on powerpc64
powerpc64 requires the same Makefile fix as amd64. Additionally, https://github.com/bkaradzic/bx/commit/684f7ec5d6a8e0d9c396bdd2dfc1f19244800557 is necessary. Approved by: linimon (mentor) Differential Revision: https://reviews.freebsd.org/D21055
Notes
Notes: svn path=/head/; revision=507824
Diffstat (limited to 'emulators/mame')
-rw-r--r--emulators/mame/Makefile6
-rw-r--r--emulators/mame/files/patch-3rdparty_bx_include_bx_inline_endian.inl29
-rw-r--r--emulators/mame/files/patch-3rdparty_bx_include_bx_inline_readerwriter.inl76
-rw-r--r--emulators/mame/files/patch-3rdparty_bx_include_bx_readerwriter.h10
-rw-r--r--emulators/mame/files/patch-3rdparty_bx_tests_readerwriter__test.cpp34
5 files changed, 152 insertions, 3 deletions
diff --git a/emulators/mame/Makefile b/emulators/mame/Makefile
index 52c6faad252f..4c2e7929f4d1 100644
--- a/emulators/mame/Makefile
+++ b/emulators/mame/Makefile
@@ -11,8 +11,8 @@ COMMENT= Multi Arcade Machine Emulator
LICENSE= GPLv2
-ONLY_FOR_ARCHS= amd64 i386
-ONLY_FOR_ARCHS_REASON= not yet ported to any arch other than x86
+ONLY_FOR_ARCHS= amd64 i386 powerpc64
+ONLY_FOR_ARCHS_REASON= not yet ported to any arch other than x86 and powerpc64
LIB_DEPENDS= libFLAC.so:audio/flac \
libexpat.so:textproc/expat2 \
@@ -58,7 +58,7 @@ DEBUG_MAKE_ENV= DEBUG=1
.include <bsd.port.options.mk>
-.if ${ARCH} == amd64
+.if ${ARCH} == amd64 || ${ARCH} == powerpc64
MAKE_ARGS+= PTR64=1
EMULATOR= ${MSUBTARGET}64
.else
diff --git a/emulators/mame/files/patch-3rdparty_bx_include_bx_inline_endian.inl b/emulators/mame/files/patch-3rdparty_bx_include_bx_inline_endian.inl
new file mode 100644
index 000000000000..3d54cf8049cd
--- /dev/null
+++ b/emulators/mame/files/patch-3rdparty_bx_include_bx_inline_endian.inl
@@ -0,0 +1,29 @@
+--- 3rdparty/bx/include/bx/inline/endian.inl.orig 2019-04-24 05:00:38 UTC
++++ 3rdparty/bx/include/bx/inline/endian.inl
+@@ -46,7 +46,7 @@ namespace bx
+ }
+
+ template <typename Ty>
+- inline Ty toLittleEndian(const Ty _in)
++ inline Ty toLittleEndian(Ty _in)
+ {
+ #if BX_CPU_ENDIAN_BIG
+ return endianSwap(_in);
+@@ -56,7 +56,7 @@ namespace bx
+ }
+
+ template <typename Ty>
+- inline Ty toBigEndian(const Ty _in)
++ inline Ty toBigEndian(Ty _in)
+ {
+ #if BX_CPU_ENDIAN_LITTLE
+ return endianSwap(_in);
+@@ -66,7 +66,7 @@ namespace bx
+ }
+
+ template <typename Ty>
+- inline Ty toHostEndian(const Ty _in, bool _fromLittleEndian)
++ inline Ty toHostEndian(Ty _in, bool _fromLittleEndian)
+ {
+ #if BX_CPU_ENDIAN_LITTLE
+ return _fromLittleEndian ? _in : endianSwap(_in);
diff --git a/emulators/mame/files/patch-3rdparty_bx_include_bx_inline_readerwriter.inl b/emulators/mame/files/patch-3rdparty_bx_include_bx_inline_readerwriter.inl
new file mode 100644
index 000000000000..83e00baf699a
--- /dev/null
+++ b/emulators/mame/files/patch-3rdparty_bx_include_bx_inline_readerwriter.inl
@@ -0,0 +1,76 @@
+--- 3rdparty/bx/include/bx/inline/readerwriter.inl.orig 2019-04-24 05:00:38 UTC
++++ 3rdparty/bx/include/bx/inline/readerwriter.inl
+@@ -273,7 +273,7 @@ namespace bx
+ }
+
+ template<typename Ty>
+- int32_t read(ReaderI* _reader, Ty& _value, Error* _err)
++ inline int32_t read(ReaderI* _reader, Ty& _value, Error* _err)
+ {
+ BX_ERROR_SCOPE(_err);
+ BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
+@@ -281,7 +281,7 @@ namespace bx
+ }
+
+ template<typename Ty>
+- int32_t readHE(ReaderI* _reader, Ty& _value, bool _fromLittleEndian, Error* _err)
++ inline int32_t readHE(ReaderI* _reader, Ty& _value, bool _fromLittleEndian, Error* _err)
+ {
+ BX_ERROR_SCOPE(_err);
+ BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
+@@ -329,7 +329,7 @@ namespace bx
+ }
+
+ template<typename Ty>
+- int32_t write(WriterI* _writer, const Ty& _value, Error* _err)
++ inline int32_t write(WriterI* _writer, const Ty& _value, Error* _err)
+ {
+ BX_ERROR_SCOPE(_err);
+ BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
+@@ -337,7 +337,7 @@ namespace bx
+ }
+
+ template<typename Ty>
+- int32_t writeLE(WriterI* _writer, const Ty& _value, Error* _err)
++ inline int32_t writeLE(WriterI* _writer, const Ty& _value, Error* _err)
+ {
+ BX_ERROR_SCOPE(_err);
+ BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
+@@ -346,8 +346,14 @@ namespace bx
+ return result;
+ }
+
++ template<>
++ inline int32_t writeLE(WriterI* _writer, const float& _value, Error* _err)
++ {
++ return writeLE(_writer, floatToBits(_value), _err);
++ }
++
+ template<typename Ty>
+- int32_t writeBE(WriterI* _writer, const Ty& _value, Error* _err)
++ inline int32_t writeBE(WriterI* _writer, const Ty& _value, Error* _err)
+ {
+ BX_ERROR_SCOPE(_err);
+ BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
+@@ -356,6 +362,12 @@ namespace bx
+ return result;
+ }
+
++ template<>
++ inline int32_t writeBE(WriterI* _writer, const float& _value, Error* _err)
++ {
++ return writeBE(_writer, floatToBits(_value), _err);
++ }
++
+ inline int64_t skip(SeekerI* _seeker, int64_t _offset)
+ {
+ return _seeker->seek(_offset, Whence::Current);
+@@ -392,7 +404,7 @@ namespace bx
+ }
+
+ template<typename Ty>
+- int32_t peek(ReaderSeekerI* _reader, Ty& _value, Error* _err)
++ inline int32_t peek(ReaderSeekerI* _reader, Ty& _value, Error* _err)
+ {
+ BX_ERROR_SCOPE(_err);
+ BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
diff --git a/emulators/mame/files/patch-3rdparty_bx_include_bx_readerwriter.h b/emulators/mame/files/patch-3rdparty_bx_include_bx_readerwriter.h
new file mode 100644
index 000000000000..5ff1110262cd
--- /dev/null
+++ b/emulators/mame/files/patch-3rdparty_bx_include_bx_readerwriter.h
@@ -0,0 +1,10 @@
+--- 3rdparty/bx/include/bx/readerwriter.h.orig 2019-04-24 05:00:38 UTC
++++ 3rdparty/bx/include/bx/readerwriter.h
+@@ -10,6 +10,7 @@
+ #include "endian.h"
+ #include "error.h"
+ #include "filepath.h"
++#include "math.h"
+ #include "string.h"
+ #include "uint32_t.h"
+
diff --git a/emulators/mame/files/patch-3rdparty_bx_tests_readerwriter__test.cpp b/emulators/mame/files/patch-3rdparty_bx_tests_readerwriter__test.cpp
new file mode 100644
index 000000000000..39a93c1e6f43
--- /dev/null
+++ b/emulators/mame/files/patch-3rdparty_bx_tests_readerwriter__test.cpp
@@ -0,0 +1,34 @@
+--- 3rdparty/bx/tests/readerwriter_test.cpp.orig 2019-07-24 09:54:15 UTC
++++ 3rdparty/bx/tests/readerwriter_test.cpp
+@@ -0,0 +1,31 @@
++/*
++ * Copyright 2010-2019 Branimir Karadzic. All rights reserved.
++ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause
++ */
++
++#include "test.h"
++#include <bx/readerwriter.h>
++
++TEST_CASE("writeLE", "")
++{
++ bx::SizerWriter writer;
++
++ bx::Error err;
++
++ int32_t total = bx::writeLE(&writer, 1.0f, &err);
++
++ REQUIRE(err.isOk() );
++ REQUIRE(total == 4);
++}
++
++TEST_CASE("writeBE", "")
++{
++ bx::SizerWriter writer;
++
++ bx::Error err;
++
++ int32_t total = bx::writeBE(&writer, 1.0f, &err);
++
++ REQUIRE(err.isOk() );
++ REQUIRE(total == 4);
++}