* [Buildroot] [PATCH v4 0/5] OpenCV update and CPU fetures
@ 2012-07-05 22:42 Samuel Martin
2012-07-05 22:42 ` [Buildroot] [PATCH v4 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Samuel Martin @ 2012-07-05 22:42 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.
Note:
MMX support is one of these CPU features.
Some variants of the Geode processor 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.
Changes since v3:
- remove CPU features symbols for PowerPC
- opencv: fix the configure option for PowerPC and comment it.
Changes since v2:
- 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
Changes since v1:
- 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
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.1
package/efl/libevas/libevas.mk | 24 ++--
package/opencv/Config.in | 152 ++++++++++++++++++---
...pencv-uclibc-optional-long-double-support.patch | 40 ------
package/opencv/opencv.mk | 142 +++++++++++++------
package/sdl_gfx/sdl_gfx.mk | 10 +-
package/sdl_sound/sdl_sound.mk | 3 +-
target/Config.in.arch | 115 ++++++++++++++++
7 files changed, 363 insertions(+), 123 deletions(-)
delete mode 100644 package/opencv/opencv-uclibc-optional-long-double-support.patch
--
1.7.11.1
^ permalink raw reply [flat|nested] 10+ messages in thread* [Buildroot] [PATCH v4 1/5] target: add symbols for i386/x86_64 cpu features 2012-07-05 22:42 [Buildroot] [PATCH v4 0/5] OpenCV update and CPU fetures Samuel Martin @ 2012-07-05 22:42 ` Samuel Martin 2012-07-10 6:11 ` Arnout Vandecappelle 2012-07-05 22:42 ` [Buildroot] [PATCH v4 2/5] libevas: refactor *_CONF_OPT assignment with cpu-feature options Samuel Martin ` (3 subsequent siblings) 4 siblings, 1 reply; 10+ messages in thread From: Samuel Martin @ 2012-07-05 22:42 UTC (permalink / raw) To: buildroot Selecting the target architecture variant automatically selects the appropriated set of features. Signed-off-by: Samuel Martin <s.martin49@gmail.com> diff --git a/target/Config.in.arch b/target/Config.in.arch index c9bbc12..590726a 100644 --- a/target/Config.in.arch +++ b/target/Config.in.arch @@ -325,6 +325,31 @@ 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 + bool +config BR2_X86_CPU_HAS_SSE + bool +config BR2_X86_CPU_HAS_SSE2 + bool +config BR2_X86_CPU_HAS_SSE3 + bool +config BR2_X86_CPU_HAS_SSSE3 + bool +config BR2_X86_CPU_HAS_SSE41 + bool +config BR2_X86_CPU_HAS_SSE42 + bool +config BR2_X86_CPU_HAS_SSE4 + bool +config BR2_X86_CPU_HAS_SSE4A + bool +config BR2_X86_CPU_HAS_3DNOW + bool +config BR2_X86_CPU_HAS_ABM + bool + choice prompt "Target Architecture Variant" depends on BR2_i386 @@ -344,46 +369,106 @@ 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 + select BR2_X86_CPU_HAS_3DNOW config BR2_x86_athlon bool "athlon" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_3DNOW config BR2_x86_athlon_4 bool "athlon-4" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_3DNOW + select BR2_X86_CPU_HAS_SSE config BR2_x86_opteron bool "opteron" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_3DNOW + 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_3DNOW + 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_3DNOW + select BR2_X86_CPU_HAS_SSE + select BR2_X86_CPU_HAS_SSE2 + select BR2_X86_CPU_HAS_SSE3 + select BR2_X86_CPU_HAS_SSE4A + select BR2_X86_CPU_HAS_ABM 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 + select BR2_X86_CPU_HAS_3DNOW config BR2_x86_c3 bool "Via/Cyrix C3 (Samuel/Ezra cores)" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_3DNOW 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 + select BR2_X86_CPU_HAS_3DNOW endchoice choice @@ -397,16 +482,46 @@ 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 + select BR2_X86_CPU_HAS_SSE4A + select BR2_X86_CPU_HAS_ABM config BR2_x86_64_opteron_sse3 bool "opteron w/ sse3" + 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 bool "opteron" + select BR2_X86_CPU_HAS_MMX + select BR2_X86_CPU_HAS_3DNOW + 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.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH v4 1/5] target: add symbols for i386/x86_64 cpu features 2012-07-05 22:42 ` [Buildroot] [PATCH v4 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin @ 2012-07-10 6:11 ` Arnout Vandecappelle 2012-07-13 21:26 ` Thomas Petazzoni 0 siblings, 1 reply; 10+ messages in thread From: Arnout Vandecappelle @ 2012-07-10 6:11 UTC (permalink / raw) To: buildroot On 07/06/12 00:42, Samuel Martin wrote: [snip] > +config BR2_X86_CPU_HAS_SSE41 > + bool > +config BR2_X86_CPU_HAS_SSE42 > + bool > +config BR2_X86_CPU_HAS_SSE4 > + bool > +config BR2_X86_CPU_HAS_SSE4A > + bool I don't like these SSE4 configs which are not selected by anything. I understand that you need them for OpenCV, but it's not ideal. Maybe we need an extra subarchitecture config option to explicitly enable these? They should depend on core2 || barcelona, probably. Regards, Arnout -- Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH v4 1/5] target: add symbols for i386/x86_64 cpu features 2012-07-10 6:11 ` Arnout Vandecappelle @ 2012-07-13 21:26 ` Thomas Petazzoni 2012-07-13 21:57 ` Samuel Martin 0 siblings, 1 reply; 10+ messages in thread From: Thomas Petazzoni @ 2012-07-13 21:26 UTC (permalink / raw) To: buildroot Le Tue, 10 Jul 2012 08:11:34 +0200, Arnout Vandecappelle <arnout@mind.be> a ?crit : > I don't like these SSE4 configs which are not selected by anything. I understand > that you need them for OpenCV, but it's not ideal. > > Maybe we need an extra subarchitecture config option to explicitly enable these? Agreed, we should either have subarchitecture options that use those SSE4 options, or we should not add those SSE4 options, and only add them when those subarchitectures are added. Samuel, can you take this into account and respin the patch set? 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] 10+ messages in thread
* [Buildroot] [PATCH v4 1/5] target: add symbols for i386/x86_64 cpu features 2012-07-13 21:26 ` Thomas Petazzoni @ 2012-07-13 21:57 ` Samuel Martin 2012-07-13 22:46 ` Thomas Petazzoni 0 siblings, 1 reply; 10+ messages in thread From: Samuel Martin @ 2012-07-13 21:57 UTC (permalink / raw) To: buildroot Hi, 2012/7/13 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>: > Le Tue, 10 Jul 2012 08:11:34 +0200, > Arnout Vandecappelle <arnout@mind.be> a ?crit : > >> I don't like these SSE4 configs which are not selected by anything. I understand >> that you need them for OpenCV, but it's not ideal. >> >> Maybe we need an extra subarchitecture config option to explicitly enable these? > > Agreed, we should either have subarchitecture options that use those > SSE4 options, or we should not add those SSE4 options, and only add > them when those subarchitectures are added. > > Samuel, can you take this into account and respin the patch set? Of course. You prefer expressing dependencies using "depends on" keyword instead "select", is it right? I'm not sure I got what you mean by "having subarchitecture options", could you explain? Cheers, -- Sam ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH v4 1/5] target: add symbols for i386/x86_64 cpu features 2012-07-13 21:57 ` Samuel Martin @ 2012-07-13 22:46 ` Thomas Petazzoni 0 siblings, 0 replies; 10+ messages in thread From: Thomas Petazzoni @ 2012-07-13 22:46 UTC (permalink / raw) To: buildroot Le Fri, 13 Jul 2012 23:57:15 +0200, Samuel Martin <s.martin49@gmail.com> a ?crit : > You prefer expressing dependencies using "depends on" keyword instead > "select", is it right? It depends on the case. Which case are you talking about? > I'm not sure I got what you mean by "having subarchitecture options", > could you explain? The different MMX, SSE, SSE2, SSE3 options are selected by the "Architecture Variant" options. However, the SSE4 options are not selected by any "Architecture Variant" that currently exists in Buildroot. I'd prefer not to have such dead/unused code, so either the corresponding Architecture Variants should be added, or the SSE4 related options should not be added for now (until someone actually needs those Architecture Variants). 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] 10+ messages in thread
* [Buildroot] [PATCH v4 2/5] libevas: refactor *_CONF_OPT assignment with cpu-feature options 2012-07-05 22:42 [Buildroot] [PATCH v4 0/5] OpenCV update and CPU fetures Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin @ 2012-07-05 22:42 ` Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 3/5] sdl_gfx: " Samuel Martin ` (2 subsequent siblings) 4 siblings, 0 replies; 10+ messages in thread From: Samuel Martin @ 2012-07-05 22:42 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.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH v4 3/5] sdl_gfx: refactor *_CONF_OPT assignment with cpu-feature options 2012-07-05 22:42 [Buildroot] [PATCH v4 0/5] OpenCV update and CPU fetures Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 2/5] libevas: refactor *_CONF_OPT assignment with cpu-feature options Samuel Martin @ 2012-07-05 22:42 ` Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 4/5] sdl_sound: " Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 5/5] opencv: bump to version 2.4.1 Samuel Martin 4 siblings, 0 replies; 10+ messages in thread From: Samuel Martin @ 2012-07-05 22:42 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.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH v4 4/5] sdl_sound: refactor *_CONF_OPT assignment with cpu-feature options 2012-07-05 22:42 [Buildroot] [PATCH v4 0/5] OpenCV update and CPU fetures Samuel Martin ` (2 preceding siblings ...) 2012-07-05 22:42 ` [Buildroot] [PATCH v4 3/5] sdl_gfx: " Samuel Martin @ 2012-07-05 22:42 ` Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 5/5] opencv: bump to version 2.4.1 Samuel Martin 4 siblings, 0 replies; 10+ messages in thread From: Samuel Martin @ 2012-07-05 22:42 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.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH v4 5/5] opencv: bump to version 2.4.1 2012-07-05 22:42 [Buildroot] [PATCH v4 0/5] OpenCV update and CPU fetures Samuel Martin ` (3 preceding siblings ...) 2012-07-05 22:42 ` [Buildroot] [PATCH v4 4/5] sdl_sound: " Samuel Martin @ 2012-07-05 22:42 ` Samuel Martin 4 siblings, 0 replies; 10+ messages in thread From: Samuel Martin @ 2012-07-05 22:42 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 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..6a76f6d 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. + +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. + +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 "Build options" +comment "Test sets" +config BR2_PACKAGE_OPENCV_BUILD_TESTS + bool "build tests" + +config BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS + bool "build performance tests" -config BR2_PACKAGE_OPENCV_WITH_PYTHON - bool "python support" - depends on BR2_PACKAGE_PYTHON +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,12 @@ 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 + default y + config BR2_PACKAGE_OPENCV_WITH_TIFF bool "tiff support" select BR2_PACKAGE_TIFF @@ -84,7 +185,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..2dd87f7 100644 --- a/package/opencv/opencv.mk +++ b/package/opencv/opencv.mk @@ -3,50 +3,110 @@ # 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.1 +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 + +# 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) + +# 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 +140,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 +160,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.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2012-07-13 22:46 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-07-05 22:42 [Buildroot] [PATCH v4 0/5] OpenCV update and CPU fetures Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 1/5] target: add symbols for i386/x86_64 cpu features Samuel Martin 2012-07-10 6:11 ` Arnout Vandecappelle 2012-07-13 21:26 ` Thomas Petazzoni 2012-07-13 21:57 ` Samuel Martin 2012-07-13 22:46 ` Thomas Petazzoni 2012-07-05 22:42 ` [Buildroot] [PATCH v4 2/5] libevas: refactor *_CONF_OPT assignment with cpu-feature options Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 3/5] sdl_gfx: " Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 4/5] sdl_sound: " Samuel Martin 2012-07-05 22:42 ` [Buildroot] [PATCH v4 5/5] opencv: bump to version 2.4.1 Samuel Martin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox