Commit graph

2475 commits

Author SHA1 Message Date
Solomon Peachy
adaae1731f tools: Switch CFLAGS to -Os -Wall -Wextra
(From -Og -W -Wall -pendantic)

Change-Id: If094a22e7c7cd4fb175909fd12b9d8de514f1f38
2025-05-23 09:01:56 -04:00
Solomon Peachy
70b6a08be5 lang: Update the documentation in the "master" english.lang
Also improve the documentation in voice-corrections.txt

Change-Id: I81cdd8b3aac71d849e8ce54211ee1fdff1d19f5b
2025-05-08 21:19:34 -04:00
Solomon Peachy
950909fd5a build: Further simplification of checkwps build.
Change-Id: Ic6436ba744457d92606eaf24d6449f8c7009ba0f
2025-05-06 14:27:04 -04:00
Solomon Peachy
862243df21 checkwps: Fix failure to build due to genlang changes
Change-Id: I69ecce18f199822bf076075a1963960b9dd89ef7
2025-05-06 14:23:57 -04:00
Solomon Peachy
5d5698a616 genlang: Fix inconsistent rules when enumerating strings
* sort contents of generated apps/lang/english.list
 * Ignore all entries with a source of 'none'
 * Filter out all destination strings not present in master english list
 * Always require '-e' argument

Change-Id: Ic86c0cb6c44139465cba6b6ce840131efe217c4d
2025-05-06 13:53:20 -04:00
Solomon Peachy
82f3d0c18f WIP hosted port to the Surfans F28
* Only bootloader builds
 * Plugins disabled
 * No keymaps to anything else
 * No simulator
 * Touchscreen not wired up yet
 * Audio still untested

Bugs:

 * rotary encoder does nothing in bootloader
   (might be bootloader bug, might be something else)

Other stuff pulled in:

 * Unify all of the (identical!) hibyos makefiles
 * Rename the "bootloader" to more generic name

Change-Id: I6d8a3b58de726db8e89cf193c90960a070a575c2
2025-05-04 18:34:22 -04:00
Solomon Peachy
f38109f8ed lang: Better handle duplicate translation target matches
For example, LANG_TIME_SET_BUTTON has these:

    *: none
    aigoerosq,erosqnative,gogearsa9200,samsungyh*: "PLAY = Set"
    gigabeat*,iaudiom5,iaudiox5,ipod*,iriverh10,iriverh10_5gb,mrobe100,sansac200*,sansaclip*,sansaconnect,sansae200*,sansafuze*: "SELECT = Set"
    iriverh100,iriverh120,iriverh300: "NAVI = Set"
    mpiohd300: "ENTER = Set"
    mrobe500: "HEART = Set"
    rtc: "ON = Set"
    vibe500: "OK = Set"

But all of these players will match their name _and_ the generic 'rtc'
feature that enables use of this phrase.  The language tooling
always used the final match in the list, so this resulted in
most devices showing the generic (and incorrect) 'ON = Set" instead
of the device-specific strings.

This patch changes the behavior so that only a match with the device
model itself can override the previously used string.

Change-Id: I93ee11b1e4925c39edaecdcbc13ccc51ed176a45
2025-05-04 18:34:22 -04:00
Solomon Peachy
c08bbaac49 Revert "lang: Complain if there are multiple target matches for a given string"
This reverts commit a88ef80560.
2025-05-04 09:21:18 -04:00
Solomon Peachy
a88ef80560 lang: Complain if there are multiple target matches for a given string
The tooling will always use the *final* match, which may or may not be
what is desired.  Treat this as a bug, and complain appropriately.

However, there is a special case.  The RTC set screen uses strings that
include the device button names. There should be an entry for the
specific device, but if not, we wanted to fall back to the string
specified by the 'rtc' feature flag as opposed to falling back to the
default, empty string.

To still support this, add a special "FALLBACK" value; If we end up
using this for a device, the tooling will treat this as a bug, and
complain accordingly.

This should fix FS#13615 and FS13616, and may introduce build failures
on targets that are missing appropriate entries.  We'll see.

Change-Id: Ie78bb247f968e19d450a0fbf6e1177b6d01126a1
2025-05-04 08:53:22 -04:00
Solomon Peachy
7c813a79d0 builds: Use consistent formatting for language codes in voice list.
...strictly speaking, what we use isn't correct (eg we should use es_MX
instead of es-mx) but the latter is clearer on the download page.

