From: Steinar H. Gunderson Date: Thu, 17 Jun 2021 21:47:08 +0000 (+0200) Subject: Add Meson build files. X-Git-Url: https://git.sesse.net/?p=pistorm;a=commitdiff_plain;h=HEAD Add Meson build files. --- diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..acb36f8 --- /dev/null +++ b/meson.build @@ -0,0 +1,72 @@ +# To build: +# meson obj ; cd obj ; ninja +# +# To cross-compile from x86 to Raspberry Pi (including first-time setup), as root: +# dpkg --add-architecture armhf +# echo "deb [trusted=yes] https://archive.raspberrypi.org/debian/ buster main" > /etc/apt/sources.list.d/raspi.list +# apt update +# apt install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libsdl2-dev:armhf libraspberrypi0 +# meson --cross-file rpi.ini piobj ; cd piobj ; ninja + +project('pistorm', ['c','cpp'], default_options: ['buildtype=debugoptimized', 'warning_level=3', 'optimization=3'], version: 'dev') + +if host_machine.cpu_family() == 'arm' + add_project_arguments('-march=armv8-a', language: ['c', 'cpp']) + add_project_arguments('-mfloat-abi=hard', language: ['c', 'cpp']) + add_project_arguments('-mfpu=neon-fp-armv8', language: ['c', 'cpp']) +endif + +# Dependencies for Raylib. +c = meson.get_compiler('c') +raylib = c.find_library('raylib', dirs: [meson.current_source_dir() + '/raylib']) +mdep = c.find_library('m') +glesv2dep = c.find_library('brcmGLESv2', dirs: '/opt/vc/lib') +egldep = c.find_library('libbrcmEGL', dirs: '/opt/vc/lib') +bcmhostdep = c.find_library('bcm_host', dirs: '/opt/vc/lib') +raylibdep = declare_dependency(dependencies: [raylib, mdep, glesv2dep, egldep, bcmhostdep]) + +threaddep = dependency('threads') + +mainfiles = [ + 'emulator.c', + 'memory_mapped.c', + 'config_file/config_file.c', + 'config_file/rominfo.c', + 'input/input.c', + 'gpio/ps_protocol.c', + 'platforms/platforms.c', + 'platforms/amiga/amiga-autoconf.c', + 'platforms/amiga/amiga-platform.c', + 'platforms/amiga/amiga-registers.c', + 'platforms/amiga/pistorm-dev/pistorm-dev.c', + 'platforms/mac68k/mac68k-platform.c', + 'platforms/dummy/dummy-platform.c', + 'platforms/dummy/dummy-registers.c', + 'platforms/amiga/Gayle.c', + 'platforms/amiga/hunk-reloc.c', + 'platforms/amiga/cdtv-dmac.c', + 'platforms/amiga/rtg/rtg.c', + 'platforms/amiga/rtg/rtg-output-raylib.c', + 'platforms/amiga/rtg/rtg-gfx.c', + 'platforms/amiga/piscsi/piscsi.c', + 'platforms/amiga/net/pi-net.c', + 'platforms/shared/common.c', + 'platforms/shared/rtc.c', + 'a314/a314.cc', +] + +musashifiles = [ + 'm68kcpu.c', + 'm68kdasm.c', + 'softfloat/softfloat.c', + 'softfloat/softfloat_fpsp.c', +] + +m68kmake = executable('m68kmake', 'm68kmake.c', native: true) +musashi_generated = custom_target( + 'm68kmake', + input: ['m68k_in.c'], + output: ['m68kops.c', 'm68kops.h'], + command: [m68kmake, '.', '@INPUT@']) + +executable('emulator', [mainfiles, musashifiles, musashi_generated], dependencies: [raylibdep, threaddep]) diff --git a/rpi.ini b/rpi.ini new file mode 100644 index 0000000..41f41b4 --- /dev/null +++ b/rpi.ini @@ -0,0 +1,13 @@ +[binaries] +name = 'rpi' +arch = 'arm-linux-gnueabihf' +c = arch + '-gcc' +cpp = arch + '-g++' +strip = arch + '-strip' +pkgconfig = arch + '-pkg-config' + +[host_machine] +system = 'linux' +cpu_family = 'arm' +cpu = 'armv7l' +endian = 'little'