libretro-super.sh works, but you currently need to set platform and ARCH
in your environment before running it as you do with libretro-build.sh
now (see libretro-build-ios.sh wrapper for what I mean). The major work
left here is the --platform argument and a bunch of little things that
will mostly fall into place when that's done. Also need to settle on a
license for this.
My habit for scripts is public domain, but it could be argued that
libretro-super is no longer "a script". Still, I want people to use
this if it's useful to them, so I'd prefer a totally unencumbered
license in the vein of MIT/BSD/CC-BY. I've tentatively selected CC-BY
as a RFC on it vs. MIT, mostly because it tries to explain things in
plain language and unlike MIT/BSD is reviewed in the context of
(d)evolving international laws to ensure that it still does what is
intended.
This script will replace libretro-build.sh and libretro-fetch.sh (and
probably others), but it's not quite ready yet. It's also completely
undocumented outside of the source code. _I_ know what it does, but you
shouldn't use it just yet. ;)
This is mostly for libretro-super.sh, but libretro-build-common.sh has
already been updated to work with them. Getting very close to ready to
commit libretro-super.sh now—it just needs to learn to do something with
the devkits and players.
The partially-finished use of can_build_module() had to be pulled from
libretro-fetch because how it works has changed a little bit. Don't
worry too much though because libretro-super.sh already fetches using
the new setup. It's just not quite ready yet.
What (should) work):
- LIBRETRO_DEVELOPER (default 1) to output all build progress
- LIBRETRO_LOG_DIR (default $WORKDIR/log) to change WHERE logs get
written. Useful for buildbots that have multiple WORKDIRs to put
logs in roughly the same place.
- LIBRETRO_LOG_SUPER (default libretro-super.log) to change the name of
libretro-build.sh's log file. No log would be written if unset, but
script-modules/log.sh sets it if unset for now.
- LIBRETRO_LOG_CORE (default %s.log) to change the name pattern for a
core log file. The %s is replaced with the "safe" core name used by
libretro-super's rules.
- LIBRETRO_LOG_APPEND (default ""), if set, would not clobber the log
files the next time you ran libretro-super. Caution: mame's output
is 34 megabytes on its own for a single successful build
What doesn't work yet:
- You should be able to unset LIBRETRO_LOG_SUPER and LIBRETRO_LOG_CORE
and have your decision mean something. This is the #1 thing I must
change, and I will do so in the next day or so.
- We assume that if you want output to screen and log, you'll have the
tee command. What if you don't? We choose log over screen in that
case, but tee is such a trivial tool to implement, perhaps we should?
- Currently logs lack date stamps. Bash's built-in printf has a way to
do this, but Apple STUPIDLY disables it because Apple. Turns out
that bash 2.05a didn't have the feature anyway. You may not have the
UNIX date command on Windows if you're somehow running bash from
cmd.exe. Worse, you have a command of the same name that requires a
/t argument to do half of what date does on UNIX. Running into
limits of bash here, easily solved using most anything else.