Change-Id: Ia1a21c4259826ca2a0f6755df1cb3db94e4a50b3
2025-05-03 11:15:12 -04:00
Solomon Peachy
61dc053ce1 voice: Enable Moldavian voice in the nightlies
Change-Id: I253434727af43645f7076be5c377ae0b5154bc56
2025-05-02 20:33:58 -04:00
Solomon Peachy
3ac252b840 FS#13614: Add Moldavian (ro_MD) language (Mihai Alexandru Vasiliu)
TTS is set up to use ro_RO, but is not enabled yet.

Change-Id: Id71e1453e58b03e0a4205f459de87a79ff11a10e
2025-05-02 16:51:23 -04:00
Solomon Peachy
12b9419006 Some fixes for language and voice scripts:
Languages:
  * Get rid of leading space on LANG_ID3_VBR [ " (VBR)" ]
  * Fix up sole user to insert the space programmically
 updatelang:
  * strip leading and trailing spaces on all phrases except VOICE_PAUSE
 voice.pl
  * Debug logging with UTF-8 output
  * Explicitly delete tab character from voiced strings

Change-Id: Ie466793479ce15ce7a9553770583a070530e7afd
2025-04-29 20:03:11 -04:00
Solomon Peachy
a3dfdb32f6 Revert "Toolchains: Update to GCC 9.5.0"
This reverts commit d87e9b99a6.

Reason for revert: Accidentally merged

Change-Id: Ib69e88cc93faa7d1a08c137977600d0659944128
2025-04-29 15:09:46 -04:00
Solomon Peachy
d87e9b99a6 Toolchains: Update to GCC 9.5.0
All toolchain dependencies are circa the GCC 9.5.0 release:

  GCC 9.5.0, binutils 2.38, gmp 6.2.1, mpfr 4.1.1, mpc 1.2.1, isl 0.18

Native:

 * arm - mini2g, nano2g seems to work
       - ipod6g boot hang on 9.5.0 (possibly leading to disk corruption)
 * mips - xduoox3 seems stable so far
 * m68k - binaries untested

Hosted:

 * arm - binaries untested
 * mips - erosq seems stable so far
 * Android NDK - unchanged at GCC 4.9.4

Change-Id: I4ca00edd49e1936b32f68f1e7b34df38e1d1d76e
2025-04-29 14:56:12 -04:00
Solomon Peachy
e72c42df20 voice: Add the bits needed to voice Ukrainian, and enable it by default
Change-Id: I002fd5022539db6f8e4270c24e0112e151f7e516
2025-04-29 14:33:35 -04:00
Solomon Peachy
6b063acaae toolchains: Ensure toolchain builds with C23 compilers
* binutils (mips) uses its own 'static_assert'
 * linux (mips) uses constexpr when generating headers

With these patches, all toolchains build successfully under GCC15

(These patches are still needed with the pending GCC9.5 bump)

Change-Id: Id2f8cca414d2907b6aa29612ae4fb0e8b5f79f79
2025-04-28 15:17:30 -04:00
Solomon Peachy
9159fc0159 builds: Enable nightly Romanian voice generation.
Change-Id: I1bb84d1c9e68158ea240be37f65721857e5181c2
2025-04-28 10:52:11 -04:00
Solomon Peachy
310e380056 voice: Add the bits necessary to generate Romanian voices.
Due to the coverage being below 85%, disabled for nightlies

Change-Id: I90641f472e5a5cbca147986501236bd1b2ca8a5b
2025-04-25 20:47:27 -04:00
Solomon Peachy
d3e0f44f3b builds: Correct short language ID for Swedish (sr->sv)
Change-Id: Ia0d4abe8a0c893518b913de9ee1d0680a3ebb828
2025-04-25 07:04:46 -04:00
Solomon Peachy
17c7357efe builds: Enable nightly Swedish voice
Via Piper's sv_SE-nst-medium

Change-Id: Idffbfdb0931085ce5d0015ed181fa92d66d06a51
2025-04-24 12:27:45 -04:00
Aidan MacDonald
83950bf233 New WIP port: Echo R1
The Echo R1 is a new open-hardware music player design, based
on the STM32H743 microcontroller. Schematics and hardware
documentation for it can be found here:

- https://github.com/amachronic/echoplayer

This is an incomplete port. The bootloader can be loaded using
OpenOCD and it can draw to the LCD using SPI. SDRAM is working
but hasn't been extensively tested.

Change-Id: Ifd2bee15c49868fbc989683d3ca14dce48bf3e18
2025-04-22 20:08:08 -04:00
Solomon Peachy
fb096e64b4 misc: Re-enable the -Wtautological-compare warning (GCC>=6)
Every globally surpressed warning potentially hides real bugs.  Let's
fix up the false positives.

Change-Id: I8f4ed43fac4c2496f7fcfafa1cb33633dcc7a9be
2025-04-22 12:48:36 -04:00
Aidan MacDonald
71d3bd2091 erosqnative: use same target ID for hw3/hw4 bootloaders
The bootloaders for version 3 and 4 hardware used separate target
IDs which now overlap with the Nano 3G / Nano 4G ports. It likely
makes sense for all the ErosQ native builds to share the same ID.

Change-Id: I40d166758744e8ba25931e568da11f374b2d7b90
2025-04-22 10:48:13 -04:00
Solomon Peachy
4cac35b603 misc: re-enable -Wshift-negative-value and -Wnonnull-compare (GCC6+)
Change-Id: I37c98da8d42fb6825b43006a549980b59d179698
2025-04-22 07:50:11 -04:00
Solomon Peachy
9d4632b0c3 misc: Clean up a pile of -Wunused-const-variable warnings
And re-enable the warning (applies to GCC 6+)

Change-Id: I7aa679ec65707db12de83c0433966b3821d07087
2025-04-21 21:13:59 -04:00
Solomon Peachy
c7eda36341 misc: Clean up a large pile of -Wexpansion-to-defined warnings
And re-enable the warning (applies with GCC 7+)

Change-Id: I406ce796ebd06bad53cab911e17a28265a79b420
2025-04-21 21:04:05 -04:00
Solomon Peachy
81e050871b updatelang: Correct grammatical goofs in some of the errors
Change-Id: I3795d89e68453e636188b26a1620226a836c8a4d
2025-04-20 11:58:38 -04:00
Solomon Peachy
f563fe54c2 updatelang: Alter syntax for 'phrase missing entirely' errors
Instead of 'this phrase missing entirely [...]' followed by the
verbatim phrase copied from English, instead the message now
reads 'the 'PHRASE_ID' is missing entirely [...].  This allows
the warning to be self-contained.

Change-Id: I413c29e0c1f6616e74d875d197b34c4724330d67
2025-04-19 21:59:01 -04:00
Aidan MacDonald
1aa9f26b02 arm: workaround to build Cortex-M7 targets with GCC 4.9
Cortex-M7 support was added in GCC 5, while GCC 4.9 only
supports the M4. The instruction set is almost identical
between both processors; the only difference is that the
M7 supports double-precision floating point and the M4
doesn't.

Since Rockbox currently doesn't use the FPU, building M7
targets as M4 works fine.

Change-Id: I5880d6e81a85fa9b3e16e08d57e7955b4493df0b
2025-04-19 13:16:36 -04:00
Vencislav Atanasov
545506c923 New port: iPod Nano 4G
Currently, only the development bootloader can be built successfully.

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: I74ea0da999ddb1d8ce5d0f5434141b3f0b5f7448
2025-04-18 20:40:49 -04:00
Vencislav Atanasov
d6cd237f80 New port: iPod Nano 3G
Currently, only a bootloader can be built successfully. The development bootloader is functional, it enables further progress on the port.

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: Idf85e42334b0e0ae36f9ed273e2940d5d7736e34
2025-04-18 20:10:29 -04:00
Solomon Peachy
8d5fd1b20b manual: add 'manual-7zip' build target for 7zipped HTML manual.
7zip produces files nearly *half* the size of a zipped one.

Change-Id: Ic8bc4129dd4106a32060c98049061ea3848ebddc
2025-04-18 11:24:40 -04:00
Aidan MacDonald
7e8a818d95 arm: add ARM architecture profile detection
Add some logic to detect classic and M-profile cores, and make
this info available to the build system. All existing targets
are classic profile.

