Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v5 0/5] OpenCV update and CPU fetures
@ 2012-07-16 21:37 Samuel Martin
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Samuel Martin @ 2012-07-16 21:37 UTC (permalink / raw)
  To: buildroot

This patch series add symbols for some of the features of the x86/x86_64
architectures.

These new symbols are used in the opencv.mk file, as well as in some other
packages.


Changelog:

v5:
- remove unused CPU features symbols.
- opencv: bump to version 2.4.2

v4:
- remove CPU features symbols for PowerPC
- opencv: fix the configure option for PowerPC and comment it.

v3:
- rename x86/x86_64 cpu feature symbols: BR2_CPU_HAS_* -> BR2_X86_CPU_HAS_*
- add CPU features symbols for PowerPC
- opencv: bump to version 2.4.1
- fix/cleanup menuconfig
- update opencv configure options

v2:
- add CPU features symbols for x86 and x86_64
- use those symbols in the opencv, sdl_gfx and sdl_sound packages
- opencv: add missing zlib dependency

v1:
- opencv: bump to version 2.4.0

Samuel Martin (5):
  target: add symbols for i386/x86_64 cpu features
  libevas: refactor *_CONF_OPT assignment with cpu-feature options
  sdl_gfx: refactor *_CONF_OPT assignment with cpu-feature options
  sdl_sound: refactor *_CONF_OPT assignment with cpu-feature options
  opencv: bump to version 2.4.2

 package/efl/libevas/libevas.mk                     |  24 ++--
 package/opencv/Config.in                           | 155 ++++++++++++++++++---
 ...pencv-uclibc-optional-long-double-support.patch |  40 ------
 package/opencv/opencv.mk                           | 144 +++++++++++++------
 package/sdl_gfx/sdl_gfx.mk                         |  10 +-
 package/sdl_sound/sdl_sound.mk                     |   3 +-
 target/Config.in.arch                              | 101 +++++++++++++-
 7 files changed, 353 insertions(+), 124 deletions(-)
 delete mode 100644 package/opencv/opencv-uclibc-optional-long-double-support.patch

--
1.7.11.2

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features
  2012-07-16 21:37 [Buildroot] [PATCH v5 0/5] OpenCV update and CPU fetures Samuel Martin
