# To make correct module for 2.5 and up:
# make -C path/to/kernel/src SUBDIRS=$PWD modules

ifndef MYPWD
MYPWD = $(shell pwd)
endif

# Grab version and other important stuff
include ${MYPWD}/../Makefile.inc

RPMNAME := $(PACKAGE)-$(TRUE_VERSION)

PARTNUM := $(DGNC_PART_NUM)

RELNOTES := $(DGNC_REL_NOTE)

MODDIR = $(shell echo $(BUILDROOT)@MODDIR@/misc)
LSMOD = @LSMOD@
RMMOD = @RMMOD@
INSMOD = @INSMOD@
NEW_TTY_LOCKING = @NEW_TTY_LOCKING@
NEW_TTY_BUFFERING = @NEW_TTY_BUFFERING@
REGISTER_TTYS_WITH_SYSFS = @REGISTER_TTYS_WITH_SYSFS@

# Send in some extra things...
EXTRA_CFLAGS += -I${MYPWD} -I${MYPWD}/include -I${MYPWD}/../commoninc\
	-I${MYPWD}/../dpa -DLINUX -DDG_NAME=\"$(RPMNAME)\"\
	-DDG_PART=\"$(PARTNUM)\" -DDGNC_TRACER

ifeq ($(NEW_TTY_LOCKING),Yes)
	EXTRA_CFLAGS += -DNEW_TTY_LOCKING
endif

ifeq ($(NEW_TTY_BUFFERING),Yes)
	EXTRA_CFLAGS += -DNEW_TTY_BUFFERING
endif

ifeq ($(REGISTER_TTYS_WITH_SYSFS),Yes)
	EXTRA_CFLAGS += -DREGISTER_TTYS_WITH_SYSFS
endif

# Conform to correct kbuild conventions...

obj-m += dgnc.o

dgnc-objs :=	dgnc_cls.o dgnc_driver.o\
		dgnc_mgmt.o dgnc_neo.o\
		dgnc_proc.o dgnc_trace.o dgnc_tty.o dgnc_sysfs.o

all: build


build:
	make -C @KERNEL_HEADERS@ SUBDIRS=$$PWD modules MYPWD=${MYPWD}


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

clobber: clean
	-rm -f *.i *.s
	rm -rf Makefile


install: build
	install -m 0755 -d $(MODDIR)
	install -m 0644 dgnc.ko $(MODDIR)


copymod:
	install -m 0644 dgnc.ko $(MODDIR)

        
uninstall: unload
	-rm -f $(MODDIR)/dgnc.ko


unload:
	if [ "`$(LSMOD) | grep -c dgnc`" -gt "0" ] ; then \
		$(RMMOD) dgnc; \
	fi
