kumquat-buildroot/package/libv4l/0007-configure.ac-add-disable-libv4l-option.patch
Hugues Fruchet f837251785 package/libv4l: allow build of v4l2 utilities on noMMU platforms
This commit removes the dependencies on MMU and dynamic libraries.

In order to build v4l2 utilities such as compliancy tools like
v4l2-compliance or cec-compliance, v4-utils can now be built without
dynamic libraries support.

In that case the v4l-utils parts which depends on dynamic library
support are not built:
 - libv4l & libv4lconvert libraries
 - libv4l plugins
 - rds-ctl utility
 - contrib test utilities

The rest of the utilities are built.

Signed-off-by: Hugues Fruchet <hugues.fruchet@st.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-06-10 23:33:14 +02:00

156 lines
5.3 KiB
Diff

From 702722a43ee6472993fabdd810272d3599064866 Mon Sep 17 00:00:00 2001
From: Hugues Fruchet <hugues.fruchet@st.com>
Date: Wed, 17 May 2017 10:03:11 +0200
Subject: [PATCH] configure.ac: add --disable-libv4l option
Add an option to disable libv4l libraries and plugins compilation.
If system is not supporting dynamic shared libraries, this option
is automatically set.
dlopen() is no more a mandatory dependency (warning is kept).
lib/ and contrib/ folders are no more built with this option set
because of libv4l dependency.
utils/ folder is still built with this options set but without
rds-ctl because of its libv4l dependency.
v4l2-compliance and v4l2-ctl are also built but without any links
on libv4l and libv4lconvert libraries.
Signed-off-by: Hugues Fruchet <hugues.fruchet@st.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
---
Makefile.am | 11 +++++++++--
configure.ac | 12 +++++++++++-
utils/Makefile.am | 6 +++++-
utils/v4l2-compliance/Makefile.am | 4 ++++
utils/v4l2-ctl/Makefile.am | 4 ++++
5 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index e603472..07c3ef8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,10 +1,17 @@
AUTOMAKE_OPTIONS = foreign
ACLOCAL_AMFLAGS = -I m4
-SUBDIRS = v4l-utils-po libdvbv5-po lib
+SUBDIRS = v4l-utils-po libdvbv5-po
+
+if WITH_LIBV4L
+SUBDIRS += lib
+endif
if WITH_V4LUTILS
-SUBDIRS += utils contrib
+SUBDIRS += utils
+if WITH_LIBV4L
+SUBDIRS += contrib
+endif
endif
EXTRA_DIST = android-config.h bootstrap.sh doxygen_libdvbv5.cfg include COPYING.libv4l \
diff --git a/configure.ac b/configure.ac
index 8e536cc..b9fc59a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -285,7 +285,7 @@ dl_saved_libs=$LIBS
AC_SEARCH_LIBS([dlopen],
[dl],
[test "$ac_cv_search_dlopen" = "none required" || DLOPEN_LIBS=$ac_cv_search_dlopen],
- [AC_MSG_ERROR([unable to find the dlopen() function])])
+ [AC_MSG_WARN([unable to find the dlopen() function])])
AC_SUBST([DLOPEN_LIBS])
LIBS=$dl_saved_libs
@@ -371,6 +371,14 @@ AC_ARG_ENABLE(libdvbv5,
esac]
)
+AC_ARG_ENABLE(libv4l,
+ AS_HELP_STRING([--disable-libv4l], [disable libv4l compilation]),
+ [case "${enableval}" in
+ yes | no ) ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-libv4l) ;;
+ esac]
+)
+
AC_ARG_ENABLE(dyn-libv4l,
AS_HELP_STRING([--disable-dyn-libv4l], [disable dynamic libv4l support]),
[case "${enableval}" in
@@ -428,6 +436,7 @@ AM_CONDITIONAL([WITH_LIBDVBV5], [test x$enable_libdvbv5 != xno -a x$have_li
AM_CONDITIONAL([WITH_DVBV5_REMOTE], [test x$enable_libdvbv5 != xno -a x$have_libudev = xyes -a x$have_pthread = xyes])
AM_CONDITIONAL([WITH_DYN_LIBV4L], [test x$enable_dyn_libv4l != xno])
+AM_CONDITIONAL([WITH_LIBV4L], [test x$enable_libv4l != xno -a x$enable_shared != xno])
AM_CONDITIONAL([WITH_V4LUTILS], [test x$enable_v4l_utils != xno -a x$linux_os = xyes])
AM_CONDITIONAL([WITH_QV4L2], [test x${qt_pkgconfig} = xtrue -a x$enable_qv4l2 != xno])
AM_CONDITIONAL([WITH_V4L_PLUGINS], [test x$enable_dyn_libv4l != xno -a x$enable_shared != xno])
@@ -455,6 +464,7 @@ AM_COND_IF([WITH_LIBDVBV5], [USE_LIBDVBV5="yes"], [USE_LIBDVBV5="no"])
AM_COND_IF([WITH_DVBV5_REMOTE], [USE_DVBV5_REMOTE="yes"
AC_DEFINE([HAVE_DVBV5_REMOTE], [1], [Usage of DVBv5 remote enabled])],
[USE_DVBV5_REMOTE="no"])
+AM_COND_IF([WITH_LIBV4L], [USE_LIBV4L="yes"], [USE_LIBV4L="no"])
AM_COND_IF([WITH_DYN_LIBV4L], [USE_DYN_LIBV4L="yes"], [USE_DYN_LIBV4L="no"])
AM_COND_IF([WITH_V4LUTILS], [USE_V4LUTILS="yes"], [USE_V4LUTILS="no"])
AM_COND_IF([WITH_QV4L2], [USE_QV4L2="yes"], [USE_QV4L2="no"])
diff --git a/utils/Makefile.am b/utils/Makefile.am
index d7708cc..ce710c2 100644
--- a/utils/Makefile.am
+++ b/utils/Makefile.am
@@ -13,8 +13,12 @@ SUBDIRS = \
v4l2-sysfs-path \
cec-ctl \
cec-compliance \
- cec-follower \
+ cec-follower
+
+if WITH_LIBV4L
+SUBDIRS += \
rds-ctl
+endif
if WITH_LIBDVBV5
SUBDIRS += \
diff --git a/utils/v4l2-compliance/Makefile.am b/utils/v4l2-compliance/Makefile.am
index c2b5919..0240a50 100644
--- a/utils/v4l2-compliance/Makefile.am
+++ b/utils/v4l2-compliance/Makefile.am
@@ -7,12 +7,16 @@ v4l2_compliance_SOURCES = v4l2-compliance.cpp v4l2-test-debug.cpp v4l2-test-inpu
v4l2-test-codecs.cpp v4l2-test-colors.cpp v4l2-compliance.h
v4l2_compliance_CPPFLAGS = -I../common
+if WITH_LIBV4L
if WITH_V4L2_COMPLIANCE_LIBV4L
v4l2_compliance_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread
else
v4l2_compliance_LDADD = -lrt -lpthread
DEFS += -DNO_LIBV4L2
endif
+else
+DEFS += -DNO_LIBV4L2
+endif
EXTRA_DIST = Android.mk fixme.txt v4l2-compliance.1
diff --git a/utils/v4l2-ctl/Makefile.am b/utils/v4l2-ctl/Makefile.am
index 955647d..4475aed 100644
--- a/utils/v4l2-ctl/Makefile.am
+++ b/utils/v4l2-ctl/Makefile.am
@@ -9,10 +9,14 @@ v4l2_ctl_SOURCES = v4l2-ctl.cpp v4l2-ctl.h v4l2-ctl-common.cpp v4l2-ctl-tuner.cp
v4l2-tpg-colors.c v4l2-tpg-core.c v4l-stream.c
v4l2_ctl_CPPFLAGS = -I../common
+if WITH_LIBV4L
if WITH_V4L2_CTL_LIBV4L
v4l2_ctl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread
else
DEFS += -DNO_LIBV4L2
endif
+else
+DEFS += -DNO_LIBV4L2
+endif
EXTRA_DIST = Android.mk v4l2-ctl.1
--
1.9.1