@ 2012-07-16 21:37 ` Samuel Martin
  2012-07-17  7:33   ` Thomas Petazzoni
  2012-07-17  9:17   ` Thomas Petazzoni
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 2/5] libevas: refactor *_CONF_OPT assignment with cpu-feature options Samuel Martin
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 11+ messages in thread
From: Samuel Martin @ 2012-07-16 21:37 UTC (permalink / raw)
  To: buildroot

Selecting the target subarchitecture variant automatically selects the
appropriated set of features.

Signed-off-by: Samuel Martin <s.martin49@gmail.com>

---

Notes:
- Only CPU features used by some packages have been added.
- Subarchitecture options select their features accordingly gcc manual.
- The dependencies are explained with a list of "select" for each
subarchitecture, because, IMO, this makes the code clearer and easy to maintain
instaed of having a long list of symbols in the "depends on" statement for each
CPU feature.
- MMX support is one of these CPU features. Some variants of the Geode
subarchitecture have MMX, others do not. To keep the same behavior as before,
which is IMO, the safe way, selecting Geode as architecture variant does not
enable MMX support.


diff --git a/target/Config.in.arch b/target/Config.in.arch
index bad0f4c..d94bed5 100644
--- a/target/Config.in.arch
+++ b/target/Config.in.arch
@@ -322,6 +322,30 @@ endchoice
 # gcc builds libstdc++ differently depending on the
 # host tuplet given to it, so let people choose
 #
+
+# i386/x86_64 cpu features
+config BR2_X86_CPU_HAS_MMX
+	depends on BR2_i386 || BR2_x86_64
+	bool
+config BR2_X86_CPU_HAS_SSE
+	depends on BR2_i386 || BR2_x86_64
+	bool
+config BR2_X86_CPU_HAS_SSE2
+	depends on BR2_i386 || BR2_x86_64
+	bool
+config BR2_X86_CPU_HAS_SSE3
+	depends on BR2_i386 || BR2_x86_64
+	bool
+config BR2_X86_CPU_HAS_SSSE3
+	depends on BR2_i386 || BR2_x86_64
+	bool
+config BR2_X86_CPU_HAS_SSE41
+	depends on BR2_i386 || BR2_x86_64
+	bool
+config BR2_X86_CPU_HAS_SSE42
+	depends on BR2_i386 || BR2_x86_64
+	bool
+
 choice
 	prompt "Target Architecture Variant"
 	depends on BR2_i386
@@ -341,46 +365,95 @@ config BR2_x86_pentiumpro
 	bool "pentium pro"
 config BR2_x86_pentium_mmx
 	bool "pentium MMX"
+	select BR2_X86_CPU_HAS_MMX
 config BR2_x86_pentium_m
 	bool "pentium mobile"
 config BR2_x86_pentium2
 	bool "pentium2"
+	select BR2_X86_CPU_HAS_MMX
 config BR2_x86_pentium3
 	bool "pentium3"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
 config BR2_x86_pentium4
 	bool "pentium4"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
 config BR2_x86_prescott
 	bool "prescott"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
 config BR2_x86_nocona
 	bool "nocona"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
 config BR2_x86_core2
 	bool "core2"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
+	select BR2_X86_CPU_HAS_SSSE3
 config BR2_x86_atom
 	bool "atom"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
+	select BR2_X86_CPU_HAS_SSSE3
 config BR2_x86_k6
 	bool "k6"
+	select BR2_X86_CPU_HAS_MMX
 config BR2_x86_k6_2
 	bool "k6-2"
+	select BR2_X86_CPU_HAS_MMX
 config BR2_x86_athlon
 	bool "athlon"
+	select BR2_X86_CPU_HAS_MMX
 config BR2_x86_athlon_4
 	bool "athlon-4"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
 config BR2_x86_opteron
 	bool "opteron"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
 config BR2_x86_opteron_sse3
 	bool "opteron w/ SSE3"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
 config BR2_x86_barcelona
 	bool "barcelona"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
 config BR2_x86_geode
 	bool "geode"
+	# Don't include MMX support because there several variant of geode
+	# processor, some with MMX support, some without.
+	# See: http://en.wikipedia.org/wiki/Geode_%28processor%29
 config BR2_x86_c3
 	bool "Via/Cyrix C3 (Samuel/Ezra cores)"
+	select BR2_X86_CPU_HAS_MMX
 config BR2_x86_c32
 	bool "Via C3-2 (Nehemiah cores)"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
 config BR2_x86_winchip_c6
 	bool "IDT Winchip C6"
+	select BR2_X86_CPU_HAS_MMX
 config BR2_x86_winchip2
 	bool "IDT Winchip 2"
+	select BR2_X86_CPU_HAS_MMX
 endchoice
 
 choice
@@ -394,16 +467,42 @@ config BR2_x86_64_generic
 	bool "generic"
 config BR2_x86_64_barcelona
 	bool "barcelona"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_3DNOW
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
 config BR2_x86_64_opteron_sse3
 	bool "opteron w/ sse3"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
 config BR2_x86_64_opteron
 	bool "opteron"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
 config BR2_x86_64_nocona
 	bool "nocona"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
 config BR2_x86_64_core2
 	bool "core2"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
+	select BR2_X86_CPU_HAS_SSSE3
 config BR2_x86_64_atom
 	bool "atom"
+	select BR2_X86_CPU_HAS_MMX
+	select BR2_X86_CPU_HAS_SSE
+	select BR2_X86_CPU_HAS_SSE2
+	select BR2_X86_CPU_HAS_SSE3
+	select BR2_X86_CPU_HAS_SSSE3
 endchoice
 
 choice
-- 
1.7.11.2

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v5 2/5] libevas: refactor *_CONF_OPT assignment with cpu-feature options
  2012-07-16 21:37 [Buildroot] [PATCH v5 0/5] OpenCV update and CPU fetures Samuel Martin
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin
@ 2012-07-16 21:37 ` Samuel Martin
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 3/5] sdl_gfx: " Samuel Martin
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Samuel Martin @ 2012-07-16 21:37 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Samuel Martin <s.martin49@gmail.com>

diff --git a/package/efl/libevas/libevas.mk b/package/efl/libevas/libevas.mk
index e716cea..c556942 100644
--- a/package/efl/libevas/libevas.mk
+++ b/package/efl/libevas/libevas.mk
@@ -115,23 +115,23 @@ LIBEVAS_CONF_OPT += --enable-gl-flavor-gles --enable-gles-variety-s3c6410
 endif
 
 # code options
-ifeq ($(BR2_i386)$(BR2_x86_64),y)
-# defaults
-LIBEVAS_CONF_OPT += --disable-cpu-mmx --disable-cpu-sse --disable-cpu-sse3
-
-# enable if cpu variant has mmx support
-ifneq ($(BR2_x86_i386)$(BR2_x86_i486)$(BR2_x86_i586)$(BR2_x86_i686)$(BR2_x86_pentiumpro)$(BR2_x86_geode),y)
+ifeq ($(BR2_X86_CPU_HAS_MMX),y)
 LIBEVAS_CONF_OPT += --enable-cpu-mmx
+else
+LIBEVAS_CONF_OPT += --disable-cpu-mmx
+endif
 
-ifneq ($(BR2_x86_pentium_mmx)$(BR2_x86_pentium2)$(BR2_x86_k6)$(BR2_x86_k6_2)$(BR2_x86_athlon)$(BR2_x86_c3)$(BR2_x86_winchip_c6)$(BR2_x86_winchip2),y)
+ifeq ($(BR2_X86_CPU_HAS_SSE),y)
 LIBEVAS_CONF_OPT += --enable-cpu-sse
