Instead of splitting remove / exclusion of unwanted files in 2-3 places
(`all` rule, `update` rule, and update script in some cases), install
the same files in debug & release builds, and exclude unwanted stuff
when generating the update.
This should finally fix the CI issue with OCR tests (since we don't
remove the `data/dict` & `data/tessdata` directories on release build
anymore).
- fix SDK location: our install has 2 different versions: under
`tools/bin/apkanalyzer` and `cmdline-tools/latest/bin/apkanalyzer`,
but only the later is functional (trying to use the former raise
some classpath exceptions)
- always use the SDK location, don't try to detect it: it's better to
fail with a more explanatory "apkanalyzer: command not found" error
than having the shell try to run a command with the wrong executable
(`manifest …` because `$(APKANALYZER)` is empty)
- standalone: no other dependencies than Python (>= 3.7) and adb
(Android >= 4.3 [Jelly Bean])
- filter KOReader's traces, and other processes chatter about KOReader
(e.g. mentions of its application ID or PID)
- show time, PID, TID (when different), tag, priority, and message
- only parse the log (don't rely on `adb shell` commands)
- can be used as a filter, including on its own (uncolored) output
- we can simplify instructions to users when asking for detailed logs
Why not use pidcat?
- project is unmaintained
- does not support Python 3 (need at least one extra patch)
- mangle long lines by wrapping them, even when not outputting to a terminal,
which is a big no-no, IMHO (as it break searching, copy pasting, etc…)
Use `ANDROID_NAME` for last part so setting it as an environment
variable to something like `dev` allows for a stable APK name
across different revisions.
- out-of-tree luajit-launcher build: no leftovers after `make clean`
- use the luajit library compiled by base: no point wasting time
building a second (different, possibly incompatible) version
- forward unknown make targets to base
- add `cmake` and `staging` directories to ignored output artifacts
- drop `package.path` and `package.cpath` luarocks specific entries
If the Android NDK and/or SDK are not setup, `kodev` will try to invoke
the `android-ndk` and/or `android-sdk` make targets. This can't be done
with `TARGET=android`, as `base/Makefile.defs` will error out trying to
call the (missing) compiler to get the target machine. Those rules need
to be available to all targets.