AliceLR 52197ee67f Update notes on GL renderers for Switch 5 gadi atpakaļ
..
3ds 6b32bbb8c7 Add stdio redirection support, enable for console ports 5 gadi atpakaļ
amiga 366fbe0e58 Allow argument passing to CONFIG.arch scripts 5 gadi atpakaļ
android c0dc80e6c7 Re-add libgcc linkage but fix it up. 14 gadi atpakaļ
darwin ec391ffced Fix typo in darwin README 6 gadi atpakaļ
gp2x b2ef1987e8 Add generic context-sensitive joystick actions (#157) 5 gadi atpakaļ
mingw d3af12a7cd Use -Wl,-Bstatic and -Wl,-Bdynamic for mingw builds 5 gadi atpakaļ
msvc cbbbdcd890 Clipboard Handler Reorganization (#122) 6 gadi atpakaļ
nds 9c675e37cc Silence spurious NDS ram.c warnings 5 gadi atpakaļ
none 47ee71dc32 Implement side-by-side debug symbol file on all platforms. 14 gadi atpakaļ
pandora c01f7ac930 Initial SDL2 port. Backwards compat is broken. Software only. 11 gadi atpakaļ
psp 6b32bbb8c7 Add stdio redirection support, enable for console ports 5 gadi atpakaļ
switch 52197ee67f Update notes on GL renderers for Switch 5 gadi atpakaļ
unix 659eac3a36 Removed deprecated elements/categories from .desktop files. (#162) 5 gadi atpakaļ
wii ad624dc648 Add "softscale" renderer for SDL 2 builds (#175) 5 gadi atpakaļ
xcode 648018bfcb Updated Xcode project for the v2.91g build. (#148) 6 gadi atpakaļ
README 03f9d92a21 package.sh is dead 14 gadi atpakaļ
install.inc b2ef1987e8 Add generic context-sensitive joystick actions (#157) 5 gadi atpakaļ
lha.inc 5a3f02c3dd Re-implement 7 package.sh architectures as build system extensions. 14 gadi atpakaļ
manifest.sh b121feaedb Move updater restart code to main, add core_full_restart 5 gadi atpakaļ
zip.inc 5a3f02c3dd Re-implement 7 package.sh architectures as build system extensions. 14 gadi atpakaļ

README

MULTI-PLATFORM SUPPORT FOR MEGAZEUX

The arch/ directory structure contains any code/machinery which is platform
specific. Though is it dubiously named "arch" this refers to the platform
"architecture" rather than the CPU architecture. For example, although GP2X
and NDS both use ARM CPUs, they require different library and build system
machinery to work correctly.

DIRECTORY LAYOUT

Most directories here contain at least a README file describing what toolchain
and dependencies they require to work correctly. Some might also define
additional targets, for post-processing binaries or installing them on the
system.

Additionally, all of these directories must have a Makefile.in which the build
system will automatically include. This file should initialize any variables
that can be tweaked, for example the location of libraries or compiler flags.
The existing Makefile.in files should be a reasonable guide to this
functionality.

ADDING A PLATFORM TO MEGAZEUX

Adding support for a new platform is trivial. Think of a short name for the
platform (for example, Nintendo Dual-Screen is "nds") then create a directory
in arch/ with that name. Create a Makefile.in for your platform. Initially,
you may find configuring for "unix" and then manually altering the
"platform.inc" in the top level is enough to get your build to succeed.

Then, some changes must be made to config.sh to automatically generate both
the src/config.h header (which is fully generic) and the platform.inc. This
script is what users of your port will invoke to build the package.

You may also want to make sure the "build" and "archive" targets do something
for your platform. These targets make auto-builds and shipping binary
packages much easier.

--ajs.