+else
+LIBEVAS_CONF_OPT += --disable-cpu-sse
+endif
 
-ifneq ($(BR2_x86_pentium3)$(BR2_x86_pentium4)$(BR2_x86_prescott)$(BR2_x86_athlon_4)$(BR2_x86_opteron)$(BR2_x86_c32)$(BR2_x86_64_opteron),y)
+ifeq ($(BR2_X86_CPU_HAS_SSE3),y)
 LIBEVAS_CONF_OPT += --enable-cpu-sse3
-endif # sse3
-endif # sse
-endif # mmx
-endif # x86
+else
+LIBEVAS_CONF_OPT += --disable-cpu-sse3
+endif
 
 ifeq ($(BR2_powerpc_7400)$(BR2_powerpc_7450)$(BR2_powerpc_970),y)
 LIBEVAS_CONF_OPT += --enable-cpu-altivec
-- 
1.7.11.2

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v5 3/5] sdl_gfx: refactor *_CONF_OPT assignment with cpu-feature options
  2012-07-16 21:37 [Buildroot] [PATCH v5 0/5] OpenCV update and CPU fetures Samuel Martin
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 2/5] libevas: refactor *_CONF_OPT assignment with cpu-feature options Samuel Martin
@ 2012-07-16 21:37 ` Samuel Martin
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 4/5] sdl_sound: " Samuel Martin
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 5/5] opencv: bump to version 2.4.2 Samuel Martin
  4 siblings, 0 replies; 11+ messages in thread
From: Samuel Martin @ 2012-07-16 21:37 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Samuel Martin <s.martin49@gmail.com>

diff --git a/package/sdl_gfx/sdl_gfx.mk b/package/sdl_gfx/sdl_gfx.mk
index 5503bbd..343c7a1 100644
--- a/package/sdl_gfx/sdl_gfx.mk
+++ b/package/sdl_gfx/sdl_gfx.mk
@@ -11,13 +11,7 @@ SDL_GFX_DEPENDENCIES = sdl
 SDL_GFX_CONF_OPT = \
 	--with-sdl-prefix=$(STAGING_DIR)/usr \
 	--disable-sdltest \
-	--enable-static
-
-# enable mmx for newer x86's
-ifeq ($(BR2_i386)$(BR2_x86_i386)$(BR2_x86_i486)$(BR2_x86_i586)$(BR2_x86_pentiumpro)$(BR2_x86_geode),y)
-SDL_GFX_CONF_OPT += --enable-mmx
-else
-SDL_GFX_CONF_OPT += --disable-mmx
-endif
+	--enable-static \
+	$(if $(BR2_X86_CPU_HAS_MMX),--enable-mmx,--disable-mmx)
 
 $(eval $(call AUTOTARGETS))
-- 
1.7.11.2

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v5 4/5] sdl_sound: refactor *_CONF_OPT assignment with cpu-feature options
  2012-07-16 21:37 [Buildroot] [PATCH v5 0/5] OpenCV update and CPU fetures Samuel Martin
                   ` (2 preceding siblings ...)
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 3/5] sdl_gfx: " Samuel Martin
@ 2012-07-16 21:37 ` Samuel Martin
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 5/5] opencv: bump to version 2.4.2 Samuel Martin
  4 siblings, 0 replies; 11+ messages in thread
From: Samuel Martin @ 2012-07-16 21:37 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Samuel Martin <s.martin49@gmail.com>

diff --git a/package/sdl_sound/sdl_sound.mk b/package/sdl_sound/sdl_sound.mk
index a5d9a26..620b3b4 100644
--- a/package/sdl_sound/sdl_sound.mk
+++ b/package/sdl_sound/sdl_sound.mk
@@ -32,8 +32,7 @@ SDL_SOUND_CONF_OPT = \
 	--disable-sdltest \
 	--enable-static
 
-# enable mmx for newer x86's
-ifeq ($(BR2_i386)$(BR2_x86_i386)$(BR2_x86_i486)$(BR2_x86_i586)$(BR2_x86_pentiumpro)$(BR2_x86_geode),y)
+ifeq ($(BR2_X86_CPU_HAS_MMX),y)
 SDL_SOUND_CONF_OPT += --enable-mmx
 else
 SDL_SOUND_CONF_OPT += --disable-mmx
-- 
1.7.11.2

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v5 5/5] opencv: bump to version 2.4.2
  2012-07-16 21:37 [Buildroot] [PATCH v5 0/5] OpenCV update and CPU fetures Samuel Martin
                   ` (3 preceding siblings ...)
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 4/5] sdl_sound: " Samuel Martin
@ 2012-07-16 21:37 ` Samuel Martin
  4 siblings, 0 replies; 11+ messages in thread
From: Samuel Martin @ 2012-07-16 21:37 UTC (permalink / raw)
  To: buildroot

Update Config.in and .mk according to the new features.

Remove the patch handling build with uclibc without long double support,
which seems not necessary anymore.

Signed-off-by: Samuel Martin <s.martin49@gmail.com>

 delete mode 100644 package/opencv/opencv-uclibc-optional-long-double-support.patch

diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index 961282f..3e9ead6 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -1,4 +1,4 @@
-config BR2_PACKAGE_OPENCV
+menuconfig BR2_PACKAGE_OPENCV
 	bool "opencv"
 	select BR2_PACKAGE_ZLIB
 	depends on BR2_INSTALL_LIBSTDCPP
@@ -11,28 +11,124 @@ config BR2_PACKAGE_OPENCV
 
 if BR2_PACKAGE_OPENCV
 
-config BR2_PACKAGE_OPENCV_BUILD_TESTS
-	bool "build tests"
+comment "OpenCV modules"
 
-config BR2_PACKAGE_OPENCV_INSTALL_DATA
-	bool "install extra data"
+config BR2_PACKAGE_OPENCV_LIB_CALIB3D
+	bool "calib3d"
+	default y
 	help
-	  Install various data that is used by cv libraries and/or demo
-	  applications, specifically for haarcascades and lbpcascades
-	  features.
+	  Include opencv_calib3d module into the OpenCV build.
 
-	  For further information: see OpenCV documentation.
+config BR2_PACKAGE_OPENCV_LIB_CONTRIB
+	bool "contrib"
+	default y
+	help
+	  Include opencv_contrib module into the OpenCV build.
 
-comment "Build options"
+config BR2_PACKAGE_OPENCV_LIB_CORE
+	bool "core"
+	default y
+	help
+	  Include opencv_core module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_FEATURES2D
+	bool "features2d"
+	default y
+	help
+	  Include opencv_features2d module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_FLANN
+	bool "flann"
+	default y
+	help
+	  Include opencv_flann module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_GPU
+	bool "gpu"
+	help
+	  Include opencv_gpu module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+	bool "highgui"
+	default y
+	help
+	  Include opencv_highgui module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	bool "imgproc"
+	default y
+	help
+	  Include opencv_imgproc module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_LEGACY
+	bool "legacy"
+	default y
+	help
+	  Include opencv_legacy module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_ML
+	bool "ml (machine learning)"
+	default y
+	help
+	  Include opencv_ml module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_NONFREE
+	bool "nonfree"
+	help
+	  Include opencv_nonfree module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_OBJDETECT
+	bool "objdetect"
+	default y
+	help
+	  Include opencv_objdetect module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_PHOTO
+	bool "photo"
+	default y
+	help
+	  Include opencv_photo module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_WITH_PYTHON
-	bool "python support"
-	depends on BR2_PACKAGE_PYTHON
+comment "opencv_python module requires numpy which is not yet available."
+
+config BR2_PACKAGE_OPENCV_LIB_STITCHING
+	bool "stitching"
+	default y
+	help
+	  Include opencv_stitching module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_TS
+	bool "ts (touchscreen)"
+	default y
+	help
+	  Include opencv_ts module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_VIDEO
+	bool "video"
+	default y
+	help
+	  Include opencv_video module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB
+	bool "videostab"
+	default y
+	help
+	  Include opencv_videostab module into the OpenCV build.
+
+comment "Test sets"
+config BR2_PACKAGE_OPENCV_BUILD_TESTS
+	bool "build tests"
+
+config BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS
+	bool "build performance tests"
+
+comment "3rd party support"
 
 config BR2_PACKAGE_OPENCV_WITH_FFMPEG
 	bool "ffmpeg support"
 	depends on BR2_LARGEFILE
 	depends on BR2_INET_IPV6
+	select BR2_PACKAGE_BZIP2
 	select BR2_PACKAGE_FFMPEG
 	select BR2_PACKAGE_FFMPEG_SWSCALE
 	help
@@ -43,18 +139,17 @@ comment "ffmpeg support requires a toolchain with LARGEFILE and IPV6 support"
 
 config BR2_PACKAGE_OPENCV_WITH_GSTREAMER
 	bool "gstreamer support"
+	depends on BR2_USE_WCHAR
 	select BR2_PACKAGE_GSTREAMER
 	select BR2_PACKAGE_GST_PLUGINS_BASE
 	select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP
 
 config BR2_PACKAGE_OPENCV_WITH_GTK
 	bool "gtk support"
-	depends on BR2_PACKAGE_LIBGTK2
-
-config BR2_PACKAGE_OPENCV_WITH_QT
-	bool "qt backend support"
-	depends on BR2_PACKAGE_QT
-	default y
+	depends on BR2_PACKAGE_XORG7||BR2_PACKAGE_DIRECTFB
+	depends on BR2_USE_WCHAR
+	depends on BR2_INSTALL_LIBSTDCPP
+	select BR2_PACKAGE_LIBGTK2
 
 config BR2_PACKAGE_OPENCV_WITH_JPEG
 	bool "jpeg support"
@@ -68,6 +163,15 @@ config BR2_PACKAGE_OPENCV_WITH_PNG
 	help
 	  Use shared libpng from the target system.
 
+config BR2_PACKAGE_OPENCV_WITH_QT
+	bool "qt backend support"
+	depends on BR2_INSTALL_LIBSTDCPP
+	select BR2_PACKAGE_QT
+	select BR2_PACKAGE_QT_STL
+	default y
+	help
+	  Use Qt with STL support
+
 config BR2_PACKAGE_OPENCV_WITH_TIFF
 	bool "tiff support"
 	select BR2_PACKAGE_TIFF
@@ -84,7 +188,18 @@ config BR2_PACKAGE_OPENCV_WITH_V4L
 comment "v4l support requires a toolchain with LARGEFILE support"
 	depends on !BR2_LARGEFILE
 
+comment "Install options"
+
+config BR2_PACKAGE_OPENCV_INSTALL_DATA
+	bool "install extra data"
+	help
+	  Install various data that is used by cv libraries and/or demo
+	  applications, specifically for haarcascades and lbpcascades
+	  features.
+
+	  For further information: see OpenCV documentation.
+
 endif # BR2_PACKAGE_OPENCV
 
 comment "opencv requires a toolchain with C++ and WCHAR support"
-	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR
+	depends on !(BR2_INSTALL_LIBSTDCPP  && BR2_USE_WCHAR)
diff --git a/package/opencv/opencv-uclibc-optional-long-double-support.patch b/package/opencv/opencv-uclibc-optional-long-double-support.patch
deleted file mode 100644
index b319849..0000000
--- a/package/opencv/opencv-uclibc-optional-long-double-support.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Upstream: https://code.ros.org/trac/opencv/ticket/1515
-
-[PATCH] Fix compile issue in flann module on uClibc without long double support
-
-uClibc configured without UCLIBC_HAS_LONG_DOUBLE_MATH (because of user
-choice or simply that the arch doesn't provide long doubles) doesn't
-provide fabsl(), breaking the build in the flann module.
-
-Work around it by not providing the long double template specialization.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- modules/flann/include/opencv2/flann/dist.h |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-Index: opencv-2.3.1a/modules/flann/include/opencv2/flann/dist.h
-===================================================================
---- opencv-2.3.1a.orig/modules/flann/include/opencv2/flann/dist.h
-+++ opencv-2.3.1a/modules/flann/include/opencv2/flann/dist.h
-@@ -40,6 +40,7 @@
- #else
- #include <stdint.h>
- #endif
-+#include <features.h>
- 
- #include "defines.h"
- 
-@@ -59,9 +60,11 @@
- template<>
- inline double abs<double>(double x) { return fabs(x); }
- 
-+/* uClibc configured without long double math doesn't provide fabsl */
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LONG_DOUBLE_MATH__))
- template<>
- inline long double abs<long double>(long double x) { return fabsl(x); }
--
-+#endif
- 
- template<typename T>
- struct Accumulator { typedef T Type; };
diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk
index ec94715..10ed5bd 100644
--- a/package/opencv/opencv.mk
+++ b/package/opencv/opencv.mk
@@ -3,50 +3,112 @@
 # OpenCV (Open Source Computer Vision)
 #
 #############################################################
-OPENCV_VERSION = 2.3.1a
-OPENCV_SITE    = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.3.1
+OPENCV_VERSION = 2.4.2
+OPENCV_SITE    = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/project/opencvlibrary/opencv-unix/$(OPENCV_VERSION)
 OPENCV_SOURCE  = OpenCV-$(OPENCV_VERSION).tar.bz2
 OPENCV_INSTALL_STAGING = YES
 
-OPENCV_CONF_OPT = \
-	-DCMAKE_BUILD_TYPE=$(if $(BR2_ENABLE_DEBUG),Debug,Release) \
-	-DBUILD_DOCS=$(if $(BR2_HAVE_DOCUMENTATION),ON,OFF) \
-	-DBUILD_EXAMPLES=OFF \
-	-DBUILD_PACKAGE=OFF \
+OPENCV_CONF_OPT += \
+	-DCMAKE_BUILD_TYPE=$(if $(BR2_ENABLE_DEBUG),Debug,Release)   \
+	-DBUILD_SHARED_LIBS=$(if $(BR2_PREFER_STATIC_LIB),OFF,ON)    \
+	-DBUILD_WITH_STATIC_CRT=OFF                                  \
+	-DBUILD_DOCS=$(if $(BR2_HAVE_DOCUMENTATION),ON,OFF)          \
+	-DBUILD_EXAMPLES=OFF                                         \
+	-DBUILD_PACKAGE=OFF                                          \
 	-DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV_BUILD_TESTS),ON,OFF) \
-	-DBUILD_SHARED_LIBS=$(if $(BR2_PREFER_STATIC_LIB),OFF,ON) \
-	-DINSTALL_C_EXAMPLES=OFF \
-	-DINSTALL_PYTHON_EXAMPLES=OFF \
-	-DOPENCV_BUILD_3RDPARTY_LIBS=OFF \
-	-DENABLE_PROFILING=OFF \
-	-DCMAKE_SKIP_RPATH=OFF \
-	-DUSE_FAST_MATH=ON \
-	-DUSE_OMIT_FRAME_POINTER=ON \
-	-DUSE_PRECOMPILED_HEADERS=OFF \
-	-DWITH_1394=OFF \
-	-DWITH_CUDA=OFF \
-	-DWITH_EIGEN=OFF \
-	-DWITH_IPP=OFF \
-	-DWITH_JASPER=OFF \
-	-DWITH_OPENEXR=OFF \
-	-DWITH_OPENNI=OFF \
-	-DWITH_PVAPI=OFF \
-	-DWITH_TBB=OFF \
-	-DWITH_UNICAP=OFF \
+	-DBUILD_PERF_TESTS=$(if $(BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS),ON,OFF) \
+	-DBUILD_WITH_DEBUG_INFO=OFF             \
+	-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \
+	-DCMAKE_SKIP_RPATH=OFF                  \
+	-DCMAKE_USE_RELATIVE_PATHS=OFF          \
+	-DENABLE_FAST_MATH=ON                   \
+	-DENABLE_NOISY_WARNINGS=OFF             \
+	-DENABLE_OMIT_FRAME_POINTER=ON          \
+	-DENABLE_PRECOMPILED_HEADERS=OFF        \
+	-DENABLE_PROFILING=OFF                  \
+	-DENABLE_SOLUTION_FOLDERS=OFF           \
+	-DOPENCV_CAN_BREAK_BINARY_COMPATIBILITY=ON
+
+# OpenCV module selection
+OPENCV_CONF_OPT += \
+	-DBUILD_opencv_androidcamera=OFF                                        \
+	-DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV_LIB_CALIB3D),ON,OFF)   \
+	-DBUILD_opencv_contrib=$(if $(BR2_PACKAGE_OPENCV_LIB_CONTRIB),ON,OFF)   \
+	-DBUILD_opencv_core=$(if $(BR2_PACKAGE_OPENCV_LIB_CORE),ON,OFF)         \
+	-DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV_LIB_FEATURES2D),ON,OFF) \
+	-DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV_LIB_FLANN),ON,OFF)       \
+	-DBUILD_opencv_gpu=$(if $(BR2_PACKAGE_OPENCV_LIB_GPU),ON,OFF)           \
+	-DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV_LIB_HIGHGUI),ON,OFF)   \
+	-DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGPROC),ON,OFF)   \
+	-DBUILD_opencv_java=OFF                                                 \
+	-DBUILD_opencv_legacy=$(if $(BR2_PACKAGE_OPENCV_LIB_LEGACY),ON,OFF)     \
+	-DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV_LIB_ML),ON,OFF)             \
+	-DBUILD_opencv_nonfree=$(if $(BR2_PACKAGE_OPENCV_LIB_NONFREE),ON,OFF)   \
+	-DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV_LIB_OBJDETECT),ON,OFF) \
+	-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF)       \
+	-DBUILD_opencv_python=OFF                                               \
+	-DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV_LIB_STITCHING),ON,OFF) \
+	-DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV_LIB_TS),ON,OFF)             \
+	-DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEO),ON,OFF)       \
+	-DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB),ON,OFF) \
+	-DBUILD_opencv_world=OFF
+
+# Hardware support options.
+#
+# * PowerPC support is turned off since its only effect is altering CFLAGS,
+#   adding '-mcpu=G3 -mtune=G5' to them, which is already handled by Buildroot.
+OPENCV_CONF_OPT += \
+	-DENABLE_POWERPC=OFF \
+	-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF)     \
+	-DENABLE_SSE2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF)   \
+	-DENABLE_SSE3=$(if $(BR2_X86_CPU_HAS_SSE3),ON,OFF)   \
+	-DENABLE_SSE41=$(if $(BR2_X86_CPU_HAS_SSE41),ON,OFF) \
+	-DENABLE_SSE42=$(if $(BR2_X86_CPU_HAS_SSE42),ON,OFF) \
+	-DENABLE_SSSE3=$(if $(BR2_X86_CPU_HAS_SSSE3),ON,OFF)
+
+# Software/3rd-party support options.
+OPENCV_CONF_OPT += \
+	-DBUILD_JASPER=OFF \
+	-DBUILD_JPEG=OFF   \
+	-DBUILD_PNG=OFF	   \
+	-DBUILD_TIFF=OFF   \
+	-DBUILD_ZLIB=OFF   \
+	-DBUILD_ANDROID_CAMERA_WRAPPER=OFF \
+	-DBUILD_ANDROID_EXAMPLES=OFF	   \
+	-DBUILD_FAT_JAVA_LIB=OFF           \
+	-DBUILD_JAVA_SUPPORT=OFF	   \
+	-DBUILD_NEW_PYTHON_SUPPORT=OFF \
+	-DINSTALL_ANDROID_EXAMPLES=OFF \
+	-DINSTALL_C_EXAMPLES=OFF       \
+	-DINSTALL_PYTHON_EXAMPLES=OFF  \
+	-DINSTALL_TO_MANGLED_PATHS=OFF \
+	-DWITH_1394=OFF           \
+	-DWITH_ANDROID_CAMERA=OFF \
+	-DWITH_AVFOUNDATION=OFF	  \
+	-DWITH_CARBON=OFF         \
+	-DWITH_CUBLAS=OFF         \
+	-DWITH_CUDA=OFF           \
+	-DWITH_CUFFT=OFF          \
+	-DWITH_EIGEN=OFF          \
+	-DWITH_IMAGEIO=OFF        \
+	-DWITH_IPP=OFF            \
+	-DWITH_JASPER=OFF         \
+	-DWITH_OPENEXR=OFF        \
+	-DWITH_OPENGL=OFF         \
+	-DWITH_OPENNI=OFF         \
+	-DWITH_PVAPI=OFF          \
+	-DWITH_QUICKTIME=OFF      \
+	-DWITH_TBB=OFF            \
+	-DWITH_UNICAP=OFF         \
+	-DWITH_VIDEOINPUT=OFF     \
+	-DWITH_XIMEA=OFF          \
 	-DWITH_XINE=OFF
 
 OPENCV_DEPENDENCIES += zlib
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_PYTHON),y)
-OPENCV_CONF_OPT += -DBUILD_NEW_PYTHON_SUPPORT=ON
-OPENCV_DEPENDENCIES += python
-else
-OPENCV_CONF_OPT += -DBUILD_NEW_PYTHON_SUPPORT=OFF
-endif
-
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_FFMPEG),y)
 OPENCV_CONF_OPT += -DWITH_FFMPEG=ON
-OPENCV_DEPENDENCIES += ffmpeg
+OPENCV_DEPENDENCIES += ffmpeg bzip2
 else
 OPENCV_CONF_OPT += -DWITH_FFMPEG=OFF
 endif
@@ -80,7 +142,7 @@ OPENCV_CONF_OPT += -DWITH_PNG=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT),y)
-OPENCV_CONF_OPT += -DWITH_QT=ON -DWITH_QT_OPENGL=OFF
+OPENCV_CONF_OPT += -DWITH_QT=ON
 OPENCV_DEPENDENCIES += qt
 else
 OPENCV_CONF_OPT += -DWITH_QT=OFF
@@ -100,25 +162,25 @@ else
 OPENCV_CONF_OPT += -DWITH_V4L=OFF
 endif
 
+# Installation hooks:
 ifneq ($(BR2_HAVE_DOCUMENTATION),y)
 define OPENCV_CLEAN_INSTALL_DOC
-	$(RM) -fr $(TARGET_DIR)/usr/share/opencv/doc
+	$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/doc
 endef
-
 OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_DOC
 endif
 
-ifneq ($(BR2_PACKAGE_CMAKE),y)
+ifneq ($(BR2_HAVE_DEVFILES),y)
 define OPENCV_CLEAN_INSTALL_CMAKE
-	$(RM) -f $(TARGET_DIR)/usr/share/opencv/OpenCVConfig.cmake
+	$(RM) -f $(TARGET_DIR)/usr/share/OpenCV/OpenCVConfig*.cmake
 endef
 OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_CMAKE
 endif
 
 ifneq ($(BR2_PACKAGE_OPENCV_INSTALL_DATA),y)
 define OPENCV_CLEAN_INSTALL_DATA
-	$(RM) -fr $(TARGET_DIR)/usr/share/opencv/haarcascades \
-		$(TARGET_DIR)/usr/share/opencv/lbpcascades
+	$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/haarcascades \
+		$(TARGET_DIR)/usr/share/OpenCV/lbpcascades
 endef
 OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_DATA
 endif
-- 
1.7.11.2

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin
@ 2012-07-17  7:33   ` Thomas Petazzoni
  2012-07-17  7:49     ` Samuel Martin
  2012-07-17  9:17   ` Thomas Petazzoni
  1 sibling, 1 reply; 11+ messages in thread
