#
# Makefile version = "$Id: Makefile24,v 1.5 2003/10/08 21:29:33 scottk Exp $"
#

# Compiler and flags to use when compiling the driver itself.
KCC = @KGCC@
CC = @KGCC@
KCFLAGS = @KCFLAGS@
KINC = @KINC@
LINUXSRC = @KERNEL_HEADERS@
SMP = @SMP@
MODDIR = $(shell echo $(BUILDROOT)@MODDIR@/misc)
LSMOD = @LSMOD@
RMMOD = @RMMOD@
INSMOD = @INSMOD@

include ../Makefile.inc

#
# variables
#

GCCDIR=$(shell $(CC) --print-libgcc | xargs dirname)

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

PARTNUM := $(DGNC_PART_NUM)

RELNOTES := $(DGNC_REL_NOTE)

INCLUDES = -I$(LINUXSRC)/include -I./include -I../include -I../dpa

VERFILE=@KERNEL_HEADERS@/include/linux/modversions.h
MODVERSIONS=$(shell [ -f $(VERFILE) ] && echo -DMODVERSIONS -include $(VERFILE) )

KCFLAGS += -O2 -D__KERNEL__ -DMODULE  -DLINUX \
	-DDG_NAME=\"$(RPMNAME)\" -DDG_PART=\"$(PARTNUM)\" $(INCLUDES) \
	-Wall -Wstrict-prototypes -pipe -fno-strength-reduce\
	-DSBINDIR=\"$(SBINDIR)\" -DDGNC_TRACER $(MODVERSIONS)\
	-D@DISTRO@

ifeq ($(SMP),SMP)
	KCFLAGS += -D__SMP__ -DCONFIG_X86_LOCAL_APIC
endif

MODULES=	dgnc.o

OBJECTS=	dgnc_cls.o dgnc_driver.o\
		dgnc_mgmt.o dgnc_neo.o\
		dgnc_proc.o dgnc_trace.o dgnc_tty.o


all:	build

build:	$(MODULES)

clean: 
	-rm -f *~ *.o

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


install: build
	install -m 0755 -d $(MODDIR)
	install -m 0644 $(MODULES) $(MODDIR)

copymod:
	install -m 0644 $(MODULES) $(MODDIR)

postinstall:
	/sbin/depmod -a

preuninstall:

uninstall: unload
	-rm -f $(MODDIR)/$(PACKAGE).o

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

# convenient target alias
#$(PACKAGE): $(PACKAGE).o
#	-touch $(PACKAGE)
#	-rm $(PACKAGE)


.lastinstall:
	touch .lastinstall
 
dgnc.o: $(OBJECTS)
	$(LD) -r -nostartfiles -o $@ $(OBJECTS) -L$(GCCDIR) -lgcc

dgnc_driver.o: dgnc_driver.c include/dgnc_driver.h
	$(KCC) $(KCFLAGS) -c dgnc_driver.c -o dgnc_driver.o

dgnc_proc.o: dgnc_proc.c include/dgnc_driver.h include/dgnc_proc.h
	$(KCC) $(KCFLAGS) -c dgnc_proc.c -o dgnc_proc.o

dgnc_trace.o: dgnc_trace.c include/dgnc_driver.h include/dgnc_trace.h
	$(KCC) $(KCFLAGS) -c dgnc_trace.c -o dgnc_trace.o

dgnc_tty.o: dgnc_tty.c include/dgnc_driver.h include/dgnc_tty.h
	$(KCC) $(KCFLAGS) -c dgnc_tty.c -o dgnc_tty.o

dgnc_neo.o: dgnc_neo.c include/dgnc_driver.h include/dgnc_neo.h
	$(KCC) $(KCFLAGS) -c dgnc_neo.c -o dgnc_neo.o

dgnc_cls.o: dgnc_cls.c include/dgnc_driver.h include/dgnc_cls.h
	$(KCC) $(KCFLAGS) -c dgnc_cls.c -o dgnc_cls.o

dgnc_mgmt.o: dgnc_mgmt.c include/dgnc_driver.h include/dgnc_mgmt.h
	$(KCC) $(KCFLAGS) -c dgnc_mgmt.c -o dgnc_mgmt.o
