# Makefile for device driver for test board DAQ
# Jacobsen 20010717

# KERNELDIR can be speficied on the command line or environment
ifndef KERNELDIR
        KERNELDIR = /usr/src/linux
endif
# The headers are taken from the kernel
        INCLUDEDIR = $(KERNELDIR)/include 

CLASSPATH = . # This is where we find local classes

INSTALL_DRIVER = /usr/local/dom/driver
INSTALL_RC     = /etc/rc.d/init.d

CFLAGS +=  -Wall -Wno-unused-function -D__KERNEL__ -DMODULE -I$(INCLUDEDIR) -O2 -I../portio -I/lib/modules/`uname -r`/build/include 

all:
	make dh.o # kh.o java

java:
	make DHMessenger.class exerciseDriver.class simulateDAQ.class simulateDOMs.class

simulateDAQ.class: simulateDAQ.java DHMessenger.class
	javac -classpath $(CLASSPATH) simulateDAQ.java

simulateDOMs.class: simulateDOMs.java DHMessenger.class
	javac -classpath $(CLASSPATH) simulateDOMs.java

exerciseDriver.class: exerciseDriver.java DHMessenger.class
	javac -classpath $(CLASSPATH) exerciseDriver.java

DHMessenger.class: DHMessenger.java
	javac -classpath $(CLASSPATH) DHMessenger.java

doc: dh.c dh.h
	doxygen Doxyfile.dh

kh.o: kh.c kh.h 
	gcc $(CFLAGS) -c kh.c

tb.o: tb.c tb.h ../portio/portio.h
	gcc $(CFLAGS) -c tb.c

dh.o: dh.c dh.h
	gcc $(CFLAGS) -c dh.c

verbose:
	gcc $(CFLAGS) -DVERBOSE -c tb.c

testaddr: testaddr.c ../portio/portio.h
	gcc -Wall -I../portio -o testaddr testaddr.c

insmod: 
	/sbin/insmod tb.o
rmmod:
	/sbin/rmmod tb

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

install:
	install tb.o $(INSTALL_DRIVER)
	install dh.o $(INSTALL_DRIVER)