From: Thomas Petazzoni @ 2012-07-17  7:33 UTC (permalink / raw)
  To: buildroot

Le Mon, 16 Jul 2012 23:37:26 +0200,
Samuel Martin <s.martin49@gmail.com> a ?crit :

> +# i386/x86_64 cpu features
> +config BR2_X86_CPU_HAS_MMX
> +	depends on BR2_i386 || BR2_x86_64
> +	bool

Is there any reason to have all those depends on BR2_i386 || BR2_x86_64
on those hidden options? Since they are hidden and only selected by
i386/x86_64 options, I don't think there's a point in keeping those
dependencies. If you agree, I can just fix that up when committing.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features
  2012-07-17  7:33   ` Thomas Petazzoni
@ 2012-07-17  7:49     ` Samuel Martin
  0 siblings, 0 replies; 11+ messages in thread
From: Samuel Martin @ 2012-07-17  7:49 UTC (permalink / raw)
  To: buildroot

2012/7/17 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Le Mon, 16 Jul 2012 23:37:26 +0200,
> Samuel Martin <s.martin49@gmail.com> a ?crit :
>
>> +# i386/x86_64 cpu features
>> +config BR2_X86_CPU_HAS_MMX
>> +     depends on BR2_i386 || BR2_x86_64
>> +     bool
>
> Is there any reason to have all those depends on BR2_i386 || BR2_x86_64
> on those hidden options?
No real reason indeed.

