RELEASE = $(shell cat /etc/redhat-release 2> /dev/null)
IS_RHEL = $(findstring Red Hat Enterprise Linux, $(RELEASE))
ifeq ($(IS_RHEL),)
  DJPROBE_DIR = djprobe-20060125
else
  DJPROBE_DIR = djprobe-20060125.RHEL4U1
endif
CTR_DIR = ctr
ifdef USE_SYS_RELAYFS
  INC_PATH = $(shell uname -r)
  ifeq ($(shell find /lib/modules/$(INC_PATH)/build/include -name 'relay.h'),)
    RELAYFS_INCLUDE_OPT =
  else
    RELAYFS_INCLUDE_OPT = -DIS_6UP_RELFS
  endif
else
  RELAYFS_DIR = relayfs.module-2.6.14.3
  RELAYFS_INCLUDE_OPT = -I$(SUBDIRS)/$(RELAYFS_DIR)
endif
INSTALL_PATH = /lib/modules/$(shell uname -r)/kernel/drivers/btrax
INSTALL_BIN_PATH = /usr/local/bin
DRIVERS = $(CTR_DIR)/ctr_mod.ko bt_mod.ko bt_on_off_mod.ko
ifndef USE_SYS_KPROBES
  DRIVERS += $(DJPROBE_DIR)/mod_djprobe.ko
endif
ifndef USE_SYS_RELAYFS
  DRIVERS += $(RELAYFS_DIR)/relayfs.ko
endif

DEBUG_FLAG =
#DEBUG_FLAG = -DDEBUG

EXTRA_CFLAGS := -I$(SUBDIRS)/$(CTR_DIR) $(RELAYFS_INCLUDE_OPT) \
		-I$(SUBDIRS)/../include \
		$(USE_SYS_RELAYFS) $(DEBUG_FLAG) $(CHK_SYSCALL_TIME_FLAG)
ifdef USE_SYS_KPROBES
  EXTRA_CFLAGS += $(USE_SYS_KPROBES)
else
  EXTRA_CFLAGS += -I$(SUBDIRS)/$(DJPROBE_DIR)
endif

KERN_DIR = /lib/modules/$(shell uname -r)/source

ifneq ($(KERNELRELEASE),)

obj-m := bt_mod.o bt_on_off_mod.o
obj-m += $(CTR_DIR)/
ifndef USE_SYS_RELAYFS
  obj-m += $(RELAYFS_DIR)/
endif
ifndef USE_SYS_KPROBES
  obj-m += $(DJPROBE_DIR)/
endif

ifdef DEBUG_FLAG
  bt_mod-y := bt_main.o bt_proc.o bt_relfs.o bt_hook.o bt_irq.o ../../serial.o
  bt_on_off_mod-y := bt_on_off.o
else
  bt_mod-y := bt_main.o bt_proc.o bt_relfs.o bt_hook.o bt_irq.o
  bt_on_off_mod-y := bt_on_off.o
endif

clean-files := *.o *.ko *.mod.[co] Module.symvers
endif

default:
	$(MAKE) -C $(KERN_DIR) SUBDIRS=$(CURDIR) modules

clean:
ifndef USE_SYS_KPROBES
	$(MAKE) -C $(DJPROBE_DIR) clean
endif
ifndef USE_SYS_RELAYFS
	$(MAKE) -C $(RELAYFS_DIR) clean
endif
	$(MAKE) -C $(KERN_DIR) SUBDIRS=$(CURDIR) clean
	rm -rf ../common/*.o

install:
	$(MAKE)
	@( if [ ! -d $(INSTALL_PATH) ]; then \
	       echo "Making directory " $(INSTALL_PATH); \
	       mkdir -p $(INSTALL_PATH); \
	   fi; \
	   for drv in $(DRIVERS); do \
	       install -c -m 644 $$drv $(INSTALL_PATH); \
	   done )
	[ -x /sbin/depmod ] && /sbin/depmod -A
	install $(DJPROBE_DIR)/disym.sh $(INSTALL_BIN_PATH)/__bt_djp_disym

uninstall:
	rm -rf $(INSTALL_PATH)
	[ -x /sbin/depmod ] && /sbin/depmod -A
	rm -f $(INSTALL_BIN_PATH)/__bt_djp_disym

