When both shared and static libs are enabled, we have two shell
constructs to run, but they are not properly separated, leading to build
failures like:
ln -sf libncursesw.a /home/idnc_sk/IOLINUX/builds/micro-x86_64-corei7/
output/host/usr/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/libcurse
s.a for lib in libncurses libmenu libpanel libform; do ln -sf ${lib}w.
so /home/idnc_sk/IOLINUX/builds/micro-x86_64-corei7/output/host/usr/x8
6_64-buildroot-linux-uclibc/sysroot/usr/lib/${lib}.so; done
/bin/bash: -c: line 0: syntax error near unexpected token `do'
/bin/bash: -c: line 0: `ln -sf libncursesw.a /home/idnc_sk/IOLINUX/bui
lds/micro-x86_64-corei7/output/host/usr/x86_64-buildroot-linux-uclibc/
sysroot/usr/lib/libcurses.a for lib in libncurses libmenu libpanel lib
form; do ln -sf ${lib}w.so /home/idnc_sk/IOLINUX/builds/micro-x86_64-c
orei7/output/host/usr/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/${
lib}.so; done'
As can be seen, there is a missing semi-colon ';' between the symlink
command and the for loop:
ln -sf libncursesw.a [...]/libcurses.a for lib in [...]
Fix that by adding a semi-colon after each first shell constructs, to
properly separate the two. If the second one is not enabled (i.e. for a
static-only build), there is a trailing semi-colon, but that's perfectly
valid shell syntax.
Reported-by: idnc_sk on IRC
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The CF_LIB_SONAME macro doesn't work when cross compiling so we need to
specify the lib name for libgpm explicitly. While at it make gpm support
explicit in the form of --without-gpm when it's not selected and adding
it to dependencies when it is. Fixes:
http://autobuild.buildroot.net/results/32a/32a5ba3905772a3f2f2ec9d1b290a109fe22d9f9/
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Currently, ncurses creates symlinks from the non-'w' variants to the
equivalent 'w' variant, but forgets to do so for pkg-config files.
To be able to share the same list between the libraries and the
pkg-config files to symlink, just trim the 'lib' prefix of libraries in
the definition, and just add it back at the time we need it.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Move the definition of libraries to install before it is actually used.
Also, in a coming changeset, it will also be used to know which
pkg-config files to symlink.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
For a shared-only build, do not create the symlinks to the static
libraries, since they do not exist.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Now that we have clear options for the three cases of shared only,
static only and shared+static, let's use them in ncurses to pass the
appropriate --{with,without}-{shared,normal} options.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
For the host variant of packages, we normally only build the shared
libraries. However, ncurses uses non-standard options to select
between shared/static and therefore the host variant was building both
of them, even though the static libraries were unused.
By passing --without-normal, we disable the build of static
libraries. It saves a bit of disk space, and on my laptop,
host-ncurses takes 26 seconds to build instead of 40 seconds.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Since a while, the semantic of BR2_PREFER_STATIC_LIB has been changed
from "prefer static libraries when possible" to "use only static
libraries". The former semantic didn't make much sense, since the user
had absolutely no control/idea of which package would use static
libraries, and which packages would not. Therefore, for quite some
time, we have been starting to enforce that BR2_PREFER_STATIC_LIB
should really build everything with static libraries.
As a consequence, this patch renames BR2_PREFER_STATIC_LIB to
BR2_STATIC_LIBS, and adjust the Config.in option accordingly.
This also helps preparing the addition of other options to select
shared, shared+static or just static.
Note that we have verified that this commit can be reproduced by
simply doing a global rename of BR2_PREFER_STATIC_LIB to
BR2_STATIC_LIBS plus adding BR2_PREFER_STATIC_LIB to Config.in.legacy.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS,
make the same change for FOO_CONF_OPT.
Sed command used:
find * -type f | xargs sed -i 's#_CONF_OPT\>#&S#g'
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Some packages use -lcurses when they are linking, so they try to link to
a library called libcurses. The library provided by our ncurses package
is called libncurses, so those packages fail to link with a message like
this one:
/bin/ld: cannot find -lcurses
Installing a libcurses symlink to libncurses fixes the problem.
Fixes:
http://autobuild.buildroot.net/results/466/466995f9534447a4f54327a14c44ef9e16dd1123/
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Markos Chandras <Markos.Chandras@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
As stated on the list we need to copy static libraries when doing static
targets so add the logic for that.
Also exclude the wide option for blackfin flat since there seem to be
toolchain issues with that combination - since it's a new feature option
someone interested might look into it later.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Allow ncurses to be configured with wide char support; this causes the
libraries to be built with the 'w' suffix (eg libncursesw.so,
libmenuw.so, etc), so we need to create a few symlinks.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Using a trick taken from gentoo enable parallel build when building for
the target to reduce the build time for my test case from about 54s to
32s on a dual-core laptop.
[Peter: add comment explaining why]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Currently, the ncurses package conditionally defines macros to install
the panel, form and menu libraries. This means we duplicate the install
step for each library type.
Rather than defining a set of macros, this change introduces a variable
for the set of installed libraries, $(NCURSES_LIBS-y). We use this in a
single macro to perform the library installation in one place.
Based on a change suggested by Thomas Petazzoni
<thomas.petazzoni@free-electrons.com>.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This patch removes deprecated symbol BR2_HAVE_DOCUMENTATION and all its
usage. Additionally, it removes the now unused BR2_DEPRECATED_SINCE_2012_11.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Closes bug #5072
Based on work from Stefan Meißner, thanks!
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This finally removes the BR2_HAVE_DEVFILES option, that was used to
install/keep development files on target. With the recent migration of
the internal backend to the package infrastructure, we had anyway lost
the ability to build gcc for the target, and install the uClibc
development files on the target.
[Peter: also remove support/scripts/copy.sh]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
On the host, we generally build and install a shared library rather
than a static version of libraries. In this specific case, we will
want to build host-gettext, which builds a shared library that depends
on ncurses. And this doesn't work well if ncurses is static because it
hasn't been built with -fPIC. Therefore, let's build ncurses as shared
on the host.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Disable C++ and Ada bindings in host-ncurses, since those are not
needed. Save 9 seconds of build time on my laptop.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The installation of manpages during the installation step of
host-ncurses and ncurses is horribly slow, and useless. This commit
therefore disables the installation of those manpages, using the
--without-manpages configuration option.
It brings the combined host-ncurses+ncurses configure/build/install
time from 3 minutes and 18 seconds to 1 minute and 36 seconds.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Use the <pkg>_CONFIG_SCRIPTS mechanism in all packages for which it
does all what the package was doing. A few packages, like libxslt, are
for now left out, since they need some additional fixup (for example a
fixup of includedir).
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
There is no real reason to keep copyright notices in just four
packages, while none of the other packages have such copyright
notices.
The license is already clearly announced by the COPYING file in the
top Buildroot source directory. The authors are clearly credited
through the Git history of the project.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Bumping to 5.9 has two nice side-effects:
* It builds fine on noMMU architectures such as Blackfin, which will
fix build failures like
http://autobuild.buildroot.org/results/cf3e6a95c82b60d63da041293db576a8f21f9136/build-end.log.
* It installs a pkg-config file, which will allow gpsd to find
ncurses properly, without the need to use ncurses5-config, which
means we can get rid of one of our gpsd patches. Thanks to Mike
Frysinger for pointing the new --enable-pc-files option.
After this bump, I build tested a large number of the ncurses reverse
dependencies we have in Buildroot, and they all built fine.
Thanks to Gustavo Zacarias for the investigation on why ncurses 5.9
why segfaulting: it turned out to be caused by the
--enable-broken-linker configure option.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
There was a typo in the name of the variable to register the hook,
which prevent the hook from actually being called.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Closes#5204
Install the terminfo file for screen.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Thanks to the pkgparentdir and pkgname functions, we can rewrite the
AUTOTARGETS macro in a way that avoids the need for each package to
repeat its name and the directory in which it is present.
[Peter: pkgdir->pkgparentdir]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Disable GPM support for host ncurses build since it sometimes breaks the
build.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
ncurses 5.8 and 5.9 segfault with some applications so roll back to
version 5.7
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The option was removed from Config.in in 58508f39c (ncurses: remove
dedicated target-headers option), so remove it from the makefile as
well.
Reported-by: Ian <reg-ian.ridley-buildroot@hydrix.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
In some configurations $(TARGET_DIR)/usr/lib isn't
created before the target install target for libncurses
is run. This change makes sure it is created before
the install target copies files to it.
Signed-off-by: Clark Rawlins <clark@bit63.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
We have been passing -q to ./configure when using 'make -s' for
packages using Makefile.autotools.in for some time. Do the same
for packages using autotools, but not using the
Makefile.autotools.in infrastructure, taking care to not do it
for packages with hand written configure scripts.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>