kumquat-buildroot/package/libv4l/libv4l.mk

90 lines
2.7 KiB
Makefile
Raw Normal View History

################################################################################
#
# libv4l
#
################################################################################
LIBV4L_VERSION = 1.12.5
LIBV4L_SOURCE = v4l-utils-$(LIBV4L_VERSION).tar.bz2
LIBV4L_SITE = http://linuxtv.org/downloads/v4l-utils
LIBV4L_INSTALL_STAGING = YES
LIBV4L_DEPENDENCIES = host-pkgconf
LIBV4L_CONF_OPTS = --disable-doxygen-doc
# below patches requires autoreconf:
# 0004-configure.ac-clarify-configure-summary.patch
# 0005-configure.ac-revisit-v4l2-ctl-compliance-using-libv4.patch
# 0006-configure.ac-revisit-disable-libv4l-to-disable-dyn-l.patch
# 0007-configure.ac-add-disable-libv4l-option.patch
# 0008-configure.ac-fix-build-of-v4l-utils-on-uclinux.patch
# 0009-configure.ac-add-USE_LIBV4L-to-summary.patch
LIBV4L_AUTORECONF = YES
# host-gettext needed for autoreconf to work
LIBV4L_DEPENDENCIES += host-gettext
libv4l: fix uclibc-ng configure/compile With raspberrypi_defconfig: libv4l2rds.c:256:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode for (int i = 0; i < tuning->station_cnt; i++) { ^ libv4l2rds.c:256:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code >From build/libv4l-1.6.2/config.log: configure:4709: checking for .../host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc option to accept ISO C99 configure:4858: .../host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -std=gnu99 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:54:9: error: unknown type name 'wchar_t' const wchar_t *name; The C99 detection problem seems more related to missing wchar_t type support than the compiler option? Adding LIBV4L_CONF_ENV = ac_cv_prog_cc_c99='-std=c99' gives a lot of compile errors like: libv4lconvert.c: In function 'dev_ioctl': processing/../libv4lsyscall-priv.h:85:10: error: 'SYS_ioctl' undeclared (first use in this function) syscall(SYS_ioctl, (int)(fd), (unsigned long)(cmd), (void *)(arg)) ^ libv4lconvert.c:43:9: note: in expansion of macro 'SYS_IOCTL' return SYS_IOCTL(fd, cmd, arg); ^ processing/../libv4lsyscall-priv.h:85:10: note: each undeclared identifier is reported only once for each function it appears in syscall(SYS_ioctl, (int)(fd), (unsigned long)(cmd), (void *)(arg)) ^ libv4lconvert.c:43:9: note: in expansion of macro 'SYS_IOCTL' return SYS_IOCTL(fd, cmd, arg); ^ Adding LIBV4L_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' solves all configure/compile errors. Signed-off-by: Peter Seiderer <ps.report@gmx.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-02 23:26:32 +02:00
# fix uclibc-ng configure/compile
LIBV4L_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'
# v4l-utils components have different licences, see v4l-utils.spec for details
LIBV4L_LICENSE = GPL-2.0+ (utilities), LGPL-2.1+ (libraries)
LIBV4L_LICENSE_FILES = COPYING COPYING.libv4l lib/libv4l1/libv4l1-kernelcode-license.txt
ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
LIBV4L_DEPENDENCIES += alsa-lib
endif
ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y)
LIBV4L_DEPENDENCIES += argp-standalone
LIBV4L_LIBS += -largp
endif
LIBV4L_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv)
ifeq ($(BR2_PACKAGE_JPEG),y)
LIBV4L_DEPENDENCIES += jpeg
LIBV4L_CONF_OPTS += --with-jpeg
else
LIBV4L_CONF_OPTS += --without-jpeg
endif
ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
LIBV4L_DEPENDENCIES += libgl
endif
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
LIBV4L_DEPENDENCIES += udev
endif
ifeq ($(BR2_PACKAGE_LIBGLU),y)
LIBV4L_DEPENDENCIES += libglu
endif
ifeq ($(BR2_PACKAGE_LIBV4L_UTILS),y)
LIBV4L_CONF_OPTS += --enable-v4l-utils
LIBV4L_DEPENDENCIES += $(TARGET_NLS_DEPENDENCIES)
ifeq ($(BR2_PACKAGE_QT5BASE)$(BR2_PACKAGE_QT5BASE_GUI)$(BR2_PACKAGE_QT5BASE_WIDGETS),yyy)
LIBV4L_CONF_OPTS += --enable-qv4l2
LIBV4L_DEPENDENCIES += qt5base
# protect against host version detection of moc-qt5/rcc-qt5/uic-qt5
LIBV4L_CONF_ENV += \
ac_cv_prog_MOC=$(HOST_DIR)/usr/bin/moc \
ac_cv_prog_RCC=$(HOST_DIR)/usr/bin/rcc \
ac_cv_prog_UIC=$(HOST_DIR)/usr/bin/uic
qt5: add choice between version 5.6.2 and 5.8.0 For 5.8.0 - add hashes - qt5 need C++11 compliant compiler since 5.7 ([1]) - use different licenses: since version 5.7 Qt removed the LGPL v2.1 option in favor of v3 with a different exception - qt5base: renamed library to EglFSDeviceIntegration ([2]) - qt5base: remove ras-pi patch, commit c0cc5052097c723d0331a7619d686af9eb93d33c fix it ([3]) - qt5base: remove 0007-eglfs-fix-eglfs_mali-compile-for-odroid-mali.patch (upstream committed [3b]) - qt5base: remove obsolete config-option -large ([4]) - qt5base: gstreamer support fully moved to qt5multimedia, so gstreamer related options are no longer passed ([5]) - add patch for python-pyqt5 to fix the build with Qt 5.8 - add tweak in libv4l to fix the build with Qt 5.8, originally provided by Peter Seiderer - add patch from Peter Seiderer fixing a build issue with freetype For 5.6.2 - moved patches to subdir, and renumber patches [1] http://blog.qt.io/blog/2016/06/16/qt-5-7-released/ [2] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ec4eb4db61094179bc6a9ec26ec68fb710177053 [3] https://codereview.qt-project.org/#/c/167172/ [3b] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=f1b4bd4790860e1ff5afcec111a359bc3a91cfda [4] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=84d3a21c9efe7efb2cce6d3bd14af1f9580b1108 [5] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=7d4da559afb62a779b3d90a65fb679cb5433f203 Signed-off-by: Andreas Naumann <anaumann@ultratronik.de> Signed-off-by: Julien Corjon <corjon.j@ecagroup.com> Signed-off-by: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com> [Thomas: - tweak commit log about GStreamer related changes, suggested by Arnout - move the gcc 4.8 dependency from the main qt5 option to just the qt5.8 selection, so that qt5.6 can still be built if gcc < 4.8 is used. Noticed by Arnout. - rename the options of the version selection to not include the version number itself so that we don't have to keep legacy symbols. Noticed by Arnout. - introduce changes to qt5quickcontrols2.mk needed to handle qt5.6 vs. qt5.8, borrowed from a later patch in the series. - add patch for python-pyqt5 to fix the build with Qt 5.8. - add fix to libv4l.mk from Peter Seiderer to fix the build with Qt 5.8. - renumber patches for 5.6.2, suggested by Arnout.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-01-31 08:59:03 +01:00
# qt5 needs c++11 (since qt-5.7)
ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
qt5: add choice between version 5.6.2 and 5.8.0 For 5.8.0 - add hashes - qt5 need C++11 compliant compiler since 5.7 ([1]) - use different licenses: since version 5.7 Qt removed the LGPL v2.1 option in favor of v3 with a different exception - qt5base: renamed library to EglFSDeviceIntegration ([2]) - qt5base: remove ras-pi patch, commit c0cc5052097c723d0331a7619d686af9eb93d33c fix it ([3]) - qt5base: remove 0007-eglfs-fix-eglfs_mali-compile-for-odroid-mali.patch (upstream committed [3b]) - qt5base: remove obsolete config-option -large ([4]) - qt5base: gstreamer support fully moved to qt5multimedia, so gstreamer related options are no longer passed ([5]) - add patch for python-pyqt5 to fix the build with Qt 5.8 - add tweak in libv4l to fix the build with Qt 5.8, originally provided by Peter Seiderer - add patch from Peter Seiderer fixing a build issue with freetype For 5.6.2 - moved patches to subdir, and renumber patches [1] http://blog.qt.io/blog/2016/06/16/qt-5-7-released/ [2] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ec4eb4db61094179bc6a9ec26ec68fb710177053 [3] https://codereview.qt-project.org/#/c/167172/ [3b] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=f1b4bd4790860e1ff5afcec111a359bc3a91cfda [4] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=84d3a21c9efe7efb2cce6d3bd14af1f9580b1108 [5] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=7d4da559afb62a779b3d90a65fb679cb5433f203 Signed-off-by: Andreas Naumann <anaumann@ultratronik.de> Signed-off-by: Julien Corjon <corjon.j@ecagroup.com> Signed-off-by: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com> [Thomas: - tweak commit log about GStreamer related changes, suggested by Arnout - move the gcc 4.8 dependency from the main qt5 option to just the qt5.8 selection, so that qt5.6 can still be built if gcc < 4.8 is used. Noticed by Arnout. - rename the options of the version selection to not include the version number itself so that we don't have to keep legacy symbols. Noticed by Arnout. - introduce changes to qt5quickcontrols2.mk needed to handle qt5.6 vs. qt5.8, borrowed from a later patch in the series. - add patch for python-pyqt5 to fix the build with Qt 5.8. - add fix to libv4l.mk from Peter Seiderer to fix the build with Qt 5.8. - renumber patches for 5.6.2, suggested by Arnout.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-01-31 08:59:03 +01:00
LIBV4L_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11"
endif
else ifeq ($(BR2_PACKAGE_QT_OPENGL_GL_DESKTOP),y)
LIBV4L_CONF_OPTS += --enable-qv4l2
LIBV4L_DEPENDENCIES += qt
else
LIBV4L_CONF_OPTS += --disable-qv4l2
endif
else
LIBV4L_CONF_OPTS += --disable-v4l-utils
endif
LIBV4L_CONF_ENV += LIBS="$(LIBV4L_LIBS)"
$(eval $(autotools-package))