# Makefile for kstat
# FuSyS <fusys@s0ftpj.org>
# http://www.s0ftpj.org/

CC      = gcc -O2 -Wall -Werror
INCLUDE	= -I./include-linux/
SRC	= ./src-linux/

# If you don't want to compile as root, insert here the value contained
# in /proc/sys/kernel/cap-bound
CAP	= -D CAP_BOUND=`cat /proc/sys/kernel/cap-bound`
#CAP	= -D CAP_BOUND=value

# Here put the absolute path of an up to date System.map file
SMAP    = -D SYSTEMMAP=\"/boot/System.map\"

# Here put the address of kernel_module as found in an up to date
# System.map file
MODS	= -D HEXMODS=0xc01ec480

OBJS	= main.o if.o util.o ps.o kmem.o lkms.o syscalls.o
INSTALLDIR = /usr/sbin/
MANDIR	= /usr/man/man1/
BOX = `uname -n`

welcome:
	@echo -e "\n"
	@echo -e "\t--------------------------------"
	@echo -e "\t|  kstat 0.9 -- Linux version  |"
	@echo -e "\t|  by FuSyS  fusys@s0ftpj.org  |"
	@echo -e "\t|    http://www.s0ftpj.org/    |"
	@echo -e "\t| Please look at README file & |"
	@echo -e "\t| type 'make kstat' to compile |"
	@echo -e "\t--------------------------------"
	@echo -e "\n"

kstat:	
	@echo -e "Compiling kstat on $(BOX)...\n"
	$(CC) $(INCLUDE) -c $(SRC)main.c 
	$(CC) $(INCLUDE) -c $(SRC)if.c
	$(CC) $(INCLUDE) -c $(SRC)util.c
	$(CC) $(INCLUDE) -c $(SRC)kmem.c
	$(CC) $(INCLUDE) -c $(SRC)ps.c $(CAP)
	$(CC) $(INCLUDE) -c $(SRC)lkms.c $(MODS)
	$(CC) $(INCLUDE) -c $(SRC)syscalls.c $(SMAP)
	$(CC) $(INCLUDE) $(OBJS) -o kstat
	$(CC) -c $(SRC)knull.c
	strip kstat

install:
	cp kstat $(INSTALLDIR)
	mkdir /lib/modules/misc/ ; cp knull.o /lib/modules/misc/
	cp doc/kstat.1 $(MANDIR)

clean:
	rm -rf *.o kstat
