# Makefile for rcl kernel modules
#
# RCL module depends on being in directory LinuxRK/RCL.
# Otherwise, change INCLUDEDIR.
#

INCLUDEDIR =../linux/include/
MODCFLAGS := -O6 -Wall -DCONFIG_KERNELD -DMODULE -D__KERNEL__ -DLINUX -D__RK__
CFLAGS = -I$(INCLUDEDIR)

all:		filter.o whileloop client-select client-select2 server-select

queue.o:	socketfilter.h $(INCLUDEDIR)/linux/version.h
		$(CC) $(CFLAGS) $(MODCFLAGS) -c  queue.c

socketfilter.o:	socketfilter.h rclmodule.h socketfilter.c queue.o
		$(CC) $(CFLAGS) $(MODCFLAGS) -c socketfilter.c 

rcl_syscall.o:	rclmodule.h rcl_syscall.c $(INCLUDEDIR)/linux/version.h
		$(CC) $(CFLAGS) $(MODCFLAGS) -c  rcl_syscall.c

rcl_uid_stats.o:	rclmodule.h rcl_uid_stats.c $(INCLUDEDIR)/linux/version.h
		$(CC) $(CFLAGS) $(MODCFLAGS) -c  rcl_uid_stats.c

rcl_manager.o:	rclmodule.h rcl_manager.c $(INCLUDEDIR)/linux/version.h
		$(CC) $(CFLAGS) $(MODCFLAGS) -c  rcl_manager.c

filtermain.o:	filtermain.c socketfilter.h rclmodule.h $(INCLUDEDIR)/linux/version.h
		$(CC) $(CFLAGS) $(MODCFLAGS) -c filtermain.c

setrcl.o:	setrcl.c socketfilter.h rclmodule.h $(INCLUDEDIR)/linux/version.h
		$(CC) $(CFLAGS) $(MODCFLAGS) -c setrcl.c

whileloop:	whileloop.c
		$(CC)  whileloop.c -o whileloop

server-select:	server-select.c
		$(CC)  server-select.c -o server-select

client-select:	client-select.c
		$(CC)  client-select.c -o client-select

client-select2:	client-select.c
		$(CC)  client-select.c -o client-select2

filter.o:	rcl_uid_stats.o rcl_manager.o rcl_syscall.o queue.o filtermain.o setrcl.o socketfilter.o 
		ld -m elf_i386 -r -o filter.o rcl_manager.o rcl_uid_stats.o filtermain.o setrcl.o\
		rcl_syscall.o queue.o socketfilter.o
		echo 
		echo I am dangerous. A smart person would sync right
		echo before the insmod.
		echo 
		echo 12.19.99 miyos: If you are using rk990622,
		echo you need to update linux/kernel/ksyms.c

clean:	
	rm -f *.o client-select2 client-select server-select whileloop



# Add the following lines (uncomment them) at the end of linux/kernel/ksysmc. 
# struct socket *sockfd_lookup(int fd, int *err);
# EXPORT_SYMBOL(sockfd_lookup);




#In order to to use syscal, rk_set_rcl()
# must place filter.o to /lib/module/2.2.10/fs/
# and  modify modules.dep there...
