NOTE: This work is not yet fully complete; kernel is done, but
it was taking an exceedingly long time to get through libstratosphere.
Thus, I've temporarily added -Wno-error=unused-result for libstratosphere/stratosphere.
All warnings should be fixed to do the same thing Nintendo does as relevant, but this
is taking a phenomenally long time and is not actually the most important work to do,
so it can be put off for some time to prioritize other tasks for 21.0.0 support.
Apparently, at some point they started allowing maxlayers=3, which caused this code to not work.
Looking at latest FS, they always reference DataStorage instead of level+2 for the final level.
This fixes parsing update romfs for newer games, e.g. Super Mario Galaxy 2.
- Invoke Python scripts with `python3` if `python` is not available.
Despite SciresM preferring Python 2, the scripts used in the build all
worked in Python 3 already, so this is just a Makefile change.
- Export `MAKE` to work around a GNU bug.
See the comment for details.
- `rmdir --ignore-fail-on-non-empty` -> `rmdir 2>/dev/null`
macOS `rmdir` doesn't support `--ignore-fail-on-non-empty`.
This is a slight downgrade in functionality, because now we ignore all
errors from `rmdir` rather than just 'Directory not empty'. I could
have avoided this with a more complicated fix, but the benefit strikes
me as not worth the complexity. Let me know if you disagree.
- Append `$(DEVKITPRO)/tools/bin/` to `$PATH` when invoking
`build_romfs`.
This avoids the need to add devkitPro directories to `$PATH` when
building Atmosphere.
If you already have `build_romfs` in your PATH, then that will still
take precedence. (This seemed like the nicer option, though I don't
have strong opinions.)