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
 
