| 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 |
| |