Scientific libraries
cover Scientific libraries
Hi all,
Here is a series containing the bump of OpenCV and some new scientific packages, among these python Numpy.
The OpenCV bump comes with a couple of refactoring and fixes (in OpenCV itself and some of its reverse-dependencies).
This series targets (and has been rebased on) the branch next, but prior to its integration, it also requires:
- cherry-picking the following commit in then branch next:
commit e78d357551f3191fee7b6bcc18dfd8514819cab
opencv: always enable opencv_core module when opencv is enabled
- and applying the following patches:
http://patchwork.ozlabs.org/patch/312315/
http://patchwork.ozlabs.org/patch/312316/
Yours,
Samuel
Samuel Martin (11):
opencv: bump to version 2.4.8
opencv: rework V4L/libv4l support
opencv: add jasper support
opencv: add Qt5 support
clapack: new package
armadillo: new package
python-numpy: new package
python-numpy: add install-staging command
opencv: add python/numpy support
opencv: define modules inter-dependencies
vlc: add opencv support
package/Config.in | 3 + package/armadillo/Config.in | 9 ++ package/armadillo/armadillo.mk | 15 ++ package/clapack/Config.in | 18 +++ ...ce-libf2c-to-be-built-as-a-static-library.patch | 32 +++++ ...ake-test-build-sensitive-to-BUILD_TESTING.patch | 80 +++++++++++ ...t-try-to-run-arithchk-when-cross-compilin.patch | 70 ++++++++++ ...blas-add-library-and-header-install-rules.patch | 23 ++++ ...pack-add-library-and-header-install-rules.patch | 24 ++++ package/clapack/clapack.mk | 20 +++ package/opencv/Config.in | 146 ++++++++++++++++---- ...t-run-python-for-numpy-detection-when-cro.patch | 77 +++++++++++ package/opencv/opencv.mk | 152 ++++++++++++++++----- package/python-numpy/Config.in | 14 ++ package/python-numpy/python-numpy.mk | 48 +++++++ package/vlc/vlc.mk | 7 + 16 files changed, 671 insertions(+), 67 deletions(-) create mode 100644 package/armadillo/Config.in create mode 100644 package/armadillo/armadillo.mk create mode 100644 package/clapack/Config.in create mode 100644 package/clapack/clapack-0001-cmake-force-libf2c-to-be-built-as-a-static-library.patch create mode 100644 package/clapack/clapack-0002-cmake-make-test-build-sensitive-to-BUILD_TESTING.patch create mode 100644 package/clapack/clapack-0003-cmake-do-not-try-to-run-arithchk-when-cross-compilin.patch create mode 100644 package/clapack/clapack-0004-cmake-blas-add-library-and-header-install-rules.patch create mode 100644 package/clapack/clapack-0005-cmake-lapack-add-library-and-header-install-rules.patch create mode 100644 package/clapack/clapack.mk create mode 100644 package/opencv/opencv-0001-cmake-do-not-run-python-for-numpy-detection-when-cro.patch create mode 100644 package/python-numpy/Config.in create mode 100644 package/python-numpy/python-numpy.mk
--
1.8.5.4
PATCH 1/11 opencv: bump to version 2.4.8
This patch bumps OpenCV version and does a number of cleanup in the opencv.mk files:
- add an extract command because the source archive is only available under zip format since this 2.4.8 release. Since there is no default extract command for zip archive, we have to define it;
- add license details;
- add new modules options and update existing ones;
- update SSE support;
- sort and reorder the configure options (to make easier future package update);
- clean redundant C++ dependency (in the Qt knob).
However, it does not add any new 3rd-party support for the followings:
- jasper support;
- python/numpy support;
- Qt4 and Qt5 support (since the 2.4.6 release), so only Qt4 support is supported in this patch;
- optional libv4l dependency (since 2.4.7 release).
These will be addressed in followup patches.
--- package/opencv/Config.in | 12 +++-- package/opencv/opencv.mk | 120 ++++++++++++++++++++++++++++++++++------------- 2 files changed, 97 insertions(+), 35 deletions(-)
package/opencv/Config.in +9 -3
@@ -8,7 +8,7 @@ menuconfig BR2_PACKAGE_OPENCV OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. - http://opencv.willowgarage.com/wiki/ + http://opencv.org/ if BR2_PACKAGE_OPENCV
@@ -92,6 +92,13 @@ config BR2_PACKAGE_OPENCV_LIB_STITCHING help Include opencv_stitching module into the OpenCV build. +config BR2_PACKAGE_OPENCV_LIB_SUPERRES + bool "superres" + default y + help + Include opencv_superres "super resolution" - module into the OpenCV + build. + config BR2_PACKAGE_OPENCV_LIB_TS bool "ts (touchscreen)" default y
@@ -164,8 +171,7 @@ config BR2_PACKAGE_OPENCV_WITH_PNG Use shared libpng from the target system. config BR2_PACKAGE_OPENCV_WITH_QT - bool "qt backend support" - depends on BR2_INSTALL_LIBSTDCPP + bool "qt4 backend support" depends on !BR2_avr32 # qt select BR2_PACKAGE_QT select BR2_PACKAGE_QT_STL
package/opencv/opencv.mk +88 -32
191 lines not on this page · raw message
Signature · 1 line
1.8.5.4
PATCH 1/11 opencv: bump to version 2.4.8
Samuel, All,
On 2014-02-16 22:59 +0100, Samuel Martin spake thusly:
Quoted 11 lines
This patch bumps OpenCV version and does a number of cleanup in the opencv.mk files:
- add an extract command because the source archive is only available under zip format since this 2.4.8 release. Since there is no default extract command for zip archive, we have to define it;
- add license details;
- add new modules options and update existing ones;
- update SSE support;
- sort and reorder the configure options (to make easier future package update);
- clean redundant C++ dependency (in the Qt knob).
As said on IRC (and repeated here for posterity ;-] ) : it would have been easier to review if you had split the patch:
- shufle options around
- bump the version (with its own options added/removed/updated)
- add licensing info
- add sse4/sse42 support
- add superres config knob
- ...
Quoted 17 lines
package/opencv/opencv.mk +5
-3@@ -4,23 +4,34 @@ # ################################################################################ -OPENCV_VERSION = 2.4.2 -OPENCV_SITE = http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/$(OPENCV_VERSION) -OPENCV_SOURCE = OpenCV-$(OPENCV_VERSION).tar.bz2 +OPENCV_VERSION = 2.4.8 +OPENCV_SOURCE = opencv-$(OPENCV_VERSION).zip +OPENCV_SITE = http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/$(OPENCV_VERSION) OPENCV_INSTALL_STAGING = YES +OPENCV_LICENSE = BSD-3c +OPENCV_LICENSE_FILES = doc/license.txt
package/opencv/opencv.mk line 21
Quoted 10 lines
package/opencv/opencv.mk +6
-1+ +define OPENCV_EXTRACT_CMDS + unzip -d $(BUILD_DIR) $(DL_DIR)/$(OPENCV_SOURCE) +endef OPENCV_CONF_OPT += \ -DCMAKE_BUILD_TYPE=$(if $(BR2_ENABLE_DEBUG),Debug,Release) \ - -DBUILD_WITH_STATIC_CRT=OFF \ + -DBUILD_WITH_DEBUG_INFO=OFF \ + \
Why do you add such separating empty lines? If needed, add as many option groups as needed. But separating options in a single group is not really useful.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 2/11 opencv: rework V4L/libv4l support
In reply to Samuel MartinStarting with the 2.4.7 release, for V4L support, OpenCV does not requires a libv4l dependency for its V4L support.
So, it now provides 2 distincts knobs for this: WITH_V4L and a new
one: WITH_LIBV4L.
This patch takes advantage of this new knob and libv4l support is now automatically enabled if only the libv4l package is enabled.
--- package/opencv/Config.in | 11 ++++++----- package/opencv/opencv.mk | 10 +++++++--- 2 files changed, 13 insertions(+), 8 deletions(-)
package/opencv/Config.in +6 -5
@@ -189,14 +189,15 @@ config BR2_PACKAGE_OPENCV_WITH_TIFF config BR2_PACKAGE_OPENCV_WITH_V4L bool "v4l support" - depends on BR2_LARGEFILE - depends on BR2_TOOLCHAIN_HAS_THREADS - select BR2_PACKAGE_LIBV4L help Enable Video 4 Linux support. -comment "v4l support needs a toolchain w/ largefile, threads" - depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS + If the package libv4l is enabled, its support is automatically enabled. + +if BR2_PACKAGE_OPENCV_WITH_V4L && !(BR2_LARGEFILE && BR2_TOOLCHAIN_HAS_THREADS) +comment "libv4l support will be disabled." +comment "libv4l support needs a toolchain w/ largefile, threads" +endif comment "Install options"
package/opencv/opencv.mk +7 -3
@@ -210,10 +210,14 @@ OPENCV_CONF_OPT += -DWITH_TIFF=OFF endif ifeq ($(BR2_PACKAGE_OPENCV_WITH_V4L),y) -OPENCV_CONF_OPT += -DWITH_V4L=ON -DWITH_LIBV4L=ON -OPENCV_DEPENDENCIES += libv4l +OPENCV_CONF_OPT += \ + -DWITH_V4L=ON \ + -DWITH_LIBV4L=$(if $(BR2_PACKAGE_LIBV4L),ON,OFF) +OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBV4L),libv4l) else -OPENCV_CONF_OPT += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF +OPENCV_CONF_OPT += \ + -DWITH_V4L=OFF \ + -DWITH_LIBV4L=OFF endif # Installation hooks:
Signature · 1 line
1.8.5.4
PATCH 2/11 opencv: rework V4L/libv4l support
Thomas,
Can you have a look at the below dependency tricks, and tell me your opinion about how they are expressed in terms of comments and al. ?
Thanks,
Thomas
Quoted 62 lines · Samuel Martin
Starting with the 2.4.7 release, for V4L support, OpenCV does not requires a libv4l dependency for its V4L support.
So, it now provides 2 distincts knobs for this:
WITH_V4Land a new
one:WITH_LIBV4L.This patch takes advantage of this new knob and libv4l support is now automatically enabled if only the libv4l package is enabled.
Signed-off-by Samuel Martin <[email protected]>--- package/opencv/Config.in | 11 ++++++----- package/opencv/opencv.mk | 10 +++++++--- 2 files changed, 13 insertions(+), 8 deletions(-)package/opencv/Config.in +6
-5@@ -189,14 +189,15 @@ config BR2_PACKAGE_OPENCV_WITH_TIFF config BR2_PACKAGE_OPENCV_WITH_V4L bool "v4l support" - depends on BR2_LARGEFILE - depends on BR2_TOOLCHAIN_HAS_THREADS - select BR2_PACKAGE_LIBV4L help Enable Video 4 Linux support. -comment "v4l support needs a toolchain w/ largefile, threads" - depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS + If the package libv4l is enabled, its support is automatically enabled. + +if BR2_PACKAGE_OPENCV_WITH_V4L && !(BR2_LARGEFILE && BR2_TOOLCHAIN_HAS_THREADS) +comment "libv4l support will be disabled." +comment "libv4l support needs a toolchain w/ largefile, threads" +endif comment "Install options"package/opencv/opencv.mk +7
-3@@ -210,10 +210,14 @@ OPENCV_CONF_OPT += -DWITH_TIFF=OFF endif ifeq ($(BR2_PACKAGE_OPENCV_WITH_V4L),y) -OPENCV_CONF_OPT += -DWITH_V4L=ON -DWITH_LIBV4L=ON -OPENCV_DEPENDENCIES += libv4l +OPENCV_CONF_OPT += \ + -DWITH_V4L=ON \ + -DWITH_LIBV4L=$(if $(BR2_PACKAGE_LIBV4L),ON,OFF) +OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBV4L),libv4l) else -OPENCV_CONF_OPT += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF +OPENCV_CONF_OPT += \ + -DWITH_V4L=OFF \ + -DWITH_LIBV4L=OFF endif # Installation hooks:
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 2/11 opencv: rework V4L/libv4l support
In reply to Samuel MartinSamuel, All,
On 2014-02-16 22:59 +0100, Samuel Martin spake thusly:
Quoted 8 lines
Starting with the 2.4.7 release, for V4L support, OpenCV does not requires a libv4l dependency for its V4L support.
So, it now provides 2 distincts knobs for this:
WITH_V4Land a new
one:WITH_LIBV4L.This patch takes advantage of this new knob and libv4l support is now automatically enabled if only the libv4l package is enabled.
So, if I understood correctly:
- v4l support in openCV does not require libv4l
- if libv4l is present, openCV can use it
- use of libv4l or not, openCV support v4l the same
Right?
Quoted 18 lines
Signed-off-by Samuel Martin <[email protected]>--- package/opencv/Config.in | 11 ++++++----- package/opencv/opencv.mk | 10 +++++++--- 2 files changed, 13 insertions(+), 8 deletions(-)package/opencv/Config.in +0
-3@@ -189,14 +189,15 @@ config BR2_PACKAGE_OPENCV_WITH_TIFF config BR2_PACKAGE_OPENCV_WITH_V4L bool "v4l support" - depends on BR2_LARGEFILE - depends on BR2_TOOLCHAIN_HAS_THREADS - select BR2_PACKAGE_LIBV4L help
package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_TIFF · line 200
Quoted 10 lines
package/opencv/Config.in +6
-2Enable Video 4 Linux support. -comment "v4l support needs a toolchain w/ largefile, threads" - depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS + If the package libv4l is enabled, its support is automatically enabled. + +if BR2_PACKAGE_OPENCV_WITH_V4L && !(BR2_LARGEFILE && BR2_TOOLCHAIN_HAS_THREADS) +comment "libv4l support will be disabled." +comment "libv4l support needs a toolchain w/ largefile, threads" +endif
I guess we do not need a comment for an optional dependency, especially since you added a blurb in the help text.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 3/11 opencv: add jasper support
In reply to Samuel Martin--- package/opencv/Config.in | 6 ++++++ package/opencv/opencv.mk | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-)
package/opencv/Config.in +6 -0
@@ -158,6 +158,12 @@ config BR2_PACKAGE_OPENCV_WITH_GTK depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIBGTK2 +config BR2_PACKAGE_OPENCV_WITH_JASPER + bool "jasper (jpeg 2000) support" + select BR2_PACKAGE_JASPER + help + Use shared libjasper from the target system. + config BR2_PACKAGE_OPENCV_WITH_JPEG bool "jpeg support" select BR2_PACKAGE_JPEG
package/opencv/opencv.mk +7 -1
@@ -149,7 +149,6 @@ OPENCV_CONF_OPT += \ -DWITH_1394=OFF \ -DWITH_EIGEN=OFF \ -DWITH_IMAGEIO=OFF \ - -DWITH_JASPER=OFF \ -DWITH_OPENCL=OFF \ -DWITH_OPENEXR=OFF \ -DWITH_OPENGL=OFF \
@@ -181,6 +180,13 @@ else OPENCV_CONF_OPT += -DWITH_GTK=OFF endif +ifeq ($(BR2_PACKAGE_OPENCV_WITH_JASPER),y) +OPENCV_CONF_OPT += -DWITH_JASPER=ON +OPENCV_DEPENDENCIES += jasper +else +OPENCV_CONF_OPT += -DWITH_JASPER=OFF +endif + ifeq ($(BR2_PACKAGE_OPENCV_WITH_JPEG),y) OPENCV_CONF_OPT += -DWITH_JPEG=ON OPENCV_DEPENDENCIES += jpeg
Signature · 1 line
1.8.5.4
PATCH 3/11 opencv: add jasper support
Samuel, All,
On 2014-02-16 22:59 +0100, Samuel Martin spake thusly:
Quoted 11 lines
Signed-off-by Samuel Martin <[email protected]>--- package/opencv/Config.in | 6 ++++++ package/opencv/opencv.mk | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-)package/opencv/Config.in +0
-0
package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_GTK · line 165
Quoted 8 lines
package/opencv/Config.in +5
-0@@ -158,6 +158,12 @@ config BR2_PACKAGE_OPENCV_WITH_GTK depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIBGTK2 +config BR2_PACKAGE_OPENCV_WITH_JASPER + bool "jasper (jpeg 2000) support" + select BR2_PACKAGE_JASPER + help + Use shared libjasper from the target system.
What do you mean by "from the target system?"
I would expect to read something like:
config BR2_PACKAGE_OPENCV_WITH_JASPER
bool "jpeg2000 support"
select BR2_PACKAGE_JASPER
help
Use libjasper to provide support for jpeg2000.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 3/11 opencv: add jasper support
Yann, all,
Quoted 17 lines · Yann E. MORIN
Samuel, All,
On 2014-02-16 22:59 +0100, Samuel Martin spake thusly:
Quoted 14 lines
Signed-off-by Samuel Martin <[email protected]>--- package/opencv/Config.in | 6 ++++++ package/opencv/opencv.mk | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-)package/opencv/Config.in +0
-0@@ -158,6 +158,12 @@ config BR2_PACKAGE_OPENCV_WITH_GTK depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIBGTK2
Quoted 7 lines
package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_GTK · line 165
Quoted 5 lines
package/opencv/Config.in +5
-0+config BR2_PACKAGE_OPENCV_WITH_JASPER + bool "jasper (jpeg 2000) support" + select BR2_PACKAGE_JASPER + help + Use shared libjasper from the target system.What do you mean by "from the target system?"
OpenCV comes with many libs in its 3rdparty directory (ffmpeg, jinja2, libjasper, libjpeg, libpng, libtiff, libwebp, openexr, tbb, zlib), and can build these, or use those provided by the system or disabling their support.
When I integrated opencv in BR for the first, it was requested to me to only use the libs provided by the system. I stick to this ;-)
Quoted 9 lines
I would expect to read something like:
config
BR2_PACKAGE_OPENCV_WITH_JASPER
bool "jpeg2000 support"
selectBR2_PACKAGE_JASPER
help
Use libjasper to provide support for jpeg2000.
Regards,
Signature · 1 line
Samuel
PATCH 3/11 opencv: add jasper support
Samuel, All,
On 2014-03-06 00:08 +0100, Samuel Martin spake thusly:
Quoted 26 lines · Yann E. MORIN
Quoted 17 lines
Samuel, All,
On 2014-02-16 22:59 +0100, Samuel Martin spake thusly:
Quoted 14 lines
Signed-off-by Samuel Martin <[email protected]>--- package/opencv/Config.in | 6 ++++++ package/opencv/opencv.mk | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-)package/opencv/Config.in +0
-0@@ -158,6 +158,12 @@ config BR2_PACKAGE_OPENCV_WITH_GTK depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_LIBGTK2Quoted 7 lines
package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_GTK · line 165
Quoted 5 lines
package/opencv/Config.in +5
-0+config BR2_PACKAGE_OPENCV_WITH_JASPER + bool "jasper (jpeg 2000) support" + select BR2_PACKAGE_JASPER + help + Use shared libjasper from the target system.What do you mean by "from the target system?"
Quoted 7 lines
OpenCV comes with many libs in its 3rdparty directory (ffmpeg, jinja2, libjasper, libjpeg, libpng, libtiff, libwebp, openexr, tbb, zlib), and can build these, or use those provided by the system or disabling their support.
When I integrated opencv in BR for the first, it was requested to me to only use the libs provided by the system. I stick to this ;-)
Ah, OK I understand. But then, the help text is not clear enough.
I would expect to read something like:
config BR2_PACKAGE_OPENCV_WITH_JASPER
bool "jpeg2000 support"
select BR2_PACKAGE_JASPER
help
Use the package 'libjasper' to provide support for jpeg2000.
The copy of libjasper bundled in openCV is not used.
But do we even want to state this in the help text?
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 4/11 opencv: add Qt5 support
In reply to Samuel MartinStarting with the 2.4.6 release, OpenCV supports both Qt4 and Qt5, but only one can be enable at the same time.
Since Buildroot does not support Qt4/Qt5 co-existence, we keep the Qt support knob as a boolean, but make it depend on BR2_PACKAGE_QT or BR2_PACKAGE_QT5, and automatically uses the enabled one.
Note that we usually use 'select ...' to express the dependencies between packages, but in this case, we cannot since the Qt4/Qt5 co-existence exclusion is not handled by a simple choice, but by a dependency. This makes impossible using 'select ...' for the Qt support knob without triggering a circular dependency at the kconfig level.
Besides, we already use 'depends on ...' to express the dependencies with some "big" packages (like xorg or libgtk2). qt or qt5* packages are fairly big. So, I don't think it will hurt that much to use a 'depends on ...' statement in this case.
--- package/opencv/Config.in | 41 ++++++++++++++++++++++++++++++++--------- package/opencv/opencv.mk | 4 ++-- 2 files changed, 34 insertions(+), 11 deletions(-)
package/opencv/Config.in +32 -9
@@ -177,15 +177,38 @@ config BR2_PACKAGE_OPENCV_WITH_PNG Use shared libpng from the target system. config BR2_PACKAGE_OPENCV_WITH_QT - bool "qt4 backend support" - depends on !BR2_avr32 # qt - select BR2_PACKAGE_QT - select BR2_PACKAGE_QT_STL - select BR2_PACKAGE_QT_GUI_MODULE if BR2_PACKAGE_OPENCV_LIB_HIGHGUI - select BR2_PACKAGE_QT_TEST if BR2_PACKAGE_OPENCV_LIB_HIGHGUI - default y - help - Use Qt with QtTest module and STL support + bool "qt support" + depends on (BR2_PACKAGE_QT && !BR2_avr32) || \ + (BR2_PACKAGE_QT5 && BR2_USE_MMU && BR2_INET_IPV6 && \ + BR2_TOOLCHAIN_HAS_THREADS) + select BR2_PACKAGE_QT_STL if BR2_PACKAGE_QT + select BR2_PACKAGE_QT_GUI_MODULE if BR2_PACKAGE_QT && \ + BR2_PACKAGE_OPENCV_LIB_HIGHGUI + select BR2_PACKAGE_QT_TEST if BR2_PACKAGE_QT && \ + BR2_PACKAGE_OPENCV_LIB_HIGHGUI + select BR2_PACKAGE_QT5BASE if BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5BASE_CONCURRENT if BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5BASE_TEST if BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5BASE_GUI if BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5BASE_WIDGETS if BR2_PACKAGE_QT5 + help + Enable Qt support for OpenCV. + + If Qt4 is already enabled, then use Qt4 with QtTest module and STL + support. + + If Qt5 is already enabled, then use Qt5 with the following components: + base, concurrent, test, gui and widgets. + +if !BR2_PACKAGE_QT && !BR2_PACKAGE_QT5 +comment "qt support with Qt4 needs qt" + +comment "qt support with Qt5 needs qt5" + depends on BR2_USE_MMU && BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS + +comment "qt support with Qt5 needs a toolchain w/ wchar, IPv6, theads" + depends on !BR2_USE_MMU || !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS +endif config BR2_PACKAGE_OPENCV_WITH_TIFF bool "tiff support"
package/opencv/opencv.mk +2 -2
@@ -202,8 +202,8 @@ OPENCV_CONF_OPT += -DWITH_PNG=OFF endif ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT),y) -OPENCV_CONF_OPT += -DWITH_QT=4 -OPENCV_DEPENDENCIES += qt +OPENCV_CONF_OPT += -DWITH_QT=$(if $(BR2_PACKAGE_QT),4,5) +OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_QT),qt,qt5base) else OPENCV_CONF_OPT += -DWITH_QT=OFF endif
Signature · 1 line
1.8.5.4
PATCH 4/11 opencv: add Qt5 support
Samuel, All,
On 2014-02-16 22:59 +0100, Samuel Martin spake thusly:
Quoted 2 lines
Starting with the 2.4.6 release, OpenCV supports both Qt4 and Qt5, but only one can be enable at the same time.
[--SNIP--]
Quoted 11 lines
package/opencv/Config.in +0
-3@@ -177,15 +177,38 @@ config BR2_PACKAGE_OPENCV_WITH_PNG Use shared libpng from the target system. config BR2_PACKAGE_OPENCV_WITH_QT - bool "qt4 backend support" - depends on !BR2_avr32 # qt - select BR2_PACKAGE_QT
package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_PNG · line 183
Quoted 10 lines
package/opencv/Config.in +4
-6- select BR2_PACKAGE_QT_STL - select BR2_PACKAGE_QT_GUI_MODULE if BR2_PACKAGE_OPENCV_LIB_HIGHGUI - select BR2_PACKAGE_QT_TEST if BR2_PACKAGE_OPENCV_LIB_HIGHGUI - default y - help - Use Qt with QtTest module and STL support + bool "qt support" + depends on (BR2_PACKAGE_QT && !BR2_avr32) || \ + (BR2_PACKAGE_QT5 && BR2_USE_MMU && BR2_INET_IPV6 && \ + BR2_TOOLCHAIN_HAS_THREADS)
Why do you repeat Qt4's and Qt5's dependencies? Since it 'depends on' Qt4 or Qt5, you will also inherit forn their dependencies, so there is no reason to bring them here...
But if those deps are needed for sub-modules (below), then add them as separate line, like (eg.):
depends on BR2_TOOLCHAIN_HAS_THREADS # qt-stl
select BR2_PACKAGE_QT_TEST if BR2_PACKAGE_QT && HIGHGUI depends on BR2_INET_IPV6 # qt5-base
select BR2_PACKAGE_QT5BASE if BR2_PACKAGE_QT5
Quoted 5 lines
package/opencv/Config.in +5
-0+ select BR2_PACKAGE_QT_STL if BR2_PACKAGE_QT + select BR2_PACKAGE_QT_GUI_MODULE if BR2_PACKAGE_QT && \ + BR2_PACKAGE_OPENCV_LIB_HIGHGUI + select BR2_PACKAGE_QT_TEST if BR2_PACKAGE_QT && \ + BR2_PACKAGE_OPENCV_LIB_HIGHGUI
package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_PNG · line 198
Quoted 10 lines
package/opencv/Config.in +10
-0+ select BR2_PACKAGE_QT5BASE if BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5BASE_CONCURRENT if BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5BASE_TEST if BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5BASE_GUI if BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5BASE_WIDGETS if BR2_PACKAGE_QT5 + help + Enable Qt support for OpenCV. + + If Qt4 is already enabled, then use Qt4 with QtTest module and STL + support.
For Qt4, this uses module QtSTL. Highgui supports also uses QtTest and QtGui.
package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_PNG · line 201
Quoted 2 lines
package/opencv/Config.in +2
-0+ If Qt5 is already enabled, then use Qt5 with the following components: + base, concurrent, test, gui and widgets.
For Qt5, this uses modules Qt5Base, Qt5Concurrent, Qt5Test, Qt5Gui and Qt5Widgets.
package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_PNG · line 204
Quoted 2 lines
package/opencv/Config.in +2
-0+if !BR2_PACKAGE_QT && !BR2_PACKAGE_QT5 +comment "qt support with Qt4 needs qt"
Here, you need to duplicate Qt4's deps. Also, you don;t want to show the comment for Qt4 if Qt5 is enabled:
comment "qt4 support needs a toolchain w/ C++, threads"
depends on !avr32 && MMU
depends on !LIBSTCPP || !THREADS
depends on !QT5
comment "qt5 support needs a toolchain w/ wchar, IPv6, threads"
depends on !avr32 && _MMU
depends on !WCHAR || !IPV6 || !THREADS
depends on !QT4
[--SNIP--]
package/opencv/opencv.mk OPENCV_CONF_OPT += -DWITH_PNG=OFF · line 206
Quoted 12 lines
package/opencv/opencv.mk +2
-2@@ -202,8 +202,8 @@ OPENCV_CONF_OPT += -DWITH_PNG=OFF endif ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT),y) -OPENCV_CONF_OPT += -DWITH_QT=4 -OPENCV_DEPENDENCIES += qt +OPENCV_CONF_OPT += -DWITH_QT=$(if $(BR2_PACKAGE_QT),4,5) +OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_QT),qt,qt5base)
qt and qt5base are enough to build? Don;t you also need the Qt4/5 modules to be built first?
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 5/11 clapack: new package
In reply to Samuel MartinThis package provides BLAS and LAPACK libraries.
Though it is common to find implementation of these two libraries in Fortran, this package provides a C-implementation for both, because:
- Fortran support has been deprecated in Buildroot since the 2013.11 release;
- most of the external toolchains do not provide a Fortran compiler.
Often BLAS build-systems build some test programs and run them to generate some source files or adjust some build optimizations, naively assuming they are building the library for the build-machine. This does not play well when cross-compiling.
This implementation has this defect too, by building and running a tool generating a header.
However, the build-system allows to pass an empty header. So, we have to patch the CMake to build the generator (but never install it) and correctly support building with and without this header provided by the user.
Also, few CMake patches are needed to fix the build and install rules.
--- package/Config.in | 1 + package/clapack/Config.in | 18 +++++ ...ce-libf2c-to-be-built-as-a-static-library.patch | 32 +++++++++ ...ake-test-build-sensitive-to-BUILD_TESTING.patch | 80 ++++++++++++++++++++++ ...t-try-to-run-arithchk-when-cross-compilin.patch | 70 +++++++++++++++++++ ...blas-add-library-and-header-install-rules.patch | 23 +++++++ ...pack-add-library-and-header-install-rules.patch | 24 +++++++ package/clapack/clapack.mk | 20 ++++++ 8 files changed, 268 insertions(+) create mode 100644 package/clapack/Config.in create mode 100644 package/clapack/clapack-0001-cmake-force-libf2c-to-be-built-as-a-static-library.patch create mode 100644 package/clapack/clapack-0002-cmake-make-test-build-sensitive-to-BUILD_TESTING.patch create mode 100644 package/clapack/clapack-0003-cmake-do-not-try-to-run-arithchk-when-cross-compilin.patch create mode 100644 package/clapack/clapack-0004-cmake-blas-add-library-and-header-install-rules.patch create mode 100644 package/clapack/clapack-0005-cmake-lapack-add-library-and-header-install-rules.patch create mode 100644 package/clapack/clapack.mk
package/Config.in +1 -0
@@ -727,6 +727,7 @@ source "package/apr/Config.in" source "package/apr-util/Config.in" source "package/argp-standalone/Config.in" source "package/boost/Config.in" +source "package/clapack/Config.in" source "package/classpath/Config.in" source "package/cppcms/Config.in" source "package/eigen/Config.in"
package/clapack/Config.in new file +18 -0
@@ -0,0 +1,18 @@ +config BR2_PACKAGE_CLAPACK + bool "cblas/clapack" + help + BLAS and LAPACK C implementation (f2c'ed version of). + + http://www.netlib.org/clapack/ + +config BR2_PACKAGE_CLAPACK_ARITH_H + string "Custom BLAS arith.h" + depends on BR2_PACKAGE_CLAPACK + help + To optimized BLAS library for the hardware an 'arith.h' header should + be provided. + + If empty, the library wil just be not optimized by the compiler. + + In any case an 'arithchk' program is built (but not installed), to be run + on the target for generating this arith.h header.
package/clapack/clapack-0001-cmake-force-libf2c-to-be-built-as-a-static-library.patch new file +32 -0
@@ -0,0 +1,32 @@ +From 4fe2f454e454d9e6b1e83b2ea67581990461ed36 Mon Sep 17 00:00:00 2001 +From: Samuel Martin <[email protected]> +Date: Sat, 11 Jan 2014 22:05:25 +0100 +Subject: [PATCH 1/6] cmake: force libf2c to be built as a static library + +As stated in INSTALL/LAPACK_version.c, liblapack requires to be linked +against the static library of libf2c. + +Signed-off-by: Samuel Martin <[email protected]> +--- + F2CLIBS/libf2c/CMakeLists.txt | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt +index 43d7b3f..f98d66a 100644 +--- a/F2CLIBS/libf2c/CMakeLists.txt ++++ b/F2CLIBS/libf2c/CMakeLists.txt +@@ -58,5 +58,10 @@ if(WIN32) + endif() + include_directories(${CLAPACK_SOURCE_DIR}/F2CLIBS/libf2c) + include_directories(${CLAPACK_BINARY_DIR}/F2CLIBS/libf2c) +-add_library(f2c ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h) ++add_library(f2c STATIC ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h) + set_property(TARGET f2c PROPERTY PREFIX lib) ++# Set fPIC on the library when build shared libraries is enabled, because ++# libf2c.a will most likely be included by some shared libraries in such cases. ++if(UNIX AND BUILD_SHARED_LIBS) ++ set_target_properties(f2c PROPERTIES COMPILE_FLAGS "-fPIC") ++endif() +-- +1.8.5.3 +
package/clapack/clapack-0002-cmake-make-test-build-sensitive-to-BUILD_TESTING.patch new file +80 -0
80 lines not on this page · raw message
package/clapack/clapack-0003-cmake-do-not-try-to-run-arithchk-when-cross-compilin.patch new file +70 -0
70 lines not on this page · raw message
package/clapack/clapack-0004-cmake-blas-add-library-and-header-install-rules.patch new file +23 -0
@@ -0,0 +1,23 @@ +From 675111e8ffc179276a7e4950fe4a4eda4d38a703 Mon Sep 17 00:00:00 2001 +From: Samuel Martin <[email protected]> +Date: Sat, 11 Jan 2014 21:48:32 +0100 +Subject: [PATCH 4/6] cmake: blas: add library and header install rules + +Signed-off-by: Samuel Martin <[email protected]> +--- + BLAS/SRC/CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt +index d1caff8..a5de5a1 100644 +--- a/BLAS/SRC/CMakeLists.txt ++++ b/BLAS/SRC/CMakeLists.txt +@@ -141,3 +141,5 @@ if(UNIX) + target_link_libraries(blas m) + endif() + target_link_libraries(blas f2c) ++install(TARGETS blas LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) ++install(FILES "${CLAPACK_SOURCE_DIR}/INCLUDE/blaswrap.h" DESTINATION include) +-- +1.8.5.3 +
package/clapack/clapack-0005-cmake-lapack-add-library-and-header-install-rules.patch new file +24 -0
@@ -0,0 +1,24 @@ +From 9dfac0d55a31be59a856bad9d3a5071d65176597 Mon Sep 17 00:00:00 2001 +From: Samuel Martin <[email protected]> +Date: Sat, 11 Jan 2014 21:49:22 +0100 +Subject: [PATCH 5/6] cmake: lapack: add library and header install rules + +Signed-off-by: Samuel Martin <[email protected]> +--- + SRC/CMakeLists.txt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt +index ac4cce3..aa60555 100644 +--- a/SRC/CMakeLists.txt ++++ b/SRC/CMakeLists.txt +@@ -377,4 +377,5 @@ if(BUILD_COMPLEX16) + endif() + add_library(lapack ${ALLOBJ} ${ALLXOBJ}) + target_link_libraries(lapack blas) +- ++install(TARGETS lapack LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) ++install(FILES "${CLAPACK_SOURCE_DIR}/INCLUDE/clapack.h" DESTINATION include) +-- +1.8.5.3 +
package/clapack/clapack.mk new file +20 -0
@@ -0,0 +1,20 @@ +################################################################################ +# +# clapack +# +################################################################################ + +CLAPACK_VERSION = 3.2.1 +CLAPACK_SOURCE = clapack-$(CLAPACK_VERSION)-CMAKE.tgz +# This package provides 3 libraries: +# - libf2c.a (not installed) +# - libblas (linking against libf2c.a) +# - liblapack (linking against libf2c.a) +CLAPACK_LICENSE = HPND (libf2c), BSD-3c (libblas and lapack) +CLAPACK_LICENSE_FILES = F2CLIBS/libf2c/Notice, COPYING +CLAPACK_SITE = http://www.netlib.org/clapack +CLAPACK_INSTALL_STAGING = YES +CLAPACK_CONF_OPT = -DBUILD_TESTING=OFF \ + $(if $(BR2_PACKAGE_CLAPACK_ARITH_H),-DARITH_H=$(BR2_PACKAGE_CLAPACK_ARITH_H)) + +$(eval $(cmake-package))
Signature · 1 line
1.8.5.4
PATCH 5/11 clapack: new package
Samuel, All,
On 2014-02-16 22:59 +0100, Samuel Martin spake thusly:
Quoted 1 line
This package provides BLAS and LAPACK libraries.
[--SNIP--]
Quoted 9 lines
package/clapack/Config.in new file +3
-0@@ -0,0 +1,18 @@ +config BR2_PACKAGE_CLAPACK + bool "cblas/clapack" + help
package/clapack/Config.in line 13
Quoted 10 lines
package/clapack/Config.in new file +10
-0+ BLAS and LAPACK C implementation (f2c'ed version of). + + http://www.netlib.org/clapack/ + +config BR2_PACKAGE_CLAPACK_ARITH_H + string "Custom BLAS arith.h" + depends on BR2_PACKAGE_CLAPACK + help + To optimized BLAS library for the hardware an 'arith.h' header should + be provided.
To optimize the BLAS library for the hardware, an [...]
package/clapack/Config.in line 15
Quoted 1 line
package/clapack/Config.in new file +1
-0+ If empty, the library wil just be not optimized by the compiler.
s/wil just be not/will not be/
package/clapack/Config.in line 18
Quoted 2 lines
package/clapack/Config.in new file +2
-0+ In any case an 'arithchk' program is built (but not installed), to be run + on the target for generating this arith.h header.
to generate
[-- SNIP Cmake stuff, I expect you know what you're doing there! ;-) --]
Quoted 6 lines
package/clapack/clapack.mk new file +0
-0
package/clapack/clapack.mk line 8
Quoted 8 lines
package/clapack/clapack.mk new file +8
-0@@ -0,0 +1,20 @@ +################################################################################ +# +# clapack +# +################################################################################ + +CLAPACK_VERSION = 3.2.1 +CLAPACK_SOURCE = clapack-$(CLAPACK_VERSION)-CMAKE.tgz
What the difference between this ^^^^ and clapack-3.2.1.tgz at the same site:
http://www.netlib.org/clapack/clapack-3.2.1.tgz
(Note: only http://www.netlib.org/clapack/clapack.tgz is listed on the main page, but both URLs do download the same file. The one without the version string is of course unusable, in case they bump but we don't.)
package/clapack/clapack.mk line 12
Quoted 4 lines
package/clapack/clapack.mk new file +4
-0+# This package provides 3 libraries: +# - libf2c.a (not installed) +# - libblas (linking against libf2c.a) +# - liblapack (linking against libf2c.a)
s/linking against/staticaly linked with/
package/clapack/clapack.mk line 13
Quoted 1 line
package/clapack/clapack.mk new file +1
-0+CLAPACK_LICENSE = HPND (libf2c), BSD-3c (libblas and lapack)
s/lapack/liblapack/ to keep a coherent naming scheme.
package/clapack/clapack.mk line 20
Quoted 7 lines
package/clapack/clapack.mk new file +7
-0+CLAPACK_LICENSE_FILES = F2CLIBS/libf2c/Notice, COPYING +CLAPACK_SITE = http://www.netlib.org/clapack +CLAPACK_INSTALL_STAGING = YES +CLAPACK_CONF_OPT = -DBUILD_TESTING=OFF \ + $(if $(BR2_PACKAGE_CLAPACK_ARITH_H),-DARITH_H=$(BR2_PACKAGE_CLAPACK_ARITH_H)) + +$(eval $(cmake-package))
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 5/11 clapack: new package
Samuel, All,
On 2014-03-06 20:30 +0100, Yann E. MORIN spake thusly:
Quoted 2 lines
On 2014-02-16 22:59 +0100, Samuel Martin spake thusly:
Quoted 1 line
This package provides BLAS and LAPACK libraries.
[--SNIP--]
Quoted 16 lines
Quoted 6 lines
package/clapack/clapack.mk new file +0
-0package/clapack/clapack.mk line 8
Quoted 8 lines
package/clapack/clapack.mk new file +8
-0@@ -0,0 +1,20 @@ +################################################################################ +# +# clapack +# +################################################################################ + +CLAPACK_VERSION = 3.2.1 +CLAPACK_SOURCE = clapack-$(CLAPACK_VERSION)-CMAKE.tgzWhat the difference between this ^^^^ and clapack-3.2.1.tgz at the same site:
Quoted 1 line
http://www.netlib.org/clapack/clapack-3.2.1.tgz
Sorry, I was not clear. Here's what I meant:
Why don't we use the non-cmake tarball?
If the non-cmake *and* the build-system in there is flexible enough, that would allow us to not carry patches against the cmake build system.
Of course, that eans we have to use generic-package instead, and provide the configure, build and install commands.
But if we can avoid carying patches, I think it can be a good trade-off. At least, I think it is worthwhile investigating.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 5/11 clapack: new package
Yann, all,
Quoted 24 lines · Yann E. MORIN
Samuel, All,
On 2014-03-06 20:30 +0100, Yann E. MORIN spake thusly:
Quoted 2 lines
On 2014-02-16 22:59 +0100, Samuel Martin spake thusly:
Quoted 1 line
This package provides BLAS and LAPACK libraries.
[--SNIP--]
Quoted 16 lines
Quoted 6 lines
package/clapack/clapack.mk new file +0
-0package/clapack/clapack.mk line 8
Quoted 8 lines
package/clapack/clapack.mk new file +8
-0@@ -0,0 +1,20 @@ +################################################################################ +# +# clapack +# +################################################################################ + +CLAPACK_VERSION = 3.2.1 +CLAPACK_SOURCE = clapack-$(CLAPACK_VERSION)-CMAKE.tgzWhat the difference between this ^^^^ and clapack-3.2.1.tgz at the same site:
Quoted 1 line
http://www.netlib.org/clapack/clapack-3.2.1.tgz
Quoted 1 line
Sorry, I was not clear. Here's what I meant:
I got it! ;-)
Quoted 2 lines
Why don't we use the non-cmake tarball?
Because I prefer/know better/am more confident in hacking CMake code than handwritten makefiles.
So, I chose what is easier to me to maintain. Is it a valid argument? ;-)
Quoted 3 lines
If the non-cmake *and* the build-system in there is flexible enough, that would allow us to not carry patches against the cmake build system.
I have to admit I have not even tried (and sorry, I don't really feel like trying it).
Quoted 9 lines
Of course, that eans we have to use generic-package instead, and provide the configure, build and install commands.
But if we can avoid carying patches, I think it can be a good trade-off. At least, I think it is worthwhile investigating.
Regards,
Yann E. MORIN.
Regards,
Signature · 1 line
Samuel
PATCH 5/11 clapack: new package
Samuel, All,
On 2014-03-06 21:16 +0100, Samuel Martin spake thusly:
Quoted 25 lines · Yann E. MORIN
Quoted 24 lines
Samuel, All,
On 2014-03-06 20:30 +0100, Yann E. MORIN spake thusly:
Quoted 2 lines
On 2014-02-16 22:59 +0100, Samuel Martin spake thusly:
Quoted 1 line
This package provides BLAS and LAPACK libraries.
[--SNIP--]
Quoted 17 lines
Quoted 6 lines
package/clapack/clapack.mk new file +0
-0package/clapack/clapack.mk line 8
Quoted 8 lines
package/clapack/clapack.mk new file +8
-0@@ -0,0 +1,20 @@ +################################################################################ +# +# clapack +# +################################################################################ + +CLAPACK_VERSION = 3.2.1 +CLAPACK_SOURCE = clapack-$(CLAPACK_VERSION)-CMAKE.tgzWhat the difference between this ^^^^ and clapack-3.2.1.tgz at the same site:
http://www.netlib.org/clapack/clapack-3.2.1.tgz
Quoted 5 lines
Quoted 1 line
Why don't we use the non-cmake tarball?
Because I prefer/know better/am more confident in hacking CMake code than handwritten makefiles.
So, I chose what is easier to me to maintain. Is it a valid argument? ;-)
Yes, of course! I expected you'd say that. ;-)
Quoted 5 lines
Quoted 2 lines
If the non-cmake *and* the build-system in there is flexible enough, that would allow us to not carry patches against the cmake build system.
I have to admit I have not even tried (and sorry, I don't really feel like trying it).
Yes, sure. I had to ask. ;-)
But if possible, try to push those changes upstream.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 6/11 armadillo: new package
In reply to Samuel MartinArmadillo is a C++ linear algebra library.
--- package/Config.in | 1 + package/armadillo/Config.in | 9 +++++++++ package/armadillo/armadillo.mk | 15 +++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 package/armadillo/Config.in create mode 100644 package/armadillo/armadillo.mk
package/Config.in +1 -0
@@ -723,6 +723,7 @@ source "package/zyre/Config.in" endmenu menu "Other" +source "package/armadillo/Config.in" source "package/apr/Config.in" source "package/apr-util/Config.in" source "package/argp-standalone/Config.in"
package/armadillo/Config.in new file +9 -0
@@ -0,0 +1,9 @@ +config BR2_PACKAGE_ARMADILLO + bool "armadillo" + depends on BR2_INSTALL_LIBSTDCPP + select BR2_PACKAGE_CLAPACK + help + Armadillo: An Open Source C++ Linear Algebra Library for + Fast Prototyping and Computationally Intensive Experiments. + + http://arma.sourceforge.net/
package/armadillo/armadillo.mk new file +15 -0
@@ -0,0 +1,15 @@ +################################################################################ +# +# armadillo +# +################################################################################ + +ARMADILLO_VERSION_MAJOR = 4.000 +ARMADILLO_VERSION = $(ARMADILLO_VERSION_MAJOR).4 +ARMADILLO_SITE = http://downloads.sourceforge.net/project/arma/ +ARMADILLO_DEPENDENCIES = clapack +ARMADILLO_INSTALL_STAGING = YES +ARMADILLO_LICENSE = MPLv2.0 +ARMADILLO_LICENSE_FILES = LICENSE.txt + +$(eval $(cmake-package))
Signature · 1 line
1.8.5.4
PATCH 6/11 armadillo: new package
Hi all,
Quoted 29 lines · Samuel Martin
Armadillo is a C++ linear algebra library.
Signed-off-by Samuel Martin <[email protected]>--- package/Config.in | 1 + package/armadillo/Config.in | 9 +++++++++ package/armadillo/armadillo.mk | 15 +++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 package/armadillo/Config.in create mode 100644 package/armadillo/armadillo.mkpackage/Config.in +1
-0@@ -723,6 +723,7 @@ source "package/zyre/Config.in" endmenu menu "Other" +source "package/armadillo/Config.in" source "package/apr/Config.in" source "package/apr-util/Config.in" source "package/argp-standalone/Config.in"package/armadillo/Config.in new file +0
-0
package/armadillo/Config.in line 9
Quoted 9 lines
package/armadillo/Config.in new file +9
-0@@ -0,0 +1,9 @@ +config BR2_PACKAGE_ARMADILLO + bool "armadillo" + depends on BR2_INSTALL_LIBSTDCPP + select BR2_PACKAGE_CLAPACK + help + Armadillo: An Open Source C++ Linear Algebra Library for + Fast Prototyping and Computationally Intensive Experiments. + + http://arma.sourceforge.net/
I forgot the comment when the toolchain has no C++ support. I'm just waiting for other reviews on the "scientific libraries" series before reposting the patches.
Regards,
Signature · 1 line
Samuel
PATCH 6/11 armadillo: new package
Samuel Martin <[email protected]> schreef:
Quoted 21 lines
Hi all,
Quoted 18 lines · Samuel Martin
Armadillo is a C++ linear algebra library.
Signed-off-by Samuel Martin <[email protected]>--- package/Config.in | 1 + package/armadillo/Config.in | 9 +++++++++ package/armadillo/armadillo.mk | 15 +++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 package/armadillo/Config.in create mode 100644 package/armadillo/armadillo.mkpackage/Config.in +0
-0@@ -723,6 +723,7 @@ source "package/zyre/Config.in" endmenu
Quoted 3 lines
package/Config.in source "package/zyre/Config.in" · line 727
Quoted 3 lines
package/Config.in +1
-0menu "Other" +source "package/armadillo/Config.in" source "package/apr/Config.in"
Alphabetical order is not correct here.
Quoted 2 lines
package/Config.in source "package/zyre/Config.in" · line 729
Quoted 2 lines
package/Config.in +0
-0source "package/apr-util/Config.in" source "package/argp-standalone/Config.in"
Best regards,
Thomas
PATCH 7/11 python-numpy: new package
In reply to Samuel MartinThis patch add NumPy package for python.
Since Fortran support has been deprecated in Buildroot since the 2013.11 release, and because most of the external toolchains do not provide a Fortran compiler, it is necessary to explicity disable Fortran compiler to avoid catching the one from the host system if any.
We also need to fill a site.cfg file to tell NumPy build-system where it should looking for BLAS and LAPACK libraries.
--- package/Config.in | 1 + package/python-numpy/Config.in | 14 ++++++++++++++ package/python-numpy/python-numpy.mk | 31 +++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 package/python-numpy/Config.in create mode 100644 package/python-numpy/python-numpy.mk
package/Config.in +1 -0
@@ -427,6 +427,7 @@ source "package/python-meld3/Config.in" source "package/python-msgpack/Config.in" source "package/python-netifaces/Config.in" source "package/python-nfc/Config.in" +source "package/python-numpy/Config.in" source "package/python-posix-ipc/Config.in" source "package/python-protobuf/Config.in" source "package/python-pyasn/Config.in"
package/python-numpy/Config.in new file +14 -0
@@ -0,0 +1,14 @@ +config BR2_PACKAGE_PYTHON_NUMPY + bool "python-numpy" + help + NumPy is the fundamental package for scientific computing with Python. + + Note that NumPy needs fenv.h fully supported by the C-library. + + http://www.numpy.org/ + +if BR2_PACKAGE_PYTHON_NUMPY +config BR2_PACKAGE_PYTHON_NUMPY_BLAS_LAPACK_SUPPORT + bool "blas/lapack support" + select BR2_PACKAGE_CLAPACK +endif
package/python-numpy/python-numpy.mk new file +31 -0
@@ -0,0 +1,31 @@ +################################################################################ +# +# python-numpy +# +################################################################################ + +PYTHON_NUMPY_VERSION = 1.8.0 +PYTHON_NUMPY_SOURCE = numpy-$(PYTHON_NUMPY_VERSION).tar.gz +PYTHON_NUMPY_SITE = http://downloads.sourceforge.net/numpy +PYTHON_NUMPY_LICENSE = BSD-3c +PYTHON_NUMPY_LICENSE_FILES = LICENSE.txt +PYTHON_NUMPY_SETUP_TYPE = distutils +PYTHON_NUMPY_DEPENDENCIES = \ + $(if BR2_PACKAGE_PYTHON_NUMPY_BLAS_LAPACK_SUPPORT,clapack) + +PYTHON_NUMPY_SITE_CFG_LIBS = \ + $(if $(BR2_PACKAGE_PYTHON_NUMPY_BLAS_LAPACK_SUPPORT),blas lapack) + +PYTHON_NUMPY_BUILD_OPT = --fcompiler=None + +define PYTHON_NUMPY_CONFIGURE_CMDS + -rm -f $(@D)/site.cfg + echo "[DEFAULT]" >> $(@D)/site.cfg + echo "library_dirs = $(STAGING_DIR)/usr/lib" >> $(@D)/site.cfg + echo "include_dirs = $(STAGING_DIR)/usr/include" >> $(@D)/site.cfg + echo "libraries =" >> $(@D)/site.cfg + $(foreach lib,$(PYTHON_NUMPY_SITE_CFG_LIBS),\ + echo " $(lib)" >> $(@D)/site.cfg ;) +endef + +$(eval $(python-package))
Signature · 1 line
1.8.5.4
PATCH 7/11 python-numpy: new package
Dear Samuel Martin,
package/python-numpy/Config.in line 14
Quoted 5 lines · Samuel Martin
package/python-numpy/Config.in new file +5
-0+if BR2_PACKAGE_PYTHON_NUMPY +config BR2_PACKAGE_PYTHON_NUMPY_BLAS_LAPACK_SUPPORT + bool "blas/lapack support" + select BR2_PACKAGE_CLAPACK +endif
Any reason why we don't automatically enable blas/lapack support when available? Also, I'd prefer to have the optional blas/lapack support available as a separate patch from the package addition itself, so that python-numpy can be applied independently from blas/lapack.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 8/11 python-numpy: add install-staging command
In reply to Samuel MartinSome packages may include headers provided by python-numpy package. So, also install it in the sysroot.
--- package/python-numpy/python-numpy.mk | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
package/python-numpy/python-numpy.mk +17 -0
@@ -28,4 +28,21 @@ define PYTHON_NUMPY_CONFIGURE_CMDS echo " $(lib)" >> $(@D)/site.cfg ;) endef +# Some package may include few headers from NumPy, so let's install it in the +# staging area. +PYTHON_NUMPY_INSTALL_STAGING = YES + +# This install staging commands is an adjusted and simplified version of the +# install target commands vampirized from the python-package infrastructure. +# +# Note that the append '--prefix=...' parameter overrides the one set by the +# python-package infrastructure in the PYTHON_NUMPY_INSTALL_OPT variable. +define PYTHON_NUMPY_INSTALL_STAGING_CMDS + (cd $(PYTHON_NUMPY_BUILDDIR)/; \ + $(PYTHON_NUMPY_BASE_ENV) $(PYTHON_NUMPY_ENV) \ + $(HOST_DIR)/usr/bin/python setup.py install \ + $(PYTHON_NUMPY_BASE_INSTALL_OPT) \ + $(PYTHON_NUMPY_INSTALL_OPT) --prefix=$(STAGING_DIR)/usr) +endef + $(eval $(python-package))
Signature · 1 line
1.8.5.4
PATCH 8/11 python-numpy: add install-staging command
Dear Samuel Martin,
Quoted 17 lines · Samuel Martin
Some packages may include headers provided by python-numpy package. So, also install it in the sysroot.
Signed-off-by Samuel Martin <[email protected]>--- package/python-numpy/python-numpy.mk | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)package/python-numpy/python-numpy.mk +1
-0@@ -28,4 +28,21 @@ define PYTHON_NUMPY_CONFIGURE_CMDS echo " $(lib)" >> $(@D)/site.cfg ;) endef +# Some package may include few headers from NumPy, so let's install it in the
package/python-numpy/python-numpy.mk define PYTHON_NUMPY_CONFIGURE_CMDS · line 41
Quoted 10 lines
package/python-numpy/python-numpy.mk +10
-0+# staging area. +PYTHON_NUMPY_INSTALL_STAGING = YES + +# This install staging commands is an adjusted and simplified version of the +# install target commands vampirized from the python-package infrastructure. +# +# Note that the append '--prefix=...' parameter overrides the one set by the +# python-package infrastructure in the PYTHON_NUMPY_INSTALL_OPT variable. +define PYTHON_NUMPY_INSTALL_STAGING_CMDS + (cd $(PYTHON_NUMPY_BUILDDIR)/; \
This can be $(@D), no ?
package/python-numpy/python-numpy.mk define PYTHON_NUMPY_CONFIGURE_CMDS · line 48
Quoted 7 lines
package/python-numpy/python-numpy.mk +6
-0+ $(PYTHON_NUMPY_BASE_ENV) $(PYTHON_NUMPY_ENV) \ + $(HOST_DIR)/usr/bin/python setup.py install \ + $(PYTHON_NUMPY_BASE_INSTALL_OPT) \ + $(PYTHON_NUMPY_INSTALL_OPT) --prefix=$(STAGING_DIR)/usr) +endef + $(eval $(python-package))
Also, any reason for having this separated from the package addition itself?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 9/11 opencv: add python/numpy support
In reply to Samuel Martinopencv_python module needs python-numpy because it uses some numpy headers in this wrapper.
A patch in the OpenCV's build-system is also needed to prevent it from trying to run python for numpy detection. This patch has already been integrated upstream.
--- package/opencv/Config.in | 7 +- ...t-run-python-for-numpy-detection-when-cro.patch | 77 ++++++++++++++++++++++ package/opencv/opencv.mk | 16 ++++- 3 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 package/opencv/opencv-0001-cmake-do-not-run-python-for-numpy-detection-when-cro.patch
package/opencv/Config.in +6 -1
@@ -84,7 +84,12 @@ config BR2_PACKAGE_OPENCV_LIB_PHOTO help Include opencv_photo module into the OpenCV build. -comment "opencv_python module requires numpy which is not yet available." +config BR2_PACKAGE_OPENCV_LIB_PYTHON + bool "python" + depends on BR2_PACKAGE_PYTHON + help + Include opencv_python module into the OpenCV build. + No python example is installed. config BR2_PACKAGE_OPENCV_LIB_STITCHING bool "stitching"
package/opencv/opencv-0001-cmake-do-not-run-python-for-numpy-detection-when-cro.patch new file +77 -0
77 lines not on this page · raw message
package/opencv/opencv.mk +14 -2
@@ -60,7 +60,7 @@ OPENCV_CONF_OPT += \ -DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV_LIB_OBJDETECT),ON,OFF) \ -DBUILD_opencv_ocl=OFF \ -DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF) \ - -DBUILD_opencv_python=OFF \ + -DBUILD_opencv_python=$(if $(BR2_PACKAGE_OPENCV_LIB_PYTHON),ON,OFF) \ -DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV_LIB_STITCHING),ON,OFF) \ -DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV_LIB_SUPERRES),ON,OFF) \ -DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV_LIB_TS),ON,OFF) \
@@ -138,7 +138,6 @@ OPENCV_CONF_OPT += \ -DBUILD_TIFF=OFF \ -DBUILD_ZLIB=OFF \ \ - -DBUILD_NEW_PYTHON_SUPPORT=OFF \ -DINSTALL_C_EXAMPLES=OFF \ -DINSTALL_PYTHON_EXAMPLES=OFF \ -DINSTALL_TO_MANGLED_PATHS=OFF
@@ -226,6 +225,19 @@ OPENCV_CONF_OPT += \ -DWITH_LIBV4L=OFF endif +ifeq ($(BR2_PACKAGE_OPENCV_LIB_PYTHON),y) +OPENCV_CONF_OPT += \ + -DBUILD_NEW_PYTHON_SUPPORT=ON \ + -DPYTHON_EXECUTABLE=$(HOST_DIR)/usr/bin/python2 \ + -DPYTHON_INCLUDE_DIR=$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) \ + -DPYTHON_LIBRARY=$(STAGING_DIR)/usr/lib/libpython$(PYTHON_VERSION_MAJOR).so \ + -DPYTHON_NUMPY_INCLUDE_DIR=$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/numpy/core/include \ + -DPYTHON_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION) +OPENCV_DEPENDENCIES += python python-numpy +else +OPENCV_CONF_OPT += -DBUILD_NEW_PYTHON_SUPPORT=OFF +endif + # Installation hooks: define OPENCV_CLEAN_INSTALL_DOC $(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/doc
Signature · 1 line
1.8.5.4
PATCH 9/11 opencv: add python/numpy support
Samuel, All,
On 2014-02-16 23:00 +0100, Samuel Martin spake thusly:
Quoted 6 lines
opencv_pythonmodule needs python-numpy because it uses some numpy headers in this wrapper.A patch in the OpenCV's build-system is also needed to prevent it from trying to run python for numpy detection. This patch has already been integrated upstream.
[--SNIP--]
package/opencv/opencv-0001-cmake-do-not-run-python-for-numpy-detection-when-cro.patch line 5
Quoted 11 lines
package/opencv/opencv-0001-cmake-do-not-run-python-for-numpy-detection-when-cro.patch new file +5
-0@@ -0,0 +1,77 @@ +From 2ab6c54a6c466c3cb577cacbbace659fe55c2a4f Mon Sep 17 00:00:00 2001 +From: Samuel Martin <[email protected]> +Date: Fri, 10 Jan 2014 23:39:59 +0100 +Subject: [PATCH] cmake: do not run python for numpy detection when + cross-compiling
It would be nice if you were using exactly the same patch as upstream:
6cb90c0e976ff24af85167e71d88c9d9b2ed06c7 fix cross-compilation issue with Numpy
Yours is slightly different.
Using the same patch as upstream would help spot it in a later bump.
package/opencv/opencv.mk
Quoted 4 lines
package/opencv/opencv.mk +0
-0
[--SNIP--]
package/opencv/opencv.mk OPENCV_CONF_OPT += \ · line 231
Quoted 8 lines
package/opencv/opencv.mk +4
-0@@ -226,6 +225,19 @@ OPENCV_CONF_OPT += \ -DWITH_LIBV4L=OFF endif +ifeq ($(BR2_PACKAGE_OPENCV_LIB_PYTHON),y) +OPENCV_CONF_OPT += \ + -DBUILD_NEW_PYTHON_SUPPORT=ON \ + -DPYTHON_EXECUTABLE=$(HOST_DIR)/usr/bin/python2 \
I hope this is only needed at build time, not at runtime?
Also, you specifically use 'python2', above. what about Python 2 vs. Python 3 ? Care to shed some light on this, to the non-pythonist I am? ;-)
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 10/11 opencv: define modules inter-dependencies
In reply to Samuel MartinOpenCV allows to enable/disable the selection of modules (a.k.a. opencv libraries). These modules depend one from the others; these dependencies are already handled by the build-system (CMake).
However, the way we handled them in Buildroot was not really clean. For each opencv module, there is a kconfig option, but we forced the corresponding cmake config option without checking for module dependencies.
This patch replicates the modules' dependency relations in the Config.in, so that the selection of the user will actually be built.
--- package/opencv/Config.in | 75 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 60 insertions(+), 15 deletions(-)
package/opencv/Config.in +60 -15
@@ -8,6 +8,8 @@ menuconfig BR2_PACKAGE_OPENCV OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. + Note that the opencv_core module is automatically enabled. + http://opencv.org/ if BR2_PACKAGE_OPENCV
@@ -16,109 +18,152 @@ comment "OpenCV modules" config BR2_PACKAGE_OPENCV_LIB_CALIB3D bool "calib3d" - default y + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D help Include opencv_calib3d module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_CONTRIB bool "contrib" - default y + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_ML + select BR2_PACKAGE_OPENCV_LIB_OBJDETECT + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_contrib module into the OpenCV build. +# opencv_core module is automatically enabled when OpenCV package is selected + config BR2_PACKAGE_OPENCV_LIB_FEATURES2D bool "features2d" - default y + select BR2_PACKAGE_OPENCV_LIB_FLANN + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_features2d module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_FLANN bool "flann" - default y + # opencv_core dependency is already enabled help Include opencv_flann module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_GPU bool "gpu" + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_LEGACY + select BR2_PACKAGE_OPENCV_LIB_OBJDETECT + select BR2_PACKAGE_OPENCV_LIB_PHOTO + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_gpu module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_HIGHGUI bool "highgui" - default y + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_highgui module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_IMGPROC bool "imgproc" - default y + # opencv_core dependency is already enabled help Include opencv_imgproc module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_LEGACY bool "legacy" - default y + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_ML + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_legacy module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_ML bool "ml (machine learning)" - default y + # opencv_core dependency is already enabled help Include opencv_ml module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_NONFREE bool "nonfree" + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_nonfree module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_OBJDETECT bool "objdetect" - default y + # opencv_core dependency is already enabled + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_objdetect module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_PHOTO bool "photo" - default y + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_photo module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_PYTHON bool "python" depends on BR2_PACKAGE_PYTHON + # opencv_core dependency is already enabled + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_CONTRIB + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_FLANN + select BR2_PACKAGE_OPENCV_LIB_HIGHGUI + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_LEGACY + select BR2_PACKAGE_OPENCV_LIB_ML + select BR2_PACKAGE_OPENCV_LIB_OBJDETECT + select BR2_PACKAGE_OPENCV_LIB_PHOTO + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_python module into the OpenCV build. No python example is installed. config BR2_PACKAGE_OPENCV_LIB_STITCHING bool "stitching" - default y + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_OBJDETECT help Include opencv_stitching module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_SUPERRES bool "superres" - default y + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_superres "super resolution" - module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_TS bool "ts (touchscreen)" - default y + # opencv_core dependency is already enabled + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D help Include opencv_ts module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_VIDEO bool "video" - default y + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_video module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB bool "videostab" - default y + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_HIGHGUI + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_PHOTO + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_videostab module into the OpenCV build.
Signature · 1 line
1.8.5.4
PATCH 11/11 vlc: add opencv support
In reply to Samuel Martinopencv support for video filter in vlc requires a couple of opencv features to be enabled.
--- package/vlc/vlc.mk | 7 +++++++ 1 file changed, 7 insertions(+)
package/vlc/vlc.mk +7 -0
@@ -108,6 +108,13 @@ else VLC_CONF_OPT += --disable-glx endif +ifeq ($(BR2_PACKAGE_OPENCV_LIB_LEGACY)$(BR2_PACKAGE_OPENCV_LIB_OBJDETECT),yy) +VCL_CONF_OPT += --with-opencv +VLC_DEPENDENCIES += opencv +else +VLC_CONF_OPT += --without-opencv +endif + ifeq ($(BR2_PACKAGE_OPUS),y) VLC_CONF_OPT += --enable-opus VLC_DEPENDENCIES += opus
Signature · 1 line
1.8.5.4