Change-Id: I07bfcd418bcaa6297b9bbf889fc189f167147428
2025-04-18 09:22:48 -04:00
Solomon Peachy
b3caf32f78 voice: Disable Greek voicing in daily and release builds
...Its coverage is below the 80% threshold.  If anyone complains, they
can help improve the translation coverage first.

Change-Id: I0201497ec1209a7d125ac99ec45de6e2a9e41098
2025-04-07 08:44:43 -04:00
Solomon Peachy
8b54bec33e tools: Release scripts should only create artefacts for _stable_ targets
...Instead of including unstable targets too.  Those have to make do with
dailies.

Change-Id: Ie7d75338dab7b395e1f5980da54bc03f4b9f0184
2025-04-05 20:47:23 -04:00
Solomon Peachy
1fadf1cd89 Disable nightly Norweigan and Czech voice generation
They are hovering at 61% and 73% respectively.  Our current cutoff
is 75%, and that should arguably be raied to at least 80%.

If anyone complains we can politely request they help with the
translation.

Change-Id: I39fd0a3b40311669c2a644de8c359a29ae066e75
2025-04-04 11:31:38 -04:00
Solomon Peachy
4bdbd0785b tools: Update release script so that it generates 7z archives
Change-Id: Icc41a54af590d71a97baff16ad1c0124b26b0d0c
2025-04-01 17:26:08 -04:00
Solomon Peachy
7d51b14cca tools: Alter the 'voice_url' in the [release] build-info
Now it's consistent with everything else.  All old files have been renamed.

Change-Id: I5c6974fb30cc90a7aedb732d8f970800c7de74c4
2025-04-01 07:35:12 -04:00
Solomon Peachy
0b214badc8 builds: 4.0 is out, make it official
Change-Id: I61dc303c4d68a0d9cf559ecff2373f1f09fef01e
2025-04-01 06:32:12 -04:00
Solomon Peachy
e094c599fa partial revert of previous commit, broke DX50/DX90 builds
Change-Id: I728034bf5c8c6dc53e791421afa7eb700495ab55
2025-03-30 17:08:09 -04:00
Solomon Peachy
4ff880a15c build: make sure rockbox-info.txt is included in zip builds
Fixes regression in 25f3ba5db4

Change-Id: I170618e3d14d48a154c67555345b0ecaa35d3360
2025-03-30 16:52:46 -04:00
Solomon Peachy
e4cf213d5d build-info: source code should be called 'rockbox-source-VERSION.7z'
Change-Id: Ib2acd37ce48857032628b1288df69a24391e5b3c
2025-03-30 14:35:47 -04:00
Solomon Peachy
25f3ba5db4 build: instead of 'ifdef NODEPS' use 'ifneq ($NODEPS,)'
This way we can set NODEPS from within the makefiles, allowing
the fontzip to be buildable by itself again

Change-Id: Icc4022fef3805b39a97b7bc5d42719ee6522afd1
2025-03-29 14:33:20 -04:00
Solomon Peachy
7fe0a95dd3 build: Add additional archive types to 'make clean' target
Change-Id: I6dd27ba8a793367b9c1095082238629a53081fb4
2025-03-27 21:34:51 -04:00
Solomon Peachy
70dc293a60 build: drop 'bzip2' target, add 'full7zip', 'fullgzip', and 'fullxz'
The net result is _simpler_ as it uses the same rules for creating
the subvariations.

Change-Id: I8618a0beb2e1ada156468df3d2b45ff53d49c8c7
2025-03-27 21:17:48 -04:00
Solomon Peachy
1959fade86 tools: More fixes for relese voice script.
...Was broken for piper-based models

Change-Id: Ib1df918ecde69bff6b048f8dad7451399b93d05d
2025-03-27 07:15:36 -04:00
Solomon Peachy
c3b8fcae33 tools: Fixes for release scripts
Change-Id: I2d2184baa5267aec64c48eee13580085feb0d4cb
2025-03-26 21:28:54 -04:00
Solomon Peachy
5135223b0c voice: Enable nightlies for Latvian and Brazillian Portuguese
Change-Id: Idb6b57c712323d64d0e81e5d64fb9451b4298ab5
2025-03-24 13:00:34 -04:00
Solomon Peachy
fc9076e89f voice: Add support for voicing Brazilian Portuguese. Disabled by default.
Change-Id: Iaef5e59e3dd6037c0fa3ffed1c00a0f7cde411b2
2025-03-24 08:45:11 -04:00