Commit graph

23 commits

Author SHA1 Message Date
Jools Wills
e3e1d6eeff mame - disable distcc
Mame doesn't work with distcc - add the nodistcc flag.
2025-01-27 21:23:44 +00:00
Jools Wills
c3d5ad2894 mame - fix rpi3 build on 32bit arm userland with aarch64 kernel
Workaround g++-12 compiler bug/compilation issue on 32bit arm userland with aarch64 kernel on the rpi3 (cortex-a53)

Disabling -ftree-slp-vectorize works around the issue:

    {standard input}: Assembler messages:
    {standard input}:4045: Error: co-processor offset out of range
    make[2]: *** [skeleton.make:2727: obj/Release/src/mame/skeleton/scopus.o] Error 1

Add arch_opts_cxx array to handle adding additional parameters to ARCHOPTS_CXX.
2025-01-27 21:23:38 +00:00
cmitu
99c59cc688 mame: fix linker flags for debug info removal
Seems like setting `LDFLAGS` is not enough (anymore) to strip debugging info from the binaries.
Use `ARCHOPTS` instead, as the build documentation recommends.
2024-12-31 07:50:51 +00:00
Jools Wills
f2cbaea6b7 mame/lr-mame - fix building on aarch64 kernel with 32bit arm userland
Force PLATFORM=arm on arm systems. Without this mame builds for aarch64 and sets PTR64=1 erroring out with:

    static_assert(sizeof(void *) == 8, "PTR64 flag enabled, but was compiled for 32-bit target\n");

This also fixes building of lr-mame2016
2024-11-05 19:40:42 +00:00
Jools Wills
dc2ac1fcee mame/lr-mame - fix building on bullseye
* MAME specifically checks for GCC 10.3 so we need to compare with the full GCC version as bullseye has 10.2.
 * lr-mame - Remove "master" branch from rp_module_repo so the _get_version tag is passed as a branch to checkout
 * lr-mame - Simplify _get_version_lr-mame as the tagname variable was only used once
2024-07-13 16:18:43 +01:00
Jools Wills
9e8362a98c Convert modules to using variable comparisons in flags
Replace GCC version checks in depends_* functions with variable comparisons in flags.
2024-05-21 21:20:32 +01:00
cmitu
b3fc3bed50 mame: add GCC requirements for version 0.265
Starting with version 0.265 (April 2024), GCC 10.3 is required for building MAME.
Enforce this requirement when building the emulator and libretro cores, Debian Buster will be getting 0.264 as the last version.
2024-04-30 15:45:07 +01:00
cmitu
636a1789bc mame: fix building latest version with old 'libzstd'
Version 0.263 introduced support for ZSTD compression for CHD files, but the version in Debian 10 Buster is not recent enough to compile MAME. Use the bundled source for `libzstd` instead of the system provided libraries for now.
2024-03-09 17:06:36 +00:00
cmitu
4b4d467846 mame: modify build instructions and dependencies
Made a few tweaks to optimize bulding MAME:

 - bump the RAM requirements, to ensure there's enough memory to complete the build.
 - don't build the MAME debugger on non-desktop platforms, since it would need a windowing environment to run anyway.
   This allows us to remove the QT dependencies and debugger compilation steps.
 - use system's flac/zstd libraries (more could be added)
 - tell the linker to remove debugging info, so the binaries don't need a 'strip' call afterwards
 - synchronize the optimization level in MAME with RetroPie's optimization flags (-O2), to avoid extra optimization during compiling (MAME defaults to '-O3').
2024-02-25 04:22:33 +00:00
Jools Wills
204b9eb468 mame - fix linking on Raspberry Pi OS bullseye
Latest mame has an issue linking on Raspberry Pi OS Bullseye. It fails with

/usr/bin/ld: BFD (GNU Binutils for Raspbian) 2.35.2 assertion fail ../../bfd/elf32-arm.c:9876

Work around this by using the gold linker.
2024-01-23 17:27:25 +00:00
Jools Wills
508f3d1e64 mame - fix building 7zip/lzma on armv7 due to missing hardware crc
7zip/lzma assumes hardware crc support on arm, which breaks compilation on armv7.

Disable the check so it falls back to a software implementation.
2023-12-29 12:57:44 +00:00
cmitu
810426d9dd mame: force 'char' to be signed on ARM platforms
Forcing 'char' to be signed fixes crashing in some drivers, needed on ARM.

The default behavior for 'char' is arch/ISA specific, see:
https://stackoverflow.com/questions/46463064
2023-08-31 16:22:54 +01:00
Jools Wills
90d535028b Don't use compareVersions for GCC version comparisons
gcc -dumpversion on GCC >= 7 seems to provide the major version but the documentation suggests this depends on how it's configured.
We only need to test the major version so using compareVersions isn't required.

https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html states:
>Print the compiler version (for example, 3.0, 6.3.0 or 7)—and don’t do anything else. This is the compiler
>version used in filesystem paths and specs. Depending on how the compiler has been configured it can be
>just a single number (major version), two numbers separated by a dot (major and minor version) or three
>numbers separated by dots (major, minor and patchlevel version).

Ensure __gcc_version only contains the major version just in case in system.sh
2023-03-05 14:09:26 +00:00
cmitu
21175036fc mame: update QT5 dependency list
Similar to #3397, replace 'qt5-default' which is no longer present on current Debian/Ubuntu releases.
2021-10-14 05:09:55 +01:00
dankcushions
764855a996 MAME Pulse dependency 2021-05-09 11:06:08 +01:00
cmitu
e87c22b08c mame: remove binary name, not needed anymore
The suffix was removed in 0.229 (adc23f3f74)
2021-05-05 16:33:54 +01:00
cmitu
25e1e48529 licences: update links for some modules 2021-05-04 20:28:37 +01:00
Jools Wills
4c99509c76 Updating modules to use the new rp_module_repo function hooks
ppsspp was incorrectly changed in 23b154b4 as it uses a subfolder which needs to be specified
2021-02-15 23:54:13 +00:00
Jools Wills
00cbeed029 mame - use download function 2021-01-21 05:20:29 +00:00
cmitu
44f00eb393 lr-mame,mame: use python3 to build recent mame versions
The change impacts `lr-mame`,`lr-mess`,`lr-mame2016`,`lr-mess2016` and `mame`.
It should fix building on new Ubuntu 20.04+ installations, which don't have a default `python` executable.
Since `python3` is automatically needed by the installation (via `python3-pyudev` for `joy2key`), no explicit dependency for `python3` was added.
2020-11-01 11:13:26 +02:00
cmitu
3766cf1dec mame: use python3 to build, when available
Should fix the situation when there is not default 'python', but python3
is installed, like default installation of Ubuntu 20.04 LTS.
2020-09-19 05:15:02 +01:00
Jools Wills
e3cd002b74 mame - binary name is "mame" on aarch64 2020-07-30 04:28:30 +01:00
George McMullen
ad693be0a3 MAMEdev MAME installation script 2020-05-20 15:17:50 -07:00