#  Makefile to compile NI-KAL against the kernel
#
#   Copyright 2002-2010,
#  National Instruments Corporation.
#  All Rights reserved.

# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language. (LDD3, ch 2, pg 24)
ifneq ($(KERNELRELEASE),)

EXTRA_CFLAGS += $(shell echo $(KERNEL_VARIANTS))
EXTRA_CFLAGS += -DnNIKAL100_kTargetName=\"nikal.ko\"

obj-m := nikal.o

else

include Makefile.in
export KERNEL_VARIANTS

PWD := $(shell pwd)

NIKAL_MOD_DIR := kernel/natinst/nikal

CLIENT_SYMVERS := $(PWD)/../client/Module.symvers

all:
	@$(MAKE) --no-print-directory -C $(KERNELDIRECTORY) M=$(PWD) modules

copy-symvers:
	@if [ -f $(CLIENT_SYMVERS) ]; then           \
	  sed -i -e '/nNIKAL[0-9]\{3\}/d'            \
	         -e '/nNIVersion_NIKAL_getVersion/d' \
	         $(CLIENT_SYMVERS);                  \
	 fi
	@if [ -f $(PWD)/Module.symvers ]; then            \
	  cat $(PWD)/Module.symvers >> $(CLIENT_SYMVERS); \
	 fi

install: all copy-symvers
	@$(MAKE) --no-print-directory -C $(KERNELDIRECTORY) M=$(PWD) INSTALL_MOD_DIR=$(NIKAL_MOD_DIR) modules_install
	@/sbin/depmod -a $(KERNELTARGET)

uninstall:
	@if [ -e $(MODPATH)/nikal/nikal.ko ]; then \
	   $(RM) -rf $(MODPATH)/nikal/nikal.ko;    \
	   $(RMDIR) -p --ignore-fail-on-non-empty  \
	            $(MODPATH)/nikal;              \
	 fi

clean:
	@$(MAKE) --no-print-directory -s -C $(KERNELDIRECTORY) M=$(PWD) clean
	@$(RM) -rf Module.*

.PHONY: all install uninstall clean copy-symvers

endif
