Commit graph

2491 commits

Author SHA1 Message Date
Hairo R. Carela
707585e6c0 rgnano: Change ROCKBOX_DIR to /mnt/FunKey/.rockbox
For consistency's sake.

Change-Id: Ia2ef27dceaf143ab85adb22581c6461d50914a84
2025-08-10 14:47:17 -04:00
Christian Soffke
921abc7beb toolchains: mips: prevent failing build on MacOS
mips gcc will fail to build using the system's
BSD sed. Make sure the Homebrew-installed GNU sed
'sed' simlink is in the PATH. Otherwise, only 'gsed'
can be used to run GNU sed by default.

Change-Id: I0a793c692d9a6de4f326e447281892eb08e4f4cb
2025-08-05 18:37:19 -04:00
Christian Soffke
b713f1190a toolchains: fix building on MacOS with clang 17
The zlib version used by GCC 4.9.4 and binutils 2.26.1
is incompatible with clang 17 from the latest Xcode
command line tools, resulting in fdopen being defined
as NULL.

Remove the define for MacOS, as in zlib 1.31:

4bd9a71f35

Change-Id: Ic7f3108dc4fcaca4ae9a571f2bdb9039be095f36
2025-08-05 18:37:19 -04:00
Hairo R. Carela
7b0f408c71 rgnano: UI simulator support
Change-Id: Id488d16e01ef49a9d1b57641bc1c22ed2fef4931
2025-08-05 08:30:30 -04:00
Solomon Peachy
e4abe9177e build: Turn on -fno-common globally
Can make global variable access more efficient at the price of erroring
out if a variable is declared in more than one place.

Change-Id: I918eacf4a4c8c7827be64f7f2ee04cc6cc2009e0
2025-08-04 23:12:42 -04:00
Hairo R. Carela
8dfd219598 rgnano: Fix duplicated target_id
The surfansf28 port was already using 120, my bad.

Change-Id: I40574d818e4bf5635996d6babce546172ff500ba
2025-08-02 19:06:50 -04:00
Solomon Peachy
543f2494dd builds: Indicate that the RG Nano now has a manual
Change-Id: I6acb4992ca2dd6b89d179c744148501ae54beb64
2025-08-02 13:51:15 -04:00
Solomon Peachy
340273a74c builds.pm: Add the new RG Nano port as an "unstable" build.
With this it will filter through the UI and hopefully get the
nightlies going.

Change-Id: I04638f31737ee69212ac966f38f4289f6fa30f87
2025-07-30 20:11:57 -04:00
neofright
7e2b129c64 Fix typo in database.c
Change-Id: I08e82013db80534284cebc054d0b6d705b473e33
2025-07-30 17:39:07 +01:00
Solomon Peachy
52e3fe4906 misc: Fix warble build
Change-Id: If5672285f2832ca6a5034e3f765785769e813409
2025-07-30 11:30:25 -04:00
Solomon Peachy
8e9125ee28 configure: re-export FUNKEY_SDK_PATH
Change-Id: I41bb5ba91fd69a40f2136315c6f27b00c78a7792
2025-07-30 10:46:49 -04:00
Hairo R. Carela
48392bab94 New port: Anbernic RG Nano
A bit of context, this device is a clone of the FunKey-S with a different form factor, hardware is mostly identical, the relevant difference is it has audio out (via usb-c, adapter to 3.5mm is included), this is the reason why the FunKey-SDK is needed for bulding.

This port is based on the old SDL 1.2 code because the device doesn't have SDL2 support. Alongside what was supported in the SDL 1.2 builds this port supports battery level, charging status and backlight control.

Change-Id: I7fcb85be62748644b667c0efebabf59d6e9c5ade
2025-07-29 21:01:53 -04:00
Dana Conrad
f2ea677b4d hibyos_nativepatcher: make tolerant of spaces in paths
Change-Id: Ibc0f2e6e1a00c526b4617e4b4ebfcfe132cbfa25
2025-06-30 17:07:36 -04:00
Christian Soffke
e7110c0beb macos: tools: configure: use GCC 15
Matches updated GCC Homebrew formula:
https://formulae.brew.sh/formula/gcc

Change-Id: I9b8e66a16ccfaf840fd50bbe313cae33e44d4f11
2025-05-25 14:46:16 -04:00
Solomon Peachy
33c74d948c convbdf: Replace magic number with #define shared with main code
Change-Id: Id46d5f2fe88fdaac94d00b1a4810ab161baad35b
2025-05-23 18:55:11 -04:00
Solomon Peachy
2f6ecaf3c2 convttf: Switch to c99 fixed size integers for fnt file header
Change-Id: Idff55a88a9bddaec42e568cf3c3ff3f6df15ec34
2025-05-23 09:01:56 -04:00
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