Commit graph

2102 commits

Author SHA1 Message Date
Solomon Peachy
dcdf2713f6 Python3-related fixes in some of our scripts
Change-Id: I8acbe43e3f27e51159a7a78fcc361476d7406cbb
2020-07-09 14:39:27 +00:00
Solomon Peachy
5d8a1a305d voice: Fix some perl warnings
(got lost in the output during my test runs)

Change-Id: I3467b96a9607a4d6cf1e26348cd496be508809d3
2020-07-09 11:35:06 +00:00
Solomon Peachy
2c3399537c voice: Add support for Google Translate's speech synthesizer
Uses the 'gtts-cli' command line client.  Supports a wide variety of
languages, including all "Complete" and "Good" Rockbox translations.

Additional changes:

 * voice synth script can accept pre-encoded mp3 files
 * Move language->synth options mapping into the voice script
 * Additional cleanups

Change-Id: I9523e2bca87cbcee2d8c4111f9892e8e458c7419
2020-07-08 23:16:57 +00:00
Solomon Peachy
08c6f9104c build: add '-fcommon' to the toolchain build flags.
This allows binutils 2.16 to build successfully with GCC10.

Change-Id: Iddcd4156720f4fa05936ea459991866fc6e1524d
2020-07-02 20:04:10 +00:00
Solomon Peachy
aec381c4c6 database: Fix makefile syntax for GNU Make 4.3+
Change-Id: If8749aff19f92aae28f5f73aaf843428d7f4b462
2020-06-30 16:12:10 +00:00
Franklin Wei
4d52a42e07 docker-rbclient: use CMD instead of ENTRYPOINT
This makes it easier to override from the command line.

Change-Id: I4bbd2995ed442b119b696da94ce1670304e59933
2020-06-25 17:42:42 -04:00
Solomon Peachy
ff665a26d6 mi4: Correct a build warning/error that pops up on stricter hosts
Change-Id: Ibf549472aa75a1f5e63eccb5ca7974dec506710f
2020-06-07 02:50:30 +00:00
Solomon Peachy
2434b6ca25 misc: Remove all 'twiki' references in favor of up-to-date 'wiki' links.
(This migration happened over a decade ago!)

Change-Id: Ib396414a16f2d763e549af49e3f3b03047dab49c
2020-06-07 01:38:55 +00:00
Sebastian Leonhardt
0769b34a23 fix configure script failing on gcc version numbers
There were two problems on my system:
* MinGW-gcc returns version "7.3-win32" => the "-win32"-part must be
  stripped off
* gcc -dumpversion returns only the major version number => use
  both -dumpfullversion and -dumpversion (in this order) as described here:
  https://stackoverflow.com/questions/45168516/gcc-7-1-1-on-fedora-26-dumpversion-now-only-includes-major-version-by-default

Change-Id: I74fa1c572426aab2525a00a80170d859c166e31c
2020-05-24 13:45:46 +02:00
Solomon Peachy
bbe8c73bb8 builds: Mark the Archos Recorder v1 as officially retired.
The last successful build was 87c6df9-131213, shortly after the 3.13
relase, but even before that, it had been problematic due to severe
firmware image size limitations (200KB) of the hardware bootrom.

(Current git code genrates an image about 220KB)

Change-Id: Ibaf7bd61cbc0f0656c5e119bbb9934437aa9c47c
2020-05-20 21:29:57 +02:00
Solomon Peachy
0c3380f9ef builds: Archos recorder v1 hasn't seen a release since 3.13 (in 2013)
Fix this, so the download metadata will do the right thing.

Change-Id: I7f51f0252e0f72667374143a9cad1021acc58538
2020-05-19 03:45:30 +02:00
Solomon Peachy
93fcd569ab mkinfo: Use correct binary file for "actual size" on hosted targets
Change-Id: Ia22743f3cab18fb1285bcec6429bb198525f37f8
2020-05-17 15:46:47 +02:00
William Wilgus
c93666d08e talk.h make voice files check for proper number of entries on load
In addition to version and target also check id1_max & id2_max
for proper length before allowing voice file to be loaded

Change-Id: I36016059d07781b0bb43dd9873bbb6e565298d76
2020-04-17 07:30:23 +02:00
Solomon Peachy
e0d7c7c632 voice: Add support for Mimic TTS engine.
...It generates decent voice files in 1/10th the time of festival.

Change-Id: I1bf9271633a8a0e9c483761b8685f296d2f303b8
2020-04-16 21:28:09 +02:00
Solomon Peachy
d37ea94f2a Android: Compile native android bits with armv7-a CPU flags
DX50/DX90 has a Cortex-A9 with NEON, use those specific flags
for speed.