> Since they are hidden and only selected by
> i386/x86_64 options, I don't think there's a point in keeping those
> dependencies. If you agree, I can just fix that up when committing.
As you wish, I can also reposted it by tonight.

Regards,

-- 
Sam

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features
  2012-07-16 21:37 ` [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin
  2012-07-17  7:33   ` Thomas Petazzoni
@ 2012-07-17  9:17   ` Thomas Petazzoni
  2012-07-17  9:43     ` Samuel Martin
  1 sibling, 1 reply; 11+ messages in thread
From: Thomas Petazzoni @ 2012-07-17  9:17 UTC (permalink / raw)
  To: buildroot

Le Mon, 16 Jul 2012 23:37:26 +0200,
Samuel Martin <s.martin49@gmail.com> a ?crit :

> Selecting the target subarchitecture variant automatically selects the
> appropriated set of features.
> 
> Signed-off-by: Samuel Martin <s.martin49@gmail.com>

Applied, after removing the depends on, and the SSE41/SSE42 options
that were unused. The other 4 patches were also applied, with no
changes.

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features
  2012-07-17  9:17   ` Thomas Petazzoni
@ 2012-07-17  9:43     ` Samuel Martin
  2012-07-17  9:52       ` Thomas Petazzoni
  0 siblings, 1 reply; 11+ messages in thread
From: Samuel Martin @ 2012-07-17  9:43 UTC (permalink / raw)
  To: buildroot

2012/7/17 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> Le Mon, 16 Jul 2012 23:37:26 +0200,
> Samuel Martin <s.martin49@gmail.com> a ?crit :
>
>> Selecting the target subarchitecture variant automatically selects the
>> appropriated set of features.
>>
>> Signed-off-by: Samuel Martin <s.martin49@gmail.com>
>
> Applied, after removing the depends on, and the SSE41/SSE42 options
> that were unused. The other 4 patches were also applied, with no
> changes.
arf!... SSE41/SSE42 options are useb by the opencv patch that has just
been merged.

-- 
Sam

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features
  2012-07-17  9:43     ` Samuel Martin
