summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
Diffstat (limited to 'package')
-rw-r--r--package/spca5xx/Makefile45
-rw-r--r--package/spca5xx/patches/01-kmod-build.patch177
2 files changed, 222 insertions, 0 deletions
diff --git a/package/spca5xx/Makefile b/package/spca5xx/Makefile
new file mode 100644
index 000000000..0a84d980c
--- /dev/null
+++ b/package/spca5xx/Makefile
@@ -0,0 +1,45 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+include $(TOPDIR)/package/kernel.mk
+
+PKG_NAME:=spca5xx
+PKG_VERSION:=20060301
+PKG_RELEASE:=1
+PKG_MD5SUM:=4160e03c408ac254111febacf058b88a
+
+PKG_SOURCE_URL:=http://mxhaard.free.fr/spca50x/Download/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+
+include $(TOPDIR)/package/rules.mk
+
+#FIXME: add proper dependency handling on kmod-usb-core & kmod-videodev packages
+define Package/kmod-spca5xx
+ SECTION:=drivers
+ CATEGORY:=Drivers
+ DEPENDS:=@PACKAGE_KMOD_USB&&PACKAGE_KMOD_VIDEODEV
+ TITLE:=Driver for SPCA5xx based USB cameras
+ DESCRIPTION:=Driver for SPCA5xx based USB cameras
+ URL:=http://mxhaard.free.fr/
+ VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE)
+endef
+
+define Build/Compile
+ $(MAKE) -C $(LINUX_DIR) \
+ ARCH="$(LINUX_KARCH)" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ KERNELVERSION="$(KERNEL)" \
+ SUBDIRS="$(PKG_BUILD_DIR)" \
+ modules
+endef
+
+define Package/kmod-spca5xx/install
+ install -m0755 -d $(1)/lib/modules/$(LINUX_VERSION)
+ $(CP) $(PKG_BUILD_DIR)/spca5xx.$(LINUX_KMOD_SUFFIX) \
+ $(1)/lib/modules/$(LINUX_VERSION)/
+endef
+
+$(eval $(call BuildPackage,kmod-spca5xx))
diff --git a/package/spca5xx/patches/01-kmod-build.patch b/package/spca5xx/patches/01-kmod-build.patch
new file mode 100644
index 000000000..304df9204
--- /dev/null
+++ b/package/spca5xx/patches/01-kmod-build.patch
@@ -0,0 +1,177 @@
+diff -Nur spca5xx-20051212/Makefile spca5xx-20051212.patched/Makefile
+--- spca5xx-20051212/Makefile 2005-12-10 17:05:51.000000000 +0100
++++ spca5xx-20051212.patched/Makefile 2005-12-25 02:41:29.910720750 +0100
+@@ -33,7 +33,9 @@
+ DEFINES += -DCONFIG_USB_SPCA5XX_MODULE=1 -DMODULE -D__KERNEL__
+ DEFINES += -DVID_HARDWARE_SPCA5XX=0xFF -DSPCA5XX_VERSION=\"$(VERSION)\"
+
+-ifneq ($(shell uname -r | cut -d. -f1,2), 2.4)
++KERNELVERSION=$(shell uname -r | cut -d. -f1,2)
++
++ifneq ($(KERNELVERSION), 2.4)
+
+ ifneq ($(KERNELRELEASE),) # We were called by kbuild
+ CFLAGS += $(DEFINES)
+@@ -68,152 +70,16 @@
+
+ else # kernel version test
+
+-#############################################################################
+-# For Linux 2.4 users.
+-# Change the following lines according to your system configuration.
+-# It is important to configure your particular source tree ("make dep") before
+-# compiling this module!
+-#############################################################################
+-###
+-# This makefile will build the spca50x driver module external to the kernel
+-# source tree. It makes it easier to swap kernels.
+-
+-
+-KERNEL_VERSION = `uname -r`
+-
+-###
+-# Location of the header files (most importantly the config files)
+-# for the kernel you want to build the module against.
+-# This should be correct for the currently installed kernel on your machine.
+-KINCLUDE = /lib/modules/$(KERNEL_VERSION)/build/include
+-KERNEL_ACFILE = $(KINCLUDE)/linux/autoconf.h
+-KERNEL_MODVERSIONSFILE = $(KINCLUDE)/linux/modversions.h
+-MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/
+-
+-# Detect module versioning support
+-ifneq ($(strip $(shell grep 'define CONFIG_MODVERSIONS 1' $(KERNEL_ACFILE))),)
+- DEFINES += -DMODVERSIONS -include $(KERNEL_MODVERSIONSFILE)
+-endif
+-
+-# Detect SMP support
+-ifneq ($(strip $(shell grep 'define CONFIG_SMP 1' $(KERNEL_ACFILE))),)
+- DEFINES += -D__SMP__ -DSMP
+-endif
+-
+-# Setup the tools
+-CC = gcc
+-LD = ld
+-
+-# Setup compiler warnings
+-WARNINGS = -Wall -Wpointer-arith
+-WARNINGS += -Wcast-align -Wwrite-strings -Wstrict-prototypes
+-WARNINGS += -Wuninitialized -Wreturn-type -Wunused -Wparentheses
+-
+-# Setup compiler flags
+-CFLAGS = -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe
+-CFLAGS += -mpreferred-stack-boundary=2
+-CFLAGS += -I$(KINCLUDE) -Idrivers/usb
+-
+-# Setup link flags
+-LDFLAGS = --strip-debug -r
+-
+-# Setup the list of files to be included in a distribution
+-DIST_FILES = CHANGELOG \
+- README \
+- Makefile \
+- drivers/usb/Config.in \
+- drivers/usb/spcadecoder.c \
+- drivers/usb/spcadecoder.h \
+- drivers/usb/spcagamma.h \
+- drivers/usb/spcaCompat.h \
+- drivers/usb/spcausb.h \
+- drivers/usb/spca500_init.h \
+- drivers/usb/spca501_init.h \
+- drivers/usb/sp5xxfw2.dat \
+- drivers/usb/sp5xxfw2.h \
+- drivers/usb/spca505_init.h \
+- drivers/usb/spca506.h \
+- drivers/usb/spca508_init.h \
+- drivers/usb/spca561.h \
+- drivers/usb/sonix.h \
+- drivers/usb/cs2102.h \
+- drivers/usb/hv7131b.h \
+- drivers/usb/icm105a.h \
+- drivers/usb/hv7131c.h \
+- drivers/usb/hdcs2020.h \
+- drivers/usb/pb0330.h \
+- drivers/usb/tas5130c.h \
+- drivers/usb/zc3xx.h\
+- drivers/usb/tv8532.h\
+- drivers/usb/cxlib.h\
+- drivers/usb/sn9cxxx.h\
+- drivers/usb/cx11646.h\
+- drivers/usb/pac207.h\
+- drivers/usb/spca5xx.c \
+- drivers/usb/spca5xx.h
+-
+-OBJS = drivers/usb/spcadecoder.o \
+- drivers/usb/spca5xx.o
+-
+-BINARY = spca5xx.o
+-
+-###
+-# Targets follow here
+-
+-binary: $(OBJS)
+- @echo Linking $(BINARY)
+- @$(LD) $(LDFLAGS) -o $(BINARY) $(OBJS)
+-
+-install: binary
+- @echo Installing.. Your root password may be required.
+- su -c "make install-root"
+-
+-install-root:
+- @echo Installing..
+- @mkdir -p /lib/modules/`uname -r`/kernel/drivers/usb
+- @rm -f /lib/modules/`uname -r`/kernel/drivers/usb/spca50x.o
+- @rm -f /lib/modules/`uname -r`/kernel/drivers/usb/et61x.o
+- @cp spca5xx.o /lib/modules/`uname -r`/kernel/drivers/usb/spca5xx.o
+- @/sbin/depmod
+-
+-dist: clean binary
+- @echo Making distributable archives
+- @rm -f spca5xx-src-$(VERSION).tar.gz
+- @tar zcf spca5xx-src-$(VERSION).tar.gz $(DIST_FILES)
+- @rm -f spca5xx-module-$(VERSION).tar.gz
+- @cp $(BINARY) spca5xx-$(VERSION).o
+- @tar zcf spca5xx-module-$(VERSION).tar.gz spca5xx-$(VERSION).o README
+- @rm spca5xx-$(VERSION).o
+-
+-.c.o: Makefile $*.c
+- @echo Compiling $*.c
+- @$(CC) $(CFLAGS) $(WARNINGS) $(DEFINES) -c $*.c -o $*.o
+-
+-###
+-# Dependencies follow here
+-
+-drivers/usb/spca5xx.o: drivers/usb/spca5xx.h \
+- drivers/usb/spcaCompat.h \
+- drivers/usb/spcausb.h \
+- drivers/usb/sonix.h \
+- drivers/usb/spca500_init.h \
+- drivers/usb/spca501_init.h \
+- drivers/usb/sp5xxfw2.h \
+- drivers/usb/spca505_init.h \
+- drivers/usb/spca506.h \
+- drivers/usb/spca508_init.h \
+- drivers/usb/spca561.h \
+- drivers/usb/zc3xx.h\
+- drivers/usb/tv8532.h\
+- drivers/usb/cx11646.h\
+- drivers/usb/mr97311.h\
+- drivers/usb/sn9cxxx.h\
+- drivers/usb/pac207.h\
+-
+-
+-drivers/usb/spcadecoder.o: drivers/usb/spcadecoder.h \
+- drivers/usb/spcagamma.h \
+-
++EXTRA_CFLAGS += $(DEFINES)
++
++spca5xx-objs := drivers/usb/spca5xx.o drivers/usb/spcadecoder.o
++
++obj-m += spca5xx.o
++obj-y := $(spca5xx-objs)
++
++O_TARGET := $(obj-m)
++
++-include $(TOPDIR)/Rules.make
+
+ endif # End kernel version test
+