KERNEL_VERSION	:= `uname -r`
KERNEL_DIR	:= /lib/modules/$(KERNEL_VERSION)/build
INSTALL_MOD_DIR	:= usb/media
DRIVER_VERSION	:= `grep DRIVER_VERSION uvcvideo.c | grep define | grep -v DRIVER_VERSION_NUMBER | cut -d"\"" -f2`
PWD		:= $(shell pwd)

obj-m		:= uvcvideo.o

%.o : %.c
	gcc $(TEST_CFLAGS) -c -o $@ $<

all: uvcvideo extract

uvcvideo:
	@echo "Building USB Video Class driver..."
	@(cd $(KERNEL_DIR) && make -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules)

install:
	@echo "Installing USB Video Class driver..."
	@(cd $(KERNEL_DIR) && make -C $(KERNEL_DIR) SUBDIRS=$(PWD) INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) modules_install)
	depmod -ae

clean:
	-rm -f *.o *.ko .*.cmd .*.flags *.mod.c Modules.symvers
	-rm -rf .tmp_versions

extract: extract.c
	gcc -Wall -g `pkg-config --cflags --libs libusb` -o extract extract.c

dist:
	rm -fr linux-uvc-${DRIVER_VERSION}
	mkdir linux-uvc-${DRIVER_VERSION}
	cp uvcvideo.[ch] Makefile extract.c linux-uvc-${DRIVER_VERSION}/
	tar -zcf linux-uvc-${DRIVER_VERSION}.tar.gz linux-uvc-${DRIVER_VERSION}
	rm -fr linux-uvc-${DRIVER_VERSION}