@ 2012-07-17  9:52       ` Thomas Petazzoni
  0 siblings, 0 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2012-07-17  9:52 UTC (permalink / raw)
  To: buildroot

Le Tue, 17 Jul 2012 11:43:58 +0200,
Samuel Martin <s.martin49@gmail.com> a ?crit :

> > Applied, after removing the depends on, and the SSE41/SSE42 options
> > that were unused. The other 4 patches were also applied, with no
> > changes.
> arf!... SSE41/SSE42 options are useb by the opencv patch that has just
> been merged.

Oops, I should have removed them from the OpenCV patch, my mistake.
Since those options are never selected, there is no reason to have code
from them in the OpenCV makefile.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-07-17  9:52 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-16 21:37 [Buildroot] [PATCH v5 0/5] OpenCV update and CPU fetures Samuel Martin
2012-07-16 21:37 ` [Buildroot] [PATCH v5 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin
2012-07-17  7:33   ` Thomas Petazzoni
2012-07-17  7:49     ` Samuel Martin
2012-07-17  9:17   ` Thomas Petazzoni
2012-07-17  9:43     ` Samuel Martin
2012-07-17  9:52       ` Thomas Petazzoni
2012-07-16 21:37 ` [Buildroot] [PATCH v5 2/5] libevas: refactor *_CONF_OPT assignment with cpu-feature options Samuel Martin
2012-07-16 21:37 ` [Buildroot] [PATCH v5 3/5] sdl_gfx: " Samuel Martin
2012-07-16 21:37 ` [Buildroot] [PATCH v5 4/5] sdl_sound: " Samuel Martin
2012-07-16 21:37 ` [Buildroot] [PATCH v5 5/5] opencv: bump to version 2.4.2 Samuel Martin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox