* Impl. sectioned font table in firmware
* make_translation.py: Extract build_symbol_conversion_table function
* Put translation indices and strings in a struct
* Move translation objcopy step to Python
* Impl. multi-language firmware demo
* Impl. strings-compressed multi-lang firmware demo
* Add font compression to multi-lang demo
* Refactor Makefile a bit
* Fix rules for make < 4.3
* Add more multi-lang groups
* Add Pinecil multi-lang CI build
* Add lzfx compression license text
* Remote multi-language demo group
* Fix build after merge
* Import code from BriefLZ
* Change brieflz for our use case
* Change compression to use brieflz
* Remove lzfx code
* Update license file for brieflz
* Exclude brieflz files from format check
* Add BriefLZ test
The debug symbols are only part of the generated ELF files,
they are stripped from the .bin and .hex files.
So there should be no disadvantage of always generating it.
Before:
52456 Pinecil_EN.bin
81700 Pinecil_EN.elf
140759 Pinecil_EN.elf.map
147554 Pinecil_EN.hex
After:
52456 Pinecil_EN.bin
650556 Pinecil_EN.elf
191974 Pinecil_EN.elf.map
147554 Pinecil_EN.hex
This generates dedicates Translation.cpp files for translation language
and derives all language-specific data from them.
The Makefile is extended to also take care of generating these source
files.
This allows reuse of nearly all object files between builds of different
languages for the same model and regenerating the translation sources if
necessary.
This speeds up the release builds and the normal write-compile-cycle
considerably.
It also eliminates miscompilations when manually building different
languages.