Generic Android targets is for v4.4 (API 19) which doesn't support
pre-v7 ARM CPUs, so target generic armv7-a with hardfp support.

(This patch includes a rearrangement of the android toolchain helpers to
 allow target-specific GCCOPTS.  Huzzah)

Change-Id: I696051ef3fae25e1569c7b904decb7a3a0c6b674
2020-04-15 00:39:45 +02:00
Solomon Peachy
a87c96cd79 checkwps: have the ./buildall.sh script log all build failures.
Change-Id: I61be0fca0cb65e7c7108180150df5585fd83c3b5
2020-04-13 17:26:22 -04:00
Solomon Peachy
a820a98361 obsolete: Nuke the very-incomplete Archos AV300 target
It's even missing a config header file.  Just shoot it in the head.

Change-Id: I4c5cdb4fb63361a4e4fc893e93d73d3890fe17df
2020-04-13 22:06:22 +02:00
Solomon Peachy
cfc02cadcc android: Fix configure script for "newer" versions of the NDK
The oldest verison of the NDK one can still download today is version
10e from mid-2015, which comes with GCC 4.9, and no longer supports
32-bit hosts.

With this, one can actually compile the iBasso DX50/DX90 targets again,
as well as the generic android target, as long as one has the correct
SDK platforms (v16 for ibasso, v19 for generic) and SDK tools installed.

Change-Id: I62f2e742d5cfc13133244aeff75a928a7294ac91
2020-04-13 16:51:58 +02:00
Solomon Peachy
b1d7d897d3 rockboxdev: Remove the ability to build the special cy-ng ypr0 toolchain
We don't actually use it any more; let's not confuse folks with it.

Change-Id: Ic8fbe9bc95495b0969249dc774c5adf2126a2b98
2020-04-13 00:39:01 +02:00
Solomon Peachy
3e0a644b5b build: Fix iHIFI 770c nightly builds. Bad CaPiTaLiZaTiOn.
Change-Id: I921e2e6e1ed8f30e162c6183b9000cc1de3382de
2020-04-12 03:46:06 +02:00
Solomon Peachy
c9ec110b6a voice: Add corrections for 'DAC' and 'ADC'
Change-Id: I9079382926ce19dd7afa50312179987f181855c3
2020-04-10 22:21:08 +02:00
Solomon Peachy
6fcd69a365 hiby_patcher: Mangle the version string in the update payload if necessary
Change-Id: I204837f8a0e56fe51b3ee317be7d9f597b89f877
2020-04-08 05:57:06 +02:00
Solomon Peachy
61847fbf13 build: Update builds.pm with xDuoo X3ii & X20
Better document the file too

Change-Id: I75148785b8ed95d1d6b442b34adee23cccd7da68
2020-04-07 15:17:33 +02:00
Marcin Bukat
180cef835b xDuoo X3II and X20 port
Provided by Roman Stolyarov
Integration, Refactoring, and Upstreaming by Solomon Peachy

X3II confirmed working by forum tester, X20 is nearly identical.

This includes bootloader, main firmware, and the flash image patcher.

Eventual Todo:

 * Further refactor AGPTek Rocker & xduoo hiby bootloaders
 * Further refactor AGPTek Rocker & xduoo hosted platform code

Change-Id: I34a674051d368efcc75d1d18c725971fe46c3eee
2020-04-06 18:15:41 +02:00
Solomon Peachy
0efa73f0ec tools: Add a tool that patches Hiby_player-derived firmware images.
Confirmed to work on the AGPTek Rocker and xDuoo X3ii targets!

Change-Id: I721c62b88b28282d1c85fd33e49262265cd2d6a5
2020-04-05 18:18:03 +02:00
Solomon Peachy
00c0d2012f rockboxdev: Store toolchain patches in-tree, instead of downloading them
This frees us from having to keep the web site in sync.

Note that only currently-referenced patches were kept.

Change-Id: I50da1b75baeac214cf142c8b76a05a8c56b4c1d4
2020-04-04 21:56:30 +02:00
Solomon Peachy
74ab8d1490 toolchain: Parallelize the toolchain build if possible
Let's actually use those newfangled multicore processors!

Change-Id: Idfc21f10d634b969c49e7f22ab723e48951db0f0
2020-04-03 09:04:20 +02:00
Solomon Peachy
5fa6acf39f FS#13184: Support 2048 byte sectors and images without bootloader in ipod_fw
(From Stefan Ott)

I wrote a little patch for ipod_fw.c that allows me to create bootable
images for the iPod video without using any external software.

The patch adds two new options:

- The -s option can now be used to specify the sector size in blocks (typically 512 or 2048) when generating an image.
- The -n option can be used to create an image without a boot loader

Change-Id: I35ebcd19ba1491bba76dfc8011e5a856108bb9ad
2020-03-29 18:48:09 +02:00
Franklin Wei
54e7eaf8fc Bump versions for 3.15.
Change-Id: Iecea72d420ded89023798e6d613cba1413adec73
2019-11-15 01:25:26 +01:00
Franklin Wei
ec8b3d3147 Add some scripts to automate target listing and generating build-info
This adds tools/list_targets.pl and tools/build-info.pl. list_targets does
exactly what it sounds like - it lists targets by target status. build-info
automates the generation of build-info.release for new releases.

Change-Id: I4c859fdeb54c8cc645832a7c4192f9d18590031e
2019-10-30 23:56:05 -04:00
Franklin Wei
f72b9082c6 Promote ipod6g to stable.
Manual is done and rbutil support is merged.

Change-Id: I27d8dcb88782a5c7f9ad08d17c8521be8dfe58af
2019-10-28 00:09:35 -04:00
Franklin Wei
370f9fa018 builds.pm: Note that last Recorder build was 3.13
We didn't build for the Recorder when doing 3.14.

Change-Id: I141cba5d821a86b5aa84217d8b011e2112282ff0
2019-10-28 00:09:35 -04:00
William Wilgus
90118f14cf lua add demo scripts, atexit handler, gui_scrollbar_draw
Change-Id: Ie8794e8a487f73952dae43e036787b6972fdbbee
2019-07-29 02:51:29 -05:00
Franklin Wei
c5ed45d8c7 docker-rbclient: update README
Change-Id: If7c3565147f1092e3104d7f08e705aaaf6aafd5d
2019-07-28 15:39:25 -04:00
Franklin Wei
e499b75117 docker-rbclient: whitespace fix
Gerrit's web editor can't be trusted.

Change-Id: I0dd4a6ab2f8e3600fb37e9806adf6c067feea9ed
2019-07-28 15:34:05 -04:00
Franklin Wei
02a6985799 Add build code for Docker development environment
This simplifies the tedious task of building all the Rockbox
toolchains manually by providing a build code for a Docker container
image. It's useful for quickly spinning up a build client with just a
couple commands and no waiting to compile (though downloading takes a
little while).

I've built an image as built1n/rbclient on Docker Hub.

All toolchains (even the weird ones) are included, except android16.

Change-Id: I6b863628ffb397604f59ec6def2f8bb8c8c7185f
2019-07-28 21:13:56 +02:00
Vencislav Atanasov
7f9fc20afa Use full_path_subst on more places, to avoid replacing the wrong occurrences in
paths.

If ROOTDIR=/rockbox and BUILDDIR=/rockbox/build-something, it is now possible to
successfully build both target binaries and simulators.

Change-Id: If12d1d5933c5a15feebf627a4f1636dc1e3a67fa
2019-07-28 21:00:57 +02:00
Vencislav Atanasov
321de68b21 Add Vagrant configuration for creating a development VM
Vagrant is an application that automates creation and provisioning of a virtual
machine for development. The config here creates an Ubuntu 16.04 LTS machine,
updates it, downloads and installs the toolchains for sh, m68k and arm,
mingw-w64, SDL (for Windows simulators) and other packages needed for building
Rockbox.

It works fine for building a Windows simulator and compiling iPod classic
binaries. It should be possible to make the other build types, too.

MIPS toolchain fails to build, ARM-APP is not tested because the files download
very slow on my connection. Please test if it works for you, and let me know.

Quick start: download and install Vagrant and VirtualBox for your operating
system, make sure VT-x / AMD-V is enabled in your BIOS/EFI setup, open a
shell in rockbox/tools and input the command "vagrant up"

Change-Id: Ief5476ab066663a4db7e85404b25d2d781d90532
2019-07-26 20:20:07 -04:00
Solomon Peachy
3cb272c97a build: Fix puzzles build due to missing dependency
As rbcompat.h is -include'd on the command line, the mkdep script doesn't
pick it up.  Explicitly add the dependency to lang_enum.h to the makefile.

Also add lang_enum.h to the 'make clean' target!

Change-Id: I33c8ed0cd5c1d44dce02ac9285469c0e4feac00e
2019-07-20 10:06:12 -04:00
William Wilgus
14d91cafca Fix Red - Talk support for plugins
generate lang_enum prior to apps

