#
## Makefile for SpeedTouch USB ADSL Modem
#

#include kernel config

ifeq (`uname -s` , Linux)
	include /usr/src/linux/.config
endif

# sarlib path
SARLIB:=../sarlib/

#make parameters
CC=gcc
CFLAGS := -O2 -Wstrict-prototypes  -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -DCPU=686 -march=i686 -Wall -DMODULE -D__KERNEL__ -DLINUX
INCLUDES := -I/usr/src/linux/include/ -I$(SARLIB)/
VERSION :=$(shell cat VERSION)
KVERSION := $(shell cat VERSION | tr '.' ',');
MODULES= speedtouch.o $(SARLIB)/sarlib.o
LINUXVERSION := $(shell cat /usr/include/linux/version.h | grep UTS_RELEASE | cut -d '"' -f 2)
DBGMODULES= speeddebug.o $(SARLIB)/sarlibdbg.o

ifdef CONFIG_SMP
        CFLAGS += -D__SMP__
endif

ifdef CONFIG_MODVERSIONS
CFLAGS += -DMODVERSIONS -include speedtouch.ver
endif


all: module debug

debug: speeddbg.o

module: speedtch.o

test: sartest


#
## SARLib entries
#
$(SARLIB)/sarlib.o: $(SARLIB)/sarlib.c $(SARLIB)/sarlib.h
	make -C $(SARLIB)/

$(SARLIB)/sarlibdbg.o: $(SARLIB)/sarlib.c $(SARLIB)/sarlib.h
	make -C $(SARLIB)/


#
## Speed Touch USB entries
#

version.h: VERSION
	@ ( \
	echo "#ifndef _SPEEDTOUCH_VERSION_H_"; \
	echo "#define _SPEEDTOUCH_VERSION_H_"; \
	echo "const char *udsl_version=\""$(VERSION)"\";"; \
	echo "#endif"; \
	) > version.h

speedtouch.ver: 
	$(CC) $(INCLUDES) -E speedtouch.c -D__GENKSYMS__ | genksyms -w -k $(LINUXVERSION) 

speedtouch.o: speedtouch.c Makefile version.h
	$(CC) $(CFLAGS) $(INCLUDES) -c speedtouch.c -o $@

speeddebug.o: speedtouch.c Makefile version.h
	$(CC) $(CFLAGS) $(INCLUDES) -DDEBUG -c speedtouch.c -o $@

speedtch.o: $(MODULES)
	$(LD) -r -o $@ $- $(MODULES)

speeddbg.o: $(DBGMODULES)
	$(LD) -r -o $@ $- $(DBGMODULES)

sartest: testsarlib.c
	$(CC) -lz -ggdb testsarlib.c -o sartest

package: clean
	(cd ..; tar zcvf speedtouch-$(VERSION).tar.gz SpeedTouch/COPYING SpeedTouch/COPYING.GPL SpeedTouch/ChangeLog SpeedTouch/INSTALL SpeedTouch/Makefile SpeedTouch/VERSION SpeedTouch/speedtouch.c );
	@sync; 

binpackage: speeddbg.o speedtch.o
	(cd ..; tar zcvf SpeedTouch-`arch`.tgz SpeedTouch/speeddbg.o SpeedTouch/speedtch.o);
	@sync;

install: speedtch.o
	mkdir -p /lib/modules/`uname -r`/kernel/drivers/usb
	cp speedtch.o /lib/modules/`uname -r`/kernel/drivers/usb
	/sbin/depmod -aq


clean:
	/bin/rm -f speedtouch.o sarlib.o sartest speedtch.o speeddebug.o speeddbg.o version.h
