#################################### OPTIONS ##################################
# Change this to /usr/include if you get header file errors
INCLUDEDIR = /lib/modules/`uname -r`/build/include

CFLAGS = -D__KERNEL__ -DMODULE -DOUTSIDE_KERNEL -O2 -Wall -Wstrict-prototypes \
	-fomit-frame-pointer -I$(INCLUDEDIR) 

CC=gcc

#################################### TARGETS ##################################

# Make with standard options for cameras and video capture. No tuner support.
all: ov511.o ov511_decomp.o ov518_decomp.o

# Make with i2c support (for TV tuners)
i2c: CFLAGS += -DOV511_ENABLE_I2C
i2c: all i2c-algo-usb.o

# Just make the MMX decompressor(s)
mmx: ov511_mmx_decomp.o

# Install on a 2.4/2.5 system
install: all
	@echo "NOTE: For 2.2 series kernels, use \"make install-2.2\" instead"
	install *.o /lib/modules/`uname -r`/kernel/drivers/usb/
	/sbin/depmod -ae

# Install on a 2.2 system
install-2.2: all
	install *.o /lib/modules/`uname -r`/usb/
	/sbin/depmod -ae

clean:
	rm -f *.o *~ core *.i

#################################### RULES ####################################

ov511.o: ov511.c ov511.h
	$(CC) -c $(CFLAGS) ov511.c

ov511_decomp.o: ov511_decomp.c ov511.h
	$(CC) -c $(CFLAGS) ov511_decomp.c

ov511_mmx_decomp.o: ov511_mmx_decomp.c ov511.h
	$(CC) -c $(CFLAGS) ov511_mmx_decomp.c

ov518_decomp.o: ov518_decomp.c ov511.h
	$(CC) -c $(CFLAGS) ov518_decomp.c

i2c-algo-usb.o: i2c-algo-usb.c i2c-algo-usb.h
	$(CC) -c $(CFLAGS) i2c-algo-usb.c

