
KVER=$(shell uname -r)
PWD:= $(shell pwd)

ifneq "$(wildcard /usr/src/linux)" ""
  LINUX_SRC=/usr/src/linux
endif

ifneq "$(wildcard /usr/src/kernel-headers-$(KVER))" ""
  LINUX_SRC=/usr/src/kernel-headers-$(KVER)
endif

ifneq "$(wildcard /lib/modules/$(KVER)/build)" ""
  LINUX_SRC=/lib/modules/$(KVER)/build
endif

QUIET=0
ifeq ($(QUIET),0)
ifeq ($(MAKELEVEL),0)
$(info LINUX_VERSION: "$(KVER)")
$(info LINUX_SRC: "$(LINUX_SRC)")
endif
endif

obj-m += nslink.o
EXTRA_FLAGS += -D__SMP__ -O2 -g

.PHONY: all
all:
	$(MAKE) -C $(LINUX_SRC) SUBDIRS=$(PWD) modules
	make nslinkd
	make nslinkadmin
	make nslinkrelease

nslink.o: nslink.o nslink.c nslink_int.h nslink.h version.h

nslinkd: nslinkd.c parse.c nslink.h nslinkd.h version.h
	$(CC) -Wall -o nslinkd nslinkd.c parse.c

nslinkadmin: nslinkadmin.c
	$(CC) -Wall -o nslinkadmin nslinkadmin.c

nslinkrelease: nslinkrelease.c
	$(CC) -Wall -o nslinkrelease nslinkrelease.c

modules: nslink.o mod_nslink.o

.PHONY: install
install:
	./install.sh $(KVER)

.PHONY: uninstall
uninstall:
	./install.sh $(KVER) uninstall

clean::
	rm -rf *.o *.ko .nslink* nslinkd *~ lput vtst .kver nslinkadmin
	rm -rf nslink nslink.mod.c  nslinkrelease .tmp* *.symvers Module.markers
	rm -rf modules.order \#*\# .cache.mk
