diff options
authorMauro Carvalho Chehab <mchehab@redhat.com>2011-10-06 14:02:54 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-10-07 15:00:11 -0300
commit5f24b816cf2d85ae413ebfca7183e251de65ee90 (patch)
parent95512bfb5c1d05016a8d527e76e0091ab635053b (diff)
Add support to disable libv4l and/or v4l-utils
Add some autogen magic to allow disabling the compilation of v4l-utils or libv4l. If libv4l is disabled but v4l-utils is enabled, it will still build libv4l statically, and will linkedit the v4l-utils against the static libraries. This way distributions can ship v4l-utils on a separate package from libv4l, and even having things like providing a v4l-utils based on a different version of libv4l. This changeset also opens space to add more libraries and other packages, as the first step to turn it into a media-utils tree. While here, adds a v4l-utils.spec rpm file, as found on Fedora. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--Makefile.in (renamed from Makefile)32
7 files changed, 269 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 1f62182a..2b7d6179 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,7 @@
diff --git a/Make.rules b/Make.rules
index 13d8464a..759c75b4 100644
--- a/Make.rules
+++ b/Make.rules
@@ -1,5 +1,3 @@
# These ones can be overriden from the cmdline
CFLAGS := -g -O1
@@ -17,7 +15,7 @@ MANDIR = $(PREFIX)/share/man
# Note the -I../.. this assumes all sources live in a 2 level dir hierarchy!
override CPPFLAGS += -I../../include -I../../lib/include -D_GNU_SOURCE -DV4L_UTILS_VERSION='"$(V4L_UTILS_VERSION)"'
-override LDFLAGS += -L../../lib/libv4l1 -L../../lib/libv4l2 -L../../lib/libv4lconvert
+override LDFLAGS += -L../../lib/libv4l1 -L../../lib/libv4l2 -L../../lib/libv4lconvert -ldl -ljpeg
# And last various rules
diff --git a/Makefile b/Makefile.in
index fa0cb05a..720d8e99 100644
--- a/Makefile
+++ b/Makefile.in
@@ -1,6 +1,36 @@
-all install:
+CC = @CC@
+CXX = @CXX@
+ifeq ($(WITH_LIBV4L),no)
+ifeq ($(WITH_V4LUTILS),yes)
+ ifeq ($(WITH_LIBV4L),yes)
+ echo with Libv4l $(LIBV4L_ARGS)
+ $(MAKE) -C lib $(LIBV4L_ARGS) $@
+ else ifeq ($(WITH_V4LUTILS),yes)
+ echo with Libv4l static
+ $(MAKE) -C lib $(LIBV4L_ARGS) $@
+ endif
+ ifeq ($(WITH_V4LUTILS),yes)
+ $(MAKE) -C utils $(LIBV4L_ARGS) $@
+ endif
+ ifeq ($(WITH_LIBV4L),yes)
$(MAKE) -C lib $@
+ endif
+ ifeq ($(WITH_V4LUTILS),yes)
$(MAKE) -C utils $@
+ endif
@if [ ! -f $(KERNEL_DIR)/include/linux/videodev2.h -o \
diff --git a/configure.in b/configure.in
new file mode 100644
index 00000000..0f9a0581
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,42 @@
+dnl ---------------------------------------------------------------------
+dnl Checks for programs.
+dnl ---------------------------------------------------------------------
+dnl Options
+ [ --disable-libv4l disable dynamic libv4l compilation],
+ [case "${enableval}" in
+ yes | no ) WITH_LIBV4L="${enableval}" ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-ctemplate) ;;
+ esac],
+ [WITH_LIBV4L="yes"]
+ [ --disable-v4l-utils disable v4l-utils compilation],
+ [case "${enableval}" in
+ yes | no ) WITH_V4LUTILS="${enableval}" ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-ctemplate) ;;
+ esac],
+ [WITH_V4LUTILS="yes"]
+dnl ---------------------------------------------------------------------
+dnl Substitute vars
+dnl ---------------------------------------------------------------------
+dnl read Makefile.in and write Makefile
diff --git a/makefile b/makefile
new file mode 100644
index 00000000..20c08227
--- /dev/null
+++ b/makefile
@@ -0,0 +1,23 @@
+.PHONY: default configure distclean
+ifeq ($(wildcard configure),)
+default: configure
+default: all
+ @set -ex; autoconf
+ @rm -rf autom4te.cache
+ @echo "*** You should now run ./configure or make ***"
+ -$(MAKE) -f Makefile clean
+ -rm Makefile configure config.h v4l-utils.spec
+-include Makefile
+ifeq ($(wildcard Makefile),)
+ ./configure
+ @$(MAKE) -f Makefile all
diff --git a/utils/qv4l2/qv4l2.pro b/utils/qv4l2/qv4l2.pro
index 87cf0975..939b71f0 100644
--- a/utils/qv4l2/qv4l2.pro
+++ b/utils/qv4l2/qv4l2.pro
@@ -9,6 +9,6 @@ CONFIG += debug
# Input
HEADERS += qv4l2.h general-tab.h v4l2-api.h capture-win.h
SOURCES += qv4l2.cpp general-tab.cpp ctrl-tab.cpp v4l2-api.cpp capture-win.cpp
-LIBS += -L../../lib/libv4l2 -lv4l2 -L../../lib/libv4lconvert -lv4lconvert -lrt -L../libv4l2util -lv4l2util
+LIBS += -L../../lib/libv4l2 -lv4l2 -L../../lib/libv4lconvert -lv4lconvert -lrt -L../libv4l2util -lv4l2util -ldl -ljpeg
RESOURCES += qv4l2.qrc
diff --git a/v4l-utils.spec.in b/v4l-utils.spec.in
new file mode 100644
index 00000000..c37780f7
--- /dev/null
+++ b/v4l-utils.spec.in
@@ -0,0 +1,167 @@
+Name: v4l-utils
+Version: @@V4L_UTILS_VERSION@@
+Release: 1%{?dist}
+Summary: Utilities for video4linux and DVB devices
+Group: Applications/System
+# ir-keytable and v4l2-sysfs-path are GPLv2 only
+License: GPLv2+ and GPLv2
+URL: http://www.linuxtv.org/downloads/v4l-utils/
+Source0: http://linuxtv.org/downloads/v4l-utils/v4l-utils-%{version}.tar.bz2
+Source1: qv4l2.desktop
+Source2: qv4l2.svg
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: qt4-devel libsysfs-devel kernel-headers desktop-file-utils
+# For /etc/udev/rules.d ownership
+Requires: udev
+Requires: libv4l = %{version}-%{release}
+v4l-utils is a collection of various video4linux (V4L) and DVB utilities. The
+main v4l-utils package contains cx18-ctl, ir-keytable, ivtv-ctl, v4l2-ctl and
+%package devel-tools
+Summary: Utilities for v4l2 / DVB driver development and debugging
+# decode_tm6000 is GPLv2 only
+License: GPLv2+ and GPLv2
+Requires: libv4l = %{version}-%{release}
+%description devel-tools
+Utilities for v4l2 / DVB driver authors: decode_tm6000, v4l2-compliance and
+%package -n qv4l2
+Summary: QT v4l2 test control and streaming test application
+License: GPLv2+
+Requires: libv4l = %{version}-%{release}
+%description -n qv4l2
+QT v4l2 test control and streaming test application.
+%package -n libv4l
+Summary: Collection of video4linux support libraries
+Group: System Environment/Libraries
+# Some of the decompression helpers are GPLv2, the rest is LGPLv2+
+License: LGPLv2+ and GPLv2
+URL: http://hansdegoede.livejournal.com/3636.html
+%description -n libv4l
+libv4l is a collection of libraries which adds a thin abstraction layer on
+top of video4linux2 devices. The purpose of this (thin) layer is to make it
+easy for application writers to support a wide variety of devices without
+having to write separate code for different devices in the same class. libv4l
+consists of 3 different libraries: libv4lconvert, libv4l1 and libv4l2.
+libv4lconvert offers functions to convert from any (known) pixel-format
+to V4l2_PIX_FMT_BGR24 or V4l2_PIX_FMT_YUV420.
+libv4l1 offers the (deprecated) v4l1 API on top of v4l2 devices, independent
+of the drivers for those devices supporting v4l1 compatibility (which many
+v4l2 drivers do not).
+libv4l2 offers the v4l2 API on top of v4l2 devices, while adding for the
+application transparent libv4lconvert conversion where necessary.
+%package -n libv4l-devel
+Summary: Development files for libv4l
+Group: Development/Libraries
+License: LGPLv2+
+URL: http://hansdegoede.livejournal.com/3636.html
+Requires: libv4l = %{version}-%{release}
+%description -n libv4l-devel
+The libv4l-devel package contains libraries and header files for
+developing applications that use libv4l.
+%setup -q
+make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \
+ PREFIX=%{_prefix} LIBDIR=%{_libdir}
+make install PREFIX=%{_prefix} LIBDIR=%{_libdir} DESTDIR=$RPM_BUILD_ROOT
+# below is the desktop file and icon stuff.
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
+desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications \
+ %{SOURCE1}
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/scalable/apps
+install -p -m 644 %{SOURCE2} \
+ $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/scalable/apps
+%post -n libv4l -p /sbin/ldconfig
+%postun -n libv4l -p /sbin/ldconfig
+%post -n qv4l2
+touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+%postun -n qv4l2
+if [ $1 -eq 0 ] ; then
+ touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+%posttrans -n qv4l2
+gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+%doc README
+%dir %{_sysconfdir}/rc_keymaps
+%config(noreplace) %{_sysconfdir}/rc_keymaps/*
+%config(noreplace) %{_sysconfdir}/rc_maps.cfg
+%config(noreplace) %{_sysconfdir}/udev/rules.d/70-infrared.rules
+%files devel-tools
+%doc README
+%files -n qv4l2
+%doc README
+%files -n libv4l
+%files -n libv4l-devel
+%doc README.lib-multi-threading
+* Thr Oct 06 2011 Mauro Carvalho Chehab <mchehab@redhat.com> 0.9.0-test
+- Initial v4l-utils.spec file

Privacy Policy