From 55b3e527968b0644e7eaf3aae2b873249400b614 Mon Sep 17 00:00:00 2001 From: "hans@localhost.localdomain" Date: Tue, 29 Jul 2008 23:02:59 +0200 Subject: libv4l: add pkg-config (.pc) files for easier detection if libv4l is available From: Hans de Goede libv4l: add pkg-config (.pc) files for easier detection if libv4l is available Signed-off-by: Hans de Goede --- v4l2-apps/lib/libv4l/libv4l1/Makefile | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'v4l2-apps/lib/libv4l/libv4l1') diff --git a/v4l2-apps/lib/libv4l/libv4l1/Makefile b/v4l2-apps/lib/libv4l/libv4l1/Makefile index 8cb064cd4..4e9206bf6 100644 --- a/v4l2-apps/lib/libv4l/libv4l1/Makefile +++ b/v4l2-apps/lib/libv4l/libv4l1/Makefile @@ -12,7 +12,7 @@ V4L1_OBJS = libv4l1.o log.o ../libv4l2/libv4l2.so V4L1_LIB = libv4l1.so V4L1COMPAT = v4l1compat.so V4L1COMPAT_O = v4l1compat.o libv4l1.so -TARGETS = $(V4L1_LIB) $(V4L1COMPAT) +TARGETS = $(V4L1_LIB) $(V4L1COMPAT) libv4l1.pc INCLUDES = ../include/libv4l1.h ifeq ($(LIB_RELEASE),) @@ -34,6 +34,16 @@ $(V4L1_LIB): $(V4L1_OBJS) $(V4L1COMPAT): $(V4L1COMPAT_O) $(V4L1_LIB) +libv4l1.pc: + echo prefix=$(PREFIX) > libv4l1.pc + echo libdir=$(LIBDIR) >> libv4l1.pc + echo >> libv4l1.pc + echo 'Name: libv4l1' >> libv4l1.pc + echo 'Description: v4l1 compatibility library' >> libv4l1.pc + echo 'Version: '$(V4L2_LIB_VERSION) >> libv4l1.pc + echo 'Libs: -L$${libdir} -lv4l1' >> libv4l1.pc + echo 'Cflags: -I$${prefix}/include' >> libv4l1.pc + install: all mkdir -p $(DESTDIR)$(PREFIX)/include install -p -m 644 $(INCLUDES) $(DESTDIR)$(PREFIX)/include @@ -43,10 +53,11 @@ install: all ln -f -s $(V4L1_LIB).$(LIB_RELEASE) $(V4L1_LIB) install -m 755 $(V4L1COMPAT).$(LIB_RELEASE) \ $(DESTDIR)$(LIBDIR)/libv4l/$(V4L1COMPAT) + mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig + install -m 644 libv4l1.pc $(DESTDIR)$(LIBDIR)/pkgconfig clean:: - rm -f *.so* *.o log *~ - rm -f *.d + rm -f *.so* *.o *.d libv4l1.pc log *~ %.o: %.c $(CC) -c -MMD $(CPPFLAGS) $(CFLAGS) -o $@ $< -- cgit v1.2.3 From feec7dd735a92d1d390cc0669f879e2b6d36389e Mon Sep 17 00:00:00 2001 From: Brandon Philips Date: Wed, 30 Jul 2008 20:05:21 -0700 Subject: libv4l: silence the creation of pkg-config files Signed-off-by: Brandon Philips --- v4l2-apps/lib/libv4l/libv4l1/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'v4l2-apps/lib/libv4l/libv4l1') diff --git a/v4l2-apps/lib/libv4l/libv4l1/Makefile b/v4l2-apps/lib/libv4l/libv4l1/Makefile index 4e9206bf6..1f82fef10 100644 --- a/v4l2-apps/lib/libv4l/libv4l1/Makefile +++ b/v4l2-apps/lib/libv4l/libv4l1/Makefile @@ -35,14 +35,14 @@ $(V4L1_LIB): $(V4L1_OBJS) $(V4L1COMPAT): $(V4L1COMPAT_O) $(V4L1_LIB) libv4l1.pc: - echo prefix=$(PREFIX) > libv4l1.pc - echo libdir=$(LIBDIR) >> libv4l1.pc - echo >> libv4l1.pc - echo 'Name: libv4l1' >> libv4l1.pc - echo 'Description: v4l1 compatibility library' >> libv4l1.pc - echo 'Version: '$(V4L2_LIB_VERSION) >> libv4l1.pc - echo 'Libs: -L$${libdir} -lv4l1' >> libv4l1.pc - echo 'Cflags: -I$${prefix}/include' >> libv4l1.pc + @echo prefix=$(PREFIX) > libv4l1.pc + @echo libdir=$(LIBDIR) >> libv4l1.pc + @echo >> libv4l1.pc + @echo 'Name: libv4l1' >> libv4l1.pc + @echo 'Description: v4l1 compatibility library' >> libv4l1.pc + @echo 'Version: '$(V4L2_LIB_VERSION) >> libv4l1.pc + @echo 'Libs: -L$${libdir} -lv4l1' >> libv4l1.pc + @echo 'Cflags: -I$${prefix}/include' >> libv4l1.pc install: all mkdir -p $(DESTDIR)$(PREFIX)/include -- cgit v1.2.3 From a9cbfb5bdc82fdb04c1023f3a4bc1f5bd4a6a4a8 Mon Sep 17 00:00:00 2001 From: Brandon Philips Date: Wed, 30 Jul 2008 20:07:58 -0700 Subject: libv4l: add /dev/v4l/ to the paths supported by open() override Signed-off-by: Brandon Philips --- v4l2-apps/lib/libv4l/libv4l1/libv4l1.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'v4l2-apps/lib/libv4l/libv4l1') diff --git a/v4l2-apps/lib/libv4l/libv4l1/libv4l1.c b/v4l2-apps/lib/libv4l/libv4l1/libv4l1.c index b80fcb56d..80d2fa09b 100644 --- a/v4l2-apps/lib/libv4l/libv4l1/libv4l1.c +++ b/v4l2-apps/lib/libv4l/libv4l1/libv4l1.c @@ -28,12 +28,12 @@ capture only devices, or non v4l2 devices. 2) libv4l1 is the base of the v4l1compat.so wrapper lib, which is a .so which can be LD_PRELOAD-ed and the overrules the libc's open/close/etc, - and when opening /dev/videoX calls v4l1_open. Because we behave as the - regular counterpart when the fd is not known (instead of say throwing - an error), v4l1compat.so can simply call the v4l1_ prefixed function - for all wrapped functions. This way the wrapper does not have to keep - track of which fd's are being handled by libv4l1, as libv4l1 already - keeps track of this itself. + and when opening /dev/videoX or /dev/v4l/ calls v4l1_open. Because we + behave as the regular counterpart when the fd is not known (instead of + say throwing an error), v4l1compat.so can simply call the v4l1_ prefixed + function for all wrapped functions. This way the wrapper does not have + to keep track of which fd's are being handled by libv4l1, as libv4l1 + already keeps track of this itself. This also means that libv4l1 may not use any of the regular functions it mimics, as for example open could be a symbol in v4l1compat.so, which @@ -279,7 +279,7 @@ int v4l1_open (const char *file, int oflag, ...) return fd; /* check if we're opening a video4linux2 device */ - if (strncmp(file, "/dev/video", 10)) + if (strncmp(file, "/dev/video", 10) && strncmp(file, "/dev/v4l/", 9)) return fd; /* check that this is an v4l2 device, no need to emulate v4l1 on -- cgit v1.2.3 From 474932fcb19fc298b8786e737bd1ae5115c9a6d2 Mon Sep 17 00:00:00 2001 From: "hans@localhost.localdomain" Date: Thu, 31 Jul 2008 09:37:27 +0200 Subject: libv4l: fixup copyright headers From: Brandon Philips Part of the copyright headers refered GPL instead of LGPL due to a copy and paste error (Brandon Philips) Signed-off-by: Brandon Philips Signed-off-by: Hans de Goede --- v4l2-apps/lib/libv4l/libv4l1/libv4l1-priv.h | 2 +- v4l2-apps/lib/libv4l/libv4l1/log.c | 2 +- v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'v4l2-apps/lib/libv4l/libv4l1') diff --git a/v4l2-apps/lib/libv4l/libv4l1/libv4l1-priv.h b/v4l2-apps/lib/libv4l/libv4l1/libv4l1-priv.h index e09041256..651599255 100644 --- a/v4l2-apps/lib/libv4l/libv4l1/libv4l1-priv.h +++ b/v4l2-apps/lib/libv4l/libv4l1/libv4l1-priv.h @@ -9,7 +9,7 @@ # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software diff --git a/v4l2-apps/lib/libv4l/libv4l1/log.c b/v4l2-apps/lib/libv4l/libv4l1/log.c index 178c6d23c..cccc3e6d0 100644 --- a/v4l2-apps/lib/libv4l/libv4l1/log.c +++ b/v4l2-apps/lib/libv4l/libv4l1/log.c @@ -9,7 +9,7 @@ # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software diff --git a/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c b/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c index db3a0027b..5da13fcf5 100644 --- a/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c +++ b/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c @@ -12,7 +12,7 @@ # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software -- cgit v1.2.3 From 1d60339ee5ca9a861de510dc4c57576ec9f2e5be Mon Sep 17 00:00:00 2001 From: "hans@localhost.localdomain" Date: Sun, 3 Aug 2008 13:15:46 +0200 Subject: libv4l: makefile and pkgconfig improvements From: Gregor Jasny Various Makefile and pkgconfig file improvements by Gregor Jasny (Debian) Signed-off-by: Gregor Jasny Signed-off-by: Hans de Goede --- v4l2-apps/lib/libv4l/libv4l1/Makefile | 36 ++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) (limited to 'v4l2-apps/lib/libv4l/libv4l1') diff --git a/v4l2-apps/lib/libv4l/libv4l1/Makefile b/v4l2-apps/lib/libv4l/libv4l1/Makefile index 1f82fef10..bedd4391f 100644 --- a/v4l2-apps/lib/libv4l/libv4l1/Makefile +++ b/v4l2-apps/lib/libv4l/libv4l1/Makefile @@ -1,20 +1,23 @@ -CC = gcc -LD = gcc - -CPPFLAGS = -fPIC -I../include -I../../../../linux/include +CPPFLAGS = -I../include -I../../../../linux/include CFLAGS := -g -O1 CFLAGS += -Wall -W -Wno-unused -Wpointer-arith -Wstrict-prototypes -LDFLAGS = -shared - -V4L1_OBJS = libv4l1.o log.o ../libv4l2/libv4l2.so -V4L1_LIB = libv4l1.so +V4L1_OBJS = libv4l1.o log.o V4L1COMPAT = v4l1compat.so V4L1COMPAT_O = v4l1compat.o libv4l1.so -TARGETS = $(V4L1_LIB) $(V4L1COMPAT) libv4l1.pc +TARGETS = $(V4L1_LIB) libv4l1.pc INCLUDES = ../include/libv4l1.h +ifeq ($(LINKTYPE),static) +V4L1_LIB = libv4l1.a +else +V4L1_LIB = libv4l1.so +V4L1_OBJS += ../libv4l2/libv4l2.so +TARGETS += $(V4L1COMPAT) +CPPFLAGS += -fPIC +endif + ifeq ($(LIB_RELEASE),) LIB_RELEASE = 0 endif @@ -41,27 +44,38 @@ libv4l1.pc: @echo 'Name: libv4l1' >> libv4l1.pc @echo 'Description: v4l1 compatibility library' >> libv4l1.pc @echo 'Version: '$(V4L2_LIB_VERSION) >> libv4l1.pc + @echo 'Requires: libv4l2' >> libv4l1.pc @echo 'Libs: -L$${libdir} -lv4l1' >> libv4l1.pc + @echo 'Libs.private: -lpthread' >> libv4l1.pc @echo 'Cflags: -I$${prefix}/include' >> libv4l1.pc install: all mkdir -p $(DESTDIR)$(PREFIX)/include install -p -m 644 $(INCLUDES) $(DESTDIR)$(PREFIX)/include +ifeq ($(LINKTYPE),static) + mkdir -p $(DESTDIR)$(LIBDIR) + install -m 644 $(V4L1_LIB) $(DESTDIR)$(LIBDIR) +else mkdir -p $(DESTDIR)$(LIBDIR)/libv4l install -m 755 $(V4L1_LIB).$(LIB_RELEASE) $(DESTDIR)$(LIBDIR) cd $(DESTDIR)$(LIBDIR) && \ ln -f -s $(V4L1_LIB).$(LIB_RELEASE) $(V4L1_LIB) install -m 755 $(V4L1COMPAT).$(LIB_RELEASE) \ $(DESTDIR)$(LIBDIR)/libv4l/$(V4L1COMPAT) +endif mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig install -m 644 libv4l1.pc $(DESTDIR)$(LIBDIR)/pkgconfig clean:: - rm -f *.so* *.o *.d libv4l1.pc log *~ + rm -f *.a *.so* *.o *.d libv4l1.pc log *~ %.o: %.c $(CC) -c -MMD $(CPPFLAGS) $(CFLAGS) -o $@ $< %.so: - $(CC) $(LDFLAGS) -Wl,-soname,$@.$(LIB_RELEASE) -o $@.$(LIB_RELEASE) $^ + $(CC) -shared $(LDFLAGS) -Wl,-soname,$@.$(LIB_RELEASE) -o $@.$(LIB_RELEASE) $^ ln -f -s $@.$(LIB_RELEASE) $@ + +%.a: + $(AR) cqs $@ $^ + -- cgit v1.2.3 From 3dbcf4e987933e8e41ff496e76223f457a7609e5 Mon Sep 17 00:00:00 2001 From: "hans@localhost.localdomain" Date: Sun, 3 Aug 2008 13:21:19 +0200 Subject: libv4l: link against pthread From: Hans de Goede libv4l: link against pthread Signed-off-by: Hans de Goede --- v4l2-apps/lib/libv4l/libv4l1/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'v4l2-apps/lib/libv4l/libv4l1') diff --git a/v4l2-apps/lib/libv4l/libv4l1/Makefile b/v4l2-apps/lib/libv4l/libv4l1/Makefile index bedd4391f..c92731daa 100644 --- a/v4l2-apps/lib/libv4l/libv4l1/Makefile +++ b/v4l2-apps/lib/libv4l/libv4l1/Makefile @@ -3,6 +3,8 @@ CPPFLAGS = -I../include -I../../../../linux/include CFLAGS := -g -O1 CFLAGS += -Wall -W -Wno-unused -Wpointer-arith -Wstrict-prototypes +LIBS = -lpthread + V4L1_OBJS = libv4l1.o log.o V4L1COMPAT = v4l1compat.so V4L1COMPAT_O = v4l1compat.o libv4l1.so @@ -73,7 +75,7 @@ clean:: $(CC) -c -MMD $(CPPFLAGS) $(CFLAGS) -o $@ $< %.so: - $(CC) -shared $(LDFLAGS) -Wl,-soname,$@.$(LIB_RELEASE) -o $@.$(LIB_RELEASE) $^ + $(CC) -shared $(LDFLAGS) -Wl,-soname,$@.$(LIB_RELEASE) -o $@.$(LIB_RELEASE) $^ $(LIBS) ln -f -s $@.$(LIB_RELEASE) $@ %.a: -- cgit v1.2.3 From e0e6d4a7982b61a901c49c1b099b067a0e613eb6 Mon Sep 17 00:00:00 2001 From: "hans@localhost.localdomain" Date: Sun, 3 Aug 2008 21:20:08 +0200 Subject: libv4l: mmap return value should be void * not void From: Hans de Goede libv4l: mmap return value should be void * not void Signed-off-by: Hans de Goede --- v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'v4l2-apps/lib/libv4l/libv4l1') diff --git a/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c b/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c index 5da13fcf5..f1134fe3b 100644 --- a/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c +++ b/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c @@ -99,13 +99,13 @@ ssize_t read(int fd, void* buffer, size_t n) return v4l1_read (fd, buffer, n); } -void mmap(void *start, size_t length, int prot, int flags, int fd, +void *mmap(void *start, size_t length, int prot, int flags, int fd, __off_t offset) { return v4l1_mmap(start, length, prot, flags, fd, offset); } -void mmap64(void *start, size_t length, int prot, int flags, int fd, +void *mmap64(void *start, size_t length, int prot, int flags, int fd, __off64_t offset) { return v4l1_mmap(start, length, prot, flags, fd, offset); -- cgit v1.2.3