Yes, it solved the problem.
Thank you very much.
Yes, it solved the problem.
Thank you very much.
Hi,
I'm having a problem building a package on LibreELEC 10.0.
The package in question is the Speech Dispatcher service. Many months ago I asked on this forum about integrating that package into LibreELEC 9.2, and I could add it without any problem after some modifications.
But now, trying to add this same package to LE10 I get the following error when building it:
CCLD speech-dispatcher
../../src/common/.libs/libcommon.a(libcommon_la-speak_queue.o):speak_queue.c:function module_speak_queue_add_audio: error: undefined reference to 'g_memdup2'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:558: speech-dispatcher] Error 1
Looking on Google I found something about the system not being fully updated or something like that, but I don't understand what is the problem here, in LibreELEC 9 this builds without any problem.
Here is the package.mk:
PKG_NAME="speech-dispatcher"
PKG_VERSION="0.11.0"
PKG_SHA256="254c4279c7637ee815c9daee99597d208681f811af5188051f0c2e11f2ec77c7"
PKG_LICENSE="LGPL"
PKG_SITE="https://freebsoft.org/speechd"
PKG_URL="https://github.com/brailcom/speechd/releases/download/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain glib dotconf libsndfile libpthread-stubs alsa-lib pulseaudio"
PKG_LONGDESC="Common high-level interface to SS"
PKG_TOOLCHAIN="autotools"
PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_realloc_0_nonnull=yes \
ac_cv_func_malloc_0_nonnull=yes"
post_unpack() {
find "${PKG_BUILD}" -name "*" -type f -exec sed -i 's:g_strdup_printf("%s/../libexec/speech-dispatcher-modules", user_data_dir);:g_strdup_printf("%s/modules", SpeechdOptions.runtime_speechd_dir);:g' {} \;
}
post_makeinstall_target() {
cp -a $PKG_DIR/locale $INSTALL/usr/lib/
}
Display More
Thanks for any help.
Edit: I have more information.
The problem seems to be related to this fragment of code:
#if GLIB_VERSION_CUR_STABLE >= G_ENCODE_VERSION(2, 68)
playback_queue_entry->data.audio.track.samples = g_memdup2(track->samples, nbytes);
#else
playback_queue_entry->data.audio.track.samples = g_memdup(track->samples, nbytes);
#endif
For some reason, it detects that GLib version is greater than 2.68, even if Glib's included with LibreELEC 10 is 2.67.2.
Hi,
I've bought the August Freeview DVB-T202 receiver for my Raspberry Pi model 3, and I have a strange problem with TVHeadend and LibreELEC 9.2.8 (I'm using this version because it is the latest stable).
The DVB-T receiver works flawlessly, I can get all the services, map them, watch TV... all is correct until I have to reboot or shutdown the Pi. When powering it on again, the TVHeadend Server says there's no adapter available. I thought it was being disabled but it doesn't show into the adapters list. When I disconnect and connect the adapter from the Raspberry it starts working immediately until I power off or reboot.
The strange thing is that when I reboot the Pi, even if TVHeadend says there's no adapter, the lsusb command shows the following:
Bus 001 Device 006: ID 1997:2433
Bus 001 Device 004: ID 048d:9006 Integrated Technology Express, Inc. IT9135 BDA Afatech DVB-T HDTV Dongle
Bus 001 Device 005: ID 0781:5590 SanDisk Corp. Ultra Dual
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
As you can see, the second device is the DVB-T receiver. I tried making a "systemctl stop service.tvheadend42" followed by a "systemctl start service.tvheadend42" with same result.
I tried with the different DVB module drivers but same result. Until now, the only solution I've found is unplug and plug the DVB-T receiver everytime I have to reboot/shut down the Pi, and this is a bit tedious.
Is there any solution available?
Thanks!
I wouldn’t create it as a custom image. As an addon, with a little bit of patching or sed. The addon can be made to work right. It is all done by the build scripts.
One I have been looking at recently is net-snmp (so DATADIR would be replaced as below)
Yes, my case is exactly the same as this. Configuring the package like that will solve the problem. What I didn't know was if this was right for a LibreELEC addon or if there was a better way to create it.
Thanks for the answers and the example.
Yes, I though on this solution. However, the problem here is that the media file's path is hardcoded into the main program pointing to "/usr/share/appname/myfile.wav" or whatever DATADIR is specified when running the ./configure command. As I understand this, hardcoding paths like that is a bad practice. However, the source code has at least 50 files and not playing this media file is the smaller problem we'll find related to hardcoded paths.
I supose the best option here is look for an alternative or create a custom LibreELEC build with this application added into the image.
Hi all,
I'm trying to create a Kodi Addon which is an application which binaries have some direct references to files located on the /usr folder, for example:
-The original application wants to play a wav file which on an Ubuntu distribution is located at "/usr/share/appname/myfile.wav".
-Looking into the app's code, I can see something like audio.play(DATADIR + "/myfile.wav") and the DATADIR variable can be customized when configuring the build (default value is "/usr/local/appname").
And there's the question: I want to add this myfile.wav to the addon, for example on a folder called audio, so the final location would be "$ADDON_FOLDER_PATH/audio/myfile.wav".
I supose the only way to make this work is by telling the configure command "DATADIR=/storage/.kodi/addons/appname". However, this seems wrong. If I make this, the addon would only run on LibreELEC and if it's located at ~/.kodi/addons (it won't work, for example, if I decided to make a LibreELEC build with this addon added to the base image).
Is there any way to solve this issue, or I have to work with these limitations?
Thanks in advance!
Hi,
I'm trying to add a package to LibreELEC, the eSpeak-NG TTS from https://github.com/espeak-ng/espeak-ng. Following the build steps from GitHub and after some modifications, I finished creating this package.mk file:
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="espeak-ng"
PKG_VERSION="1.50"
PKG_SHA256="3dc31309f1674f2009cb53c466771116a183a8d71abf18d80a4e39615d61ae5e"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/espeak-ng/espeak-ng"
PKG_URL="https://github.com/espeak-ng/espeak-ng/archive/refs/tags/${PKG_VERSION}.zip"
PKG_DEPENDS_HOST="toolchain:host"
PKG_DEPENDS_TARGET="toolchain espeak-ng:host"
PKG_LONGDESC="eSpeak NG is an open source speech synthesizer that supports more than a hundred languages and accents"
PKG_TOOLCHAIN="autotools"
post_unpack() {
ln -sf "${PKG_BUILD}/CHANGELOG.md" "${PKG_BUILD}/NEWS"
ln -sf "${PKG_BUILD}/README.md" "${PKG_BUILD}/README"
}
pre_configure() {
cp -r ../docs .
cp -r ../src .
}
pre_configure_host() {
cp -r ../dictsource .
cp -r ../espeak-ng-data .
cp -r ../phsource .
cp -r ../vim .
}
make_host() {
make -j1
}
make_target() {
make -B src/espeak-ng src/speak-ng
}
makeinstall_target() {
make -B src/espeak-ng src/speak-ng
make install-exec DESTDIR=$INSTALL
mkdir -p $INSTALL/usr/share/espeak-ng-data
cp -prf $TOOLCHAIN/share/espeak-ng-data $INSTALL/usr/share
}
Display More
If I add this package to LibreELEC 10.0 it builds and works flawlessly. However, same package on LibreELEC 11.0 gives the following error when building for the target step (building for host works without problems):
BUILD espeak-ng (target)
TOOLCHAIN autotools
Executing (target): /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50/configure --host=x86_64-libreelec-linux-gnu --build=x86_64-linux-gnu --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --localstatedir=/var --disable-static --enable-shared
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for x86_64-libreelec-linux-gnu-strip... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-strip
checking for a race-free mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-libreelec-linux-gnu
checking how to print strings... printf
checking whether make supports the include directive... yes (GNU style)
checking for x86_64-libreelec-linux-gnu-gcc... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc accepts -g... yes
checking for /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc option to enable C11 features... none needed
checking whether /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc understands -c and -o together... yes
checking dependency style of /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc... gcc3
checking for a sed that does not truncate output... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld
checking if the linker (/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-nm
checking the name lister (/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-libreelec-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld option to reload object files... -r
checking for x86_64-libreelec-linux-gnu-objdump... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-libreelec-linux-gnu-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for x86_64-libreelec-linux-gnu-ar... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ar
checking for archiver @FILE support... @
checking for x86_64-libreelec-linux-gnu-strip... (cached) /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-strip
checking for x86_64-libreelec-linux-gnu-ranlib... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ranlib
checking command to parse /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-nm output from /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for x86_64-libreelec-linux-gnu-mt... no
checking for mt... mt
configure: WARNING: using cross tools not prefixed with host triplet
checking if mt is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for vfork.h... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no
checking for /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc option to produce PIC... -fPIC -DPIC
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc static flag -static works... yes
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports -c -o file.o... yes
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports -c -o file.o... (cached) yes
checking whether the /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc linker (/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking whether make supports nested variables... (cached) yes
checking whether make supports nested variables... (cached) yes
checking for x86_64-libreelec-linux-gnu-gcc... (cached) /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc accepts -g... (cached) yes
checking for /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc option to enable C11 features... (cached) none needed
checking whether /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc understands -c and -o together... (cached) yes
checking dependency style of /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc... (cached) gcc3
checking whether make sets $(MAKE)... (cached) yes
checking whether ln -s works... yes
checking for ndk-build... no
checking for gradle... no
/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50/configure: line 13823: 0: command not found
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports C99 without any flags... yes
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports C99 with the -std=c99 flag... yes
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports C99... -std=c99
checking if targeting FreeBSD... no
checking for endian.h... yes
checking for fcntl.h... yes
checking for getopt.h... yes
checking for locale.h... yes
checking for stddef.h... yes
checking for stdbool.h... yes
checking for sys/endian.h... no
checking for sys/time.h... yes
checking for wchar.h... yes
checking for wctype.h... yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for pid_t... yes
checking for fork... yes
checking for vfork... yes
checking for working fork... cross
configure: WARNING: result yes guessed because of cross compilation
checking for working vfork... (cached) yes
checking for working strcoll... yes
checking for error_at_line... yes
checking for dup2... yes
checking for getopt_long... yes
checking for gettimeofday... yes
checking for malloc... yes
checking for memchr... yes
checking for memmove... yes
checking for memset... yes
checking for mkdir... yes
checking for mkstemp... yes
checking for pow... no
checking for realloc... yes
checking for setlocale... yes
checking for sqrt... no
checking for strchr... yes
checking for strdup... yes
checking for strerror... yes
checking for strrchr... yes
checking for strstr... yes
checking for pcaudiolib/audio.h... no
checking for sonic.h... no
checking for ronn... no
checking whether C compiler accepts -Wimplicit... yes
checking whether C compiler accepts -Wmissing-prototypes... yes
checking whether C compiler accepts -Wreturn-type... yes
checking whether C compiler accepts -Wuninitialized... yes
checking whether C compiler accepts -Wunused... yes
checking whether C compiler accepts -Wunused-parameter... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating espeak-ng.pc
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure:
Configuration for eSpeak NG complete.
Source code location: /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50
C99 Compiler: /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc
C99 Compiler flags: -Wunused-parameter -Wunused -Wuninitialized -Wreturn-type -Wmissing-prototypes -Wimplicit -march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe -O2 -fomit-frame-pointer -DNDEBUG -std=c99
Sonic: no
PCAudioLib: no
gradle (Android): gradle
ndk-build (Android):
Klatt: yes
MBROLA: yes
Async: yes
Extended Dictionaries:
Russian: no
Chinese (Mandarin): no
Chinese (Cantonese): no
Makefile:2630: warning: ignoring prerequisites on suffix rule definition
CDPATH="${ZSH_VERSION+.}:" && cd /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50 && /bin/bash '/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50/missing' aclocal-1.16 -I m4
CDPATH="${ZSH_VERSION+.}:" && cd /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50 && /bin/bash '/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50/missing' autoconf
cd /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50 && /bin/bash /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50/missing automake-1.16 --gnu
configure.ac:69: warning: The macro `AC_PROG_LIBTOOL' is obsolete.
configure.ac:69: You should run autoupdate.
m4/libtool.m4:99: AC_PROG_LIBTOOL is expanded from...
configure.ac:69: the top level
/bin/bash ./config.status --recheck
running CONFIG_SHELL=/bin/bash /bin/bash /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50/configure --host=x86_64-libreelec-linux-gnu --build=x86_64-linux-gnu --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --localstatedir=/var --disable-static --enable-shared build_alias=x86_64-linux-gnu host_alias=x86_64-libreelec-linux-gnu CC=/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc CFLAGS=-march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe -O2 -fomit-frame-pointer -DNDEBUG LDFLAGS=-march=x86-64 -m64 -Wl,--as-needed -fuse-ld=gold CPPFLAGS= --no-create --no-recursion
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for x86_64-libreelec-linux-gnu-strip... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-strip
checking for a race-free mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-libreelec-linux-gnu
checking how to print strings... Makefile.am:436: warning: '%'-style pattern rules are a GNU make extension
Makefile.am:447: warning: '%'-style pattern rules are a GNU make extension
Makefile.am:450: warning: '%'-style pattern rules are a GNU make extension
printf
checking whether make supports the include directive... yes (GNU style)
checking for x86_64-libreelec-linux-gnu-gcc... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc accepts -g... yes
checking for /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc option to enable C11 features... none needed
checking whether /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc understands -c and -o together... yes
checking dependency style of /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc... gcc3
checking for a sed that does not truncate output... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld -m elf_x86_64
checking if the linker (/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld -m elf_x86_64) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-nm
checking the name lister (/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-libreelec-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld -m elf_x86_64 option to reload object files... -r
checking for x86_64-libreelec-linux-gnu-objdump... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-libreelec-linux-gnu-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for x86_64-libreelec-linux-gnu-ar... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ar
checking for archiver @FILE support... @
checking for x86_64-libreelec-linux-gnu-strip... (cached) /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-strip
checking for x86_64-libreelec-linux-gnu-ranlib... /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ranlib
checking command to parse /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-nm output from /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for x86_64-libreelec-linux-gnu-mt... no
checking for mt... mt
configure: WARNING: using cross tools not prefixed with host triplet
checking if mt is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for vfork.h... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no
checking for /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc option to produce PIC... -fPIC -DPIC
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc static flag -static works... yes
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports -c -o file.o... yes
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports -c -o file.o... (cached) yes
checking whether the /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc linker (/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld -m elf_x86_64 -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking whether make supports nested variables... (cached) yes
checking whether make supports nested variables... (cached) yes
checking for x86_64-libreelec-linux-gnu-gcc... (cached) /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc accepts -g... (cached) yes
checking for /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc option to enable C11 features... (cached) none needed
checking whether /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc understands -c and -o together... (cached) yes
checking dependency style of /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc... (cached) gcc3
checking whether make sets $(MAKE)... (cached) yes
checking whether ln -s works... yes
checking for ndk-build... no
checking for gradle... no
/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50/configure: line 13827: 0: command not found
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports C99 without any flags... yes
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports C99 with the -std=c99 flag... yes
checking if /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports C99... -std=c99
checking if targeting FreeBSD... no
checking for endian.h... yes
checking for fcntl.h... yes
checking for getopt.h... yes
checking for locale.h... yes
checking for stddef.h... yes
checking for stdbool.h... yes
checking for sys/endian.h... no
checking for sys/time.h... yes
checking for wchar.h... yes
checking for wctype.h... yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for pid_t... yes
checking for fork... yes
checking for vfork... yes
checking for working fork... cross
configure: WARNING: result yes guessed because of cross compilation
checking for working vfork... (cached) yes
checking for working strcoll... yes
checking for error_at_line... yes
checking for dup2... yes
checking for getopt_long... yes
checking for gettimeofday... yes
checking for malloc... yes
checking for memchr... yes
checking for memmove... yes
checking for memset... yes
checking for mkdir... yes
checking for mkstemp... yes
checking for pow... no
checking for realloc... yes
checking for setlocale... yes
checking for sqrt... no
checking for strchr... yes
checking for strdup... yes
checking for strerror... yes
checking for strrchr... yes
checking for strstr... yes
checking for pcaudiolib/audio.h... no
checking for sonic.h... no
checking for ronn... no
checking whether C compiler accepts -Wimplicit... yes
checking whether C compiler accepts -Wmissing-prototypes... yes
checking whether C compiler accepts -Wreturn-type... yes
checking whether C compiler accepts -Wuninitialized... yes
checking whether C compiler accepts -Wunused... yes
checking whether C compiler accepts -Wunused-parameter... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
configure:
Configuration for eSpeak NG complete.
Source code location: /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50
C99 Compiler: /home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc
C99 Compiler flags: -Wunused-parameter -Wunused -Wuninitialized -Wreturn-type -Wmissing-prototypes -Wimplicit -march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe -O2 -fomit-frame-pointer -DNDEBUG -std=c99
Sonic: no
PCAudioLib: no
gradle (Android): gradle
ndk-build (Android):
Klatt: yes
MBROLA: yes
Async: yes
Extended Dictionaries:
Russian: no
Chinese (Mandarin): no
Chinese (Cantonese): no
/bin/bash ./config.status
config.status: creating Makefile
config.status: creating espeak-ng.pc
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: error: in `/home/nuive/projects/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/espeak-ng-1.50/.x86_64-libreelec-linux-gnu':
config.status: error: Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. If GNU make was not used, consider
re-running the configure script with MAKE="gmake" (or whatever is
necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
See `config.log' for more details
make: *** [Makefile:771: Makefile] Error 1
FAILURE: scripts/build espeak-ng during make_target (package.mk)
*********** FAILED COMMAND ***********
make -B src/espeak-ng src/speak-ng
**************************************
nuive@nuive-GP60-2PE:~/projects/LibreELEC.tv$
Display More
I tried removing the "-B" option from the make target steps and without this option, it builds flawlessly on all versions, but when trying to execute the espeak-ng command on any LibreELEC 11, it freezes the terminal until you press CTRL+C to kill the process.
I know the "-B" option only forces Make to rebuild all targets, and it shouldn't be necesary on LibreELEC because it builds host and target executables on different folders. However, it seems strange that when executing the build process with the "-B" parameter, it doesn't work on LE11, and if I remove it it builds but crashes when running... any idea why is this happening?
Thanks!
This is not working as expected, see packages/readme.mk:
Code Display MoreFurther to this, toolchain variables that are defined in `setup_toolchain()` must not be referenced "globally" in the package as they will only be configured reliably after `setup_toolchain()` has been called during `scripts/build`. Any variable in the following list must instead be referenced in a package function such as `pre_build_*`, `pre_configure_*`, `pre_make_*` etc.: ``` TARGET_CFLAGS TARGET_CXXFLAGS TARGET_LDFLAGS NINJA_OPTS MAKEFLAGS DESTIMAGE CC CXX CPP LD AS AR NM RANLIB OBJCOPY OBJDUMP STRIP CPPFLAGS CFLAGS CXXFLAGS LDFLAGS PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR PKG_CONFIG_ALLOW_SYSTEM_CFLAGS PKG_CONFIG_ALLOW_SYSTEM_LIBS CMAKE_CONF CMAKE HOST_CC HOST_CXX HOSTCC HOSTCXX CC_FOR_BUILD CXX_FOR_BUILD BUILD_CC BUILD_CXX _python_sysroot _python_prefix _python_exec_prefix
I suposed that and I didn't understand why it was put there, but as it was in the original pacakge.mk of espeak, I didn't deleted it. The package is built propperly without that variables.
Finally I solved this.
As you say, espeak:host was wrong. The problem was in the makeinstall_target step, the command to install the library to the sysroot folder was missing, and that step was innecesary.
If someone has a similar problem, here is the definitive package.mk for espeak:
PKG_NAME="espeak"
PKG_VERSION="1.48.04-source"
PKG_SHA256="bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
PKG_LICENSE="GPL"
PKG_SITE="http://espeak.sourceforge.net/"
PKG_URL="http://sourceforge.net/projects/espeak/files/espeak/espeak-1.48/$PKG_NAME-$PKG_VERSION.zip"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Text to Speech engine for English, with support for other languages"
PKG_TOOLCHAIN="make"
PKG_MAKE_OPTS_TARGET="CXXFLAGS=$CXXFLAGS LDFLAGS=$LDFLAGS AUDIO="""
pre_make_target() {
cd src
cp portaudio19.h portaudio.h
}
Display More
Cheers
Hi,
I'm having new questions regarding all of this. I don't know if I should create a new thread, so sorry if I should.
Speech Dispatcher needs to have a defined locale (if it hasn't it throws an exception of 'setlocale: no such file or directory') so I did the following:
1. In the Speech Dispatcher package directory I added a folder called locale, with files for an en_GB.UTF-8 locale.
2. I edited the package.mk so on the post_makeinstall step it copies the locale folder into /usr/lib.
3. I created as well another folder inside the package, profile.d, and inside this folder I added the file 10-locale.conf with the following content:
I built the image and it worked flawlessly, Speech Dispatcher included.
However, I found that my 10-locale.conf would override any change made to the $LANG variable if, for example, the service.locale addon was installed, because the profile.d sets the addon profile variables before any other.
So I edited the 10-locale.conf file and added a check:
But now, even if the LANG variable returns "en_GB.UTF-8" when you do "echo $LANG" and the 'locale' command returns the correct values, Speech Dispatcher is giving me again the 'setlocale' error.
Does anyone know why is this happening?
Actually, eSpeak builds a library (libespeak.so) used by Speech Dispatcher, but it builds a static library too (.a file) and a header (speak_lib.h) which are needed to build the eSpeak module into Speech Dispatcher.
Here is the package.mk for eSpeak:
--------------------
PKG_NAME="espeak"
PKG_VERSION="1.48.04-source"
PKG_SHA256="bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
PKG_LICENSE="GPL"
PKG_SITE="http://espeak.sourceforge.net/"
PKG_URL="http://sourceforge.net/projects/espeak/files/espeak/espeak-1.48/$PKG_NAME-$PKG_VERSION.zip"
PKG_DEPENDS_HOST="gcc:host"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Text to Speech engine for English, with support for other languages"
PKG_TOOLCHAIN="manual"
pre_build_host() {
mkdir -p $PKG_BUILD/.$HOST_NAME
cp -RP $PKG_BUILD/* $PKG_BUILD/.$HOST_NAME
}
pre_make_host() {
cd .$HOST_NAME
cp src/portaudio19.h src/portaudio.h
}
make_host() {
make -C src \
CXXFLAGS="$CXXFLAGS" \
LDFLAGS="$LDFLAGS" \
AUDIO=""
}
makeinstall_host() {
make -C src \
CXXFLAGS="$CXXFLAGS" \
LDFLAGS="$LDFLAGS" \
AUDIO="" \
PREFIX="" \
DESTDIR=$TOOLCHAIN install
}
pre_build_target() {
mkdir -p $PKG_BUILD/.$TARGET_NAME
cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME
}
pre_make_target() {
cd .$TARGET_NAME
cp src/portaudio19.h src/portaudio.h
}
make_target() {
make -C src \
CXXFLAGS="$CXXFLAGS" \
LDFLAGS="$LDFLAGS" \
AUDIO=""
}
makeinstall_target() {
make -C src \
CXXFLAGS="$CXXFLAGS" \
LDFLAGS="$LDFLAGS" \
AUDIO="" \
DESTDIR=$INSTALL install
}
Display More
--------------------
I've tried with espeak:host and with espeak, but in any case it throws the same error.
Hi again,
I'm having a new problem related to the addition of Speech Dispatcher.
When building it, it checks for additional Voice TTSs and if it finds them, it adds the respective modules.
I'm trying to generate the eSpeak Module, but it needs the espeak library for the process, so I added espeak:host as a dependency.
The eSpeak package wasn't able to generate host builds, so I edited it and could add the eSpeak libraries and include headers to the toolchain. However, when trying to build Speech Dispatcher with espeak support it says that file <espeak/speak_lib.h> does not exist, but the file speak_lib.h is inside $TOOLCHAIN/include/espeak.
It seems that the build process is ignoring the toolchain paths, even if toolchain is in the package.mk as a target dependency.
My current package.mk:
--------------------
PKG_NAME="speech-dispatcher"
PKG_VERSION="0.10.2"
PKG_SHA256="b06319f201e15e56c6296653af5bcfc300cb348e972d517df8b06eac77eae2dc"
PKG_LICENSE="LGPL"
PKG_SITE="https://freebsoft.org/speechd"
PKG_URL="https://github.com/brailcom/speechd/releases/download/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain glib dotconf libsndfile libpthread-stubs libtool alsa-lib pulseaudio espeak:host"
PKG_LONGDESC="Common high-level interface to TTS"
PKG_TOOLCHAIN="autotools"
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET \
ac_cv_func_realloc_0_nonnull=yes \
ac_cv_func_malloc_0_nonnull=yes"
Display More
--------------------
Thanks, it worked. I'd read about that on google, but I though there was a better solution to fix this problem... Finally I was able to build Speech Dispatcher into LibreELEC.
Thanks, it worked. Finally I could add the dotconf library to LibreELEC.
Now I'm having another problem with the main package (Speech dispatcher).
--------------------
PKG_NAME="speech-dispatcher"
PKG_VERSION="0.10.2"
PKG_SHA256="b06319f201e15e56c6296653af5bcfc300cb348e972d517df8b06eac77eae2dc"
PKG_LICENSE="LGPL"
PKG_SITE="https://freebsoft.org/speechd"
PKG_URL="https://github.com/brailcom/speechd/releases/download/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain glib dotconf libsndfile libpthread-stubs libtool"
PKG_LONGDESC="Common high-level interface to tts"
PKG_TOOLCHAIN="autotools"
--------------------
The autoreconf and ./configure stages work flawlessly, but when building it gives the following error:
speech_dispatcher-symbols.o:symbols.c:function insert_symbols: error: undefined reference to 'rpl_malloc'
Looking on google I've found that it is a problem with the ./configure script, which replaces the malloc function with rpl_malloc when it doesn't find the malloc function. But unless I'm mistaken, the malloc function is a system one. However, in configure.log I have:
configure:15893: checking for GNU libc compatible malloc
configure:15927: result: no
...
| #define HAVE_MALLOC 0
| #define malloc rpl_malloc
Am I missing something in order to access the rpl_malloc function, or to make the configure script be able to detect the malloc function propperly?
Thank you very much!
Yes, it helped a lot.
Now I'm having another problem... I'm adding the needed dotconf library. At the momment I have this package.mk (it is not completed)
PKG_NAME="dotconf"
PKG_VERSION="1.3"
PKG_SHA256="f992c289ef4c56d3995f887e6e33f94a25153b630af4ae2e5ed505afb5790d0e"
PKG_LICENSE="LGPL"
PKG_SITE="https://github.com/williamh/dotconf"
PKG_URL="https://github.com/williamh/dotconf/archive/refs/tags/v$PKG_VERSION.zip"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="dot.conf configuration file parser"
PKG_TOOLCHAIN="manual"
pre_make_target() {
autoreconf -i
./configure
}
Display More
--------------------
When trying to build it for the Raspberry Pi with the command:
PROJECT=RPi ARCH=arm DEVICE=RPi2 scripts/build dotconf
I get (on the ./configure step):
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
How can I add the host variable to package.mk? What am I missing?
Hi,
I'm trying to add Speech Dispatcher (Speech Dispatcher - Free(B)Soft), module for TexToSpeech.
I know that it won't be an easy module to add (it depends on some libraries, for building and for running). At the momment I have this:
--------------------
PKG_NAME="speech-dispatcher"
PKG_VERSION="0.10.2"
PKG_SHA256="b06319f201e15e56c6296653af5bcfc300cb348e972d517df8b06eac77eae2dc"
PKG_LICENSE="LGPL"
PKG_SITE="https://freebsoft.org/speechd"
PKG_URL="https://github.com/brailcom/speechd/releases/download/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain glib (dotconf) libsndfile libpthread-stubs"
PKG_LONGDESC="Common high-level interface to TTS"
--------------------
The dotconf dependency is between () because it is not present on libreELEC, so I will have to add that package too.
Basically what I don't understand is what libraries I should add on PKG_DEPENDS_TARGET, PKG_DEPENDS_HOST... and which of them (if any) should be followed with the :[host|target|...] argument.
Hi there,
I'm working on a customized image of LibreELEC 9.2.6 (for x86 and Raspberry Pi 3) and I need to add an application to the system which can't be added through Kodi Addons, so I'm creating a package.mk in order to get the App added on buildtime.
However, I have some questions regarding package.mk and dependencies, and I didn't find answers anywhere.
using the glib package.mk as an example, we have:
...
PKG_DEPENDS_HOST="libffi:host Python3:host meson:host"
PKG_DEPENDS_TARGET="toolchain pcre zlib libffi Python3:host util-linux"
...
I do not fully understand what are all this PKG_DEPENDS_* for. Looking at the build script, I've seen that you can specify to build a package like:
PROJECT=RPi DEVICE=RPi2 ARCH=arm scripts/build glib
Or
PROJECT=RPi DEVICE=RPi2 ARCH=arm scripts/build glib:host
I supose for the glib:host it uses as dependencies the PKG_DEPENDS_HOST variable, if I build glib:target it uses PKG_DEPENDS_TARGET... but my question is, what is this argument (:[host|bootstrap|init|target]) for? If I only make a normal build (without this argument) what libraries variable from the package.mk will it use?
And another question:
PKG_DEPENDS_TARGET="toolchain pcre zlib libffi Python3:host util-linux"
Here is a list of libraries needed to build glib. Why in the python3 one it says Python3:host and not Python3? What is the meaning of ":host" in this case?
Cheers!