Change-Id: Ib484138e2b01267db856415db0364d8c93237073
2019-07-20 05:47:51 -05:00
Solomon Peachy
55eb1c54eb FS#7704 - Talk support for plugins
Original patch by Mario Lang
Heavily updated by Igor Poretsky
Further updated by myself

  This patch breaks binary API compatibility by placing the new
  functions where they make the most logical sense. IMO this is
  the better approach to take given the scope of the changes needed
  for talk support.

  Since binary API is changing, the patch also moves some other
  functions around to more logical locations.

  As well as voice support in plugins, this patch voice-enables several
  simple plugins.  There will be follow-up patches for many plugins that
  build on this one.

Change-Id: I18070c06e77e8a3c016c2eb6b6c5dbe6633b9b54
2019-07-20 08:48:35 +02:00
Frank Gevaerts
b0de98ad3b Put -lfirmware in CORE_LIBS, to fix -thumb builds
For unknown reasons, -thumb builds need -lfirmware after -lrbcodec (but
still before -lunwarminder)i. Other builds are still happy if we do that.
Including it via CORE_LIBS instead of explicitly achieves that.

Change-Id: Id69e4a0c042f90f71cfd9a72202ce4d8ef6a4181
2019-07-19 15:16:37 +02:00
Franklin Wei
7b118eccac configure: add --32-bit option to build a 32-bit simulator/application
I use this to test duke3d in the sim, because it does some nasty pointer
arithmetic with 32-bit ints.

Should be useful for other things as well.

Change-Id: I807c81b32c61538de9edc3fca77fde193dc4e617
2019-06-17 23:11:25 -04:00
Solomon Peachy
1b2fd8918f Fix a capitalization typo in the ihifi770c configure target name.
Change-Id: Iccdb109329cec2de477e1f96f30335dbdea535ad
2019-01-02 16:50:05 +01:00
Solomon Peachy
d4942cc74c Add Xuelin iHIFI 770/770C/800 support
Taken from the xvortex fork (Roman Stolyarov)
Ported, rebased, and cleaned up by myself.

Change-Id: I7b2bca2d29502f2e4544e42f3d122786dd4b7978
2019-01-02 08:10:01 -05:00
Solomon Peachy
4c933a1d01 build: Properly generate build dependency for autogenerated bitmap .h files
* bmp2rb generated a .h file that rockbox .c files used.
 * .h files in .c files were used to generate dependency graphs for make
 * When Make saw the .h file for the bitmap, it didn't know how what
   to do with them
 * Only arose in parallel builds

Fixed this by adding explicit dependencies for the .h files as part of
the existing 'bmpdepfile' function.

Solves the Xduoo X3 bootloader build failure that I could trigger 100%
of the time by using 'make -j8'

Change-Id: I6b3e78dde26c820a3b6c7c286e7d6c981b8e01fc
2018-12-25 11:54:11 -05:00
Solomon Peachy
e598ba13f5 Support using 'rbspeak' to generate voice files.
(Full credit to Igor Poretsky)

Change-Id: Ib9c5d2748cd7e0543b7fd110e83b4656089254b8
2018-12-22 20:27:39 -05:00
William Wilgus
4055f90f08 Fix host build for newer linux distros
I realized there was a better way to do this..

Instead of specifying a path just have gcc run the preprocessor (-E) on
an input file consisting of only '#include <byteswap.h>' if it succeeds
then we can use it if not then don't define OS_USE_BYTESWAP_H

Change-Id: I0de8e469445221bc1b5ad8cc032de5b89a85ab66
2018-12-10 01:36:33 -06:00
William Wilgus
0f5f5c3390 Fix Sim & checkwps for newer distros
__builtin found fix for rbendian.h
tools/configure defines SIM_USE_BYTESWAP_H if byteswap.h is found in
/usr/include/ maybe there is a better mechanism for this

Change-Id: I4d004e68313e8b32aa5587582be36bc459fdaf6b
2018-12-08 03:19:14 -06:00
William Wilgus
9450689483 Fix Sim for newer distros
__builtin found fix for rbendian.h
tools/configure defines SIM_USE_BYTESWAP_H if byteswap.h is found in
/usr/include/ maybe there is a better mechanism for this

genshortcut.sh is a simple script to make .desktop shortcut files
several newer distros don't allow you to run the simulator from the
file manager, this or perhaps a different method can probably be
included while building a sim at a later date.

for now it can be run manually like so:
similar to ../tools/configure
run from your simulator folder
../tools/genshortcut.sh exepath shortname icon
ex. ../tools/genshortcut.sh ./rockboxui clip+sim music-app

Change-Id: Ia05d3a9349b27c5968a4a7a68b2eb480e60faec3
2018-12-07 21:04:30 +01:00