218 lines
7.7 KiB
Diff
218 lines
7.7 KiB
Diff
|
From 305ae25455b1f19ad2eda92523bd553fd8bc72fd Mon Sep 17 00:00:00 2001
|
||
|
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||
|
Date: Sun, 20 Aug 2017 23:58:44 +0200
|
||
|
Subject: [PATCH] configure.ac: drop --disable-libv4l, disable plugin support
|
||
|
instead
|
||
|
|
||
|
In commit 2e604dfbcd09b93f0808cedb2a0b324c5569a599 ("configure.ac: add
|
||
|
--disable-libv4l option"), an option --disable-libv4l was added. As
|
||
|
part of this, libv4l is no longer built at all in static linking
|
||
|
configurations, just because libv4l uses dlopen() for plugin support.
|
||
|
|
||
|
However, plugin support is only a side feature of libv4l, and one may
|
||
|
need to use libv4l in static configurations, just without plugin
|
||
|
support.
|
||
|
|
||
|
Therefore, this commit:
|
||
|
|
||
|
- Essentially reverts 2e604dfbcd09b93f0808cedb2a0b324c5569a599, so
|
||
|
that libv4l can be built in static linking configurations again.
|
||
|
|
||
|
- Adjusts the compilation of libv4l2 so that the plugin support is
|
||
|
not compiled in when dlopen() in static linking configuration
|
||
|
(dlopen is not available).
|
||
|
|
||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||
|
Submitted-upstream: https://www.mail-archive.com/linux-media@vger.kernel.org/msg117449.html
|
||
|
---
|
||
|
Makefile.am | 11 ++---------
|
||
|
configure.ac | 15 +++------------
|
||
|
lib/libv4l2/Makefile.am | 6 +++++-
|
||
|
lib/libv4l2/libv4l2-priv.h | 14 ++++++++++++++
|
||
|
utils/Makefile.am | 6 +-----
|
||
|
utils/v4l2-compliance/Makefile.am | 4 ----
|
||
|
utils/v4l2-ctl/Makefile.am | 4 ----
|
||
|
7 files changed, 25 insertions(+), 35 deletions(-)
|
||
|
|
||
|
diff --git a/Makefile.am b/Makefile.am
|
||
|
index 07c3ef8..e603472 100644
|
||
|
--- a/Makefile.am
|
||
|
+++ b/Makefile.am
|
||
|
@@ -1,17 +1,10 @@
|
||
|
AUTOMAKE_OPTIONS = foreign
|
||
|
ACLOCAL_AMFLAGS = -I m4
|
||
|
|
||
|
-SUBDIRS = v4l-utils-po libdvbv5-po
|
||
|
-
|
||
|
-if WITH_LIBV4L
|
||
|
-SUBDIRS += lib
|
||
|
-endif
|
||
|
+SUBDIRS = v4l-utils-po libdvbv5-po lib
|
||
|
|
||
|
if WITH_V4LUTILS
|
||
|
-SUBDIRS += utils
|
||
|
-if WITH_LIBV4L
|
||
|
-SUBDIRS += contrib
|
||
|
-endif
|
||
|
+SUBDIRS += utils contrib
|
||
|
endif
|
||
|
|
||
|
EXTRA_DIST = android-config.h bootstrap.sh doxygen_libdvbv5.cfg include COPYING.libv4l \
|
||
|
diff --git a/configure.ac b/configure.ac
|
||
|
index 58fb688..2ecb4a1 100644
|
||
|
--- a/configure.ac
|
||
|
+++ b/configure.ac
|
||
|
@@ -374,14 +374,6 @@ 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
|
||
|
@@ -439,7 +431,6 @@ 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])
|
||
|
@@ -467,11 +458,12 @@ 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"])
|
||
|
-AM_COND_IF([WITH_V4L_PLUGINS], [USE_V4L_PLUGINS="yes"], [USE_V4L_PLUGINS="no"])
|
||
|
+AM_COND_IF([WITH_V4L_PLUGINS], [USE_V4L_PLUGINS="yes"
|
||
|
+ AC_DEFINE([HAVE_V4L_PLUGINS], [1], [V4L plugin support enabled])],
|
||
|
+ [USE_V4L_PLUGINS="no"])
|
||
|
AM_COND_IF([WITH_V4L_WRAPPERS], [USE_V4L_WRAPPERS="yes"], [USE_V4L_WRAPPERS="no"])
|
||
|
AM_COND_IF([WITH_GCONV], [USE_GCONV="yes"], [USE_GCONV="no"])
|
||
|
AM_COND_IF([WITH_V4L2_CTL_LIBV4L], [USE_V4L2_CTL_LIBV4L="yes"], [USE_V4L2_CTL_LIBV4L="no"])
|
||
|
@@ -503,7 +495,6 @@ compile time options summary
|
||
|
|
||
|
gconv : $USE_GCONV
|
||
|
|
||
|
- libv4l : $USE_LIBV4L
|
||
|
dynamic libv4l : $USE_DYN_LIBV4L
|
||
|
v4l_plugins : $USE_V4L_PLUGINS
|
||
|
v4l_wrappers : $USE_V4L_WRAPPERS
|
||
|
diff --git a/lib/libv4l2/Makefile.am b/lib/libv4l2/Makefile.am
|
||
|
index 811c45c..3a1bb90 100644
|
||
|
--- a/lib/libv4l2/Makefile.am
|
||
|
+++ b/lib/libv4l2/Makefile.am
|
||
|
@@ -15,7 +15,11 @@ else
|
||
|
noinst_LTLIBRARIES = libv4l2.la
|
||
|
endif
|
||
|
|
||
|
-libv4l2_la_SOURCES = libv4l2.c v4l2-plugin.c log.c libv4l2-priv.h
|
||
|
+libv4l2_la_SOURCES = libv4l2.c log.c libv4l2-priv.h
|
||
|
+if WITH_V4L_PLUGINS
|
||
|
+libv4l2_la_SOURCES += v4l2-plugin.c
|
||
|
+endif
|
||
|
+
|
||
|
libv4l2_la_CPPFLAGS = $(CFLAG_VISIBILITY) $(ENFORCE_LIBV4L_STATIC)
|
||
|
libv4l2_la_LDFLAGS = $(LIBV4L2_VERSION) -lpthread $(DLOPEN_LIBS) $(ENFORCE_LIBV4L_STATIC)
|
||
|
libv4l2_la_LIBADD = ../libv4lconvert/libv4lconvert.la
|
||
|
diff --git a/lib/libv4l2/libv4l2-priv.h b/lib/libv4l2/libv4l2-priv.h
|
||
|
index 343db5e..1924c91 100644
|
||
|
--- a/lib/libv4l2/libv4l2-priv.h
|
||
|
+++ b/lib/libv4l2/libv4l2-priv.h
|
||
|
@@ -107,10 +107,24 @@ struct v4l2_dev_info {
|
||
|
};
|
||
|
|
||
|
/* From v4l2-plugin.c */
|
||
|
+#if defined(HAVE_V4L_PLUGINS)
|
||
|
void v4l2_plugin_init(int fd, void **plugin_lib_ret, void **plugin_priv_ret,
|
||
|
const struct libv4l_dev_ops **dev_ops_ret);
|
||
|
void v4l2_plugin_cleanup(void *plugin_lib, void *plugin_priv,
|
||
|
const struct libv4l_dev_ops *dev_ops);
|
||
|
+#else
|
||
|
+static inline void v4l2_plugin_init(int fd, void **plugin_lib_ret, void **plugin_priv_ret,
|
||
|
+ const struct libv4l_dev_ops **dev_ops_ret)
|
||
|
+{
|
||
|
+ *dev_ops_ret = v4lconvert_get_default_dev_ops();
|
||
|
+ *plugin_lib_ret = NULL;
|
||
|
+ *plugin_priv_ret = NULL;
|
||
|
+}
|
||
|
+static inline void v4l2_plugin_cleanup(void *plugin_lib, void *plugin_priv,
|
||
|
+ const struct libv4l_dev_ops *dev_ops)
|
||
|
+{
|
||
|
+}
|
||
|
+#endif /* WITH_V4L_PLUGINS */
|
||
|
|
||
|
/* From log.c */
|
||
|
extern const char *v4l2_ioctls[];
|
||
|
diff --git a/utils/Makefile.am b/utils/Makefile.am
|
||
|
index ce710c2..d7708cc 100644
|
||
|
--- a/utils/Makefile.am
|
||
|
+++ b/utils/Makefile.am
|
||
|
@@ -13,12 +13,8 @@ SUBDIRS = \
|
||
|
v4l2-sysfs-path \
|
||
|
cec-ctl \
|
||
|
cec-compliance \
|
||
|
- cec-follower
|
||
|
-
|
||
|
-if WITH_LIBV4L
|
||
|
-SUBDIRS += \
|
||
|
+ cec-follower \
|
||
|
rds-ctl
|
||
|
-endif
|
||
|
|
||
|
if WITH_LIBDVBV5
|
||
|
SUBDIRS += \
|
||
|
diff --git a/utils/v4l2-compliance/Makefile.am b/utils/v4l2-compliance/Makefile.am
|
||
|
index 0240a50..c2b5919 100644
|
||
|
--- a/utils/v4l2-compliance/Makefile.am
|
||
|
+++ b/utils/v4l2-compliance/Makefile.am
|
||
|
@@ -7,16 +7,12 @@ 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 4475aed..955647d 100644
|
||
|
--- a/utils/v4l2-ctl/Makefile.am
|
||
|
+++ b/utils/v4l2-ctl/Makefile.am
|
||
|
@@ -9,14 +9,10 @@ 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
|
||
|
--
|
||
|
2.9.4
|
||
|
|