all: remount.exe initrd-loop.img makesyaoranconf.exe poled.exe poled_old.exe savepolicy ccs-auditd findtemp makelink dumplink makesymlink dumpsymlink syspol.exe setlevel
obsolete: obsolete_makelink obsolete_lsdir obsolete_movlog obsolete_chroot_su obsolete_chksymlink
kernel_test: rofstest logtest pathnametest bindtest
example: groovy honey candy chaplet gettoken checktoken falsh

remount.exe: remount.c
	gcc -Wall -O3 -o remount.exe remount.c

initrd-loop.img: linuxrc.c
	gcc -Wall -O3 --static -s -o linuxrc linuxrc.c
	mkdir -p tmp
	touch tmp/initrd-loop.tmp
	mke2fs -q -F -m 0 -b 1024 tmp/initrd-loop.tmp 512
	mount -o loop tmp/initrd-loop.tmp tmp
	mkdir tmp/dev
	mknod tmp/dev/console c 5 1
	mknod tmp/dev/null    c 1 3
	mknod tmp/dev/ram     b 1 1
	mknod tmp/dev/systty  c 4 0
	mknod tmp/dev/tty1    c 4 1
	mknod tmp/dev/tty2    c 4 2
	mknod tmp/dev/tty3    c 4 3
	mknod tmp/dev/tty4    c 4 4
	mv linuxrc tmp/
	sync
	umount -d tmp
	gzip -9 < tmp/initrd-loop.tmp > initrd-loop.img
	unlink tmp/initrd-loop.tmp
	rmdir tmp

makesyaoranconf.exe: makesyaoranconf.c
	gcc -Wall -O3 -o makesyaoranconf.exe makesyaoranconf.c

poled.exe: poled.c
	gcc -Wall -O3 -lncurses -o poled.exe poled.c

poled_old.exe: poled_old.c
	gcc -Wall -O3 -lncurses -o poled_old.exe poled_old.c

savepolicy: savepolicy.c
	gcc -Wall -O3 -o savepolicy savepolicy.c

ccs-auditd: ccs-auditd.c
	gcc -Wall -O3 -o ccs-auditd ccs-auditd.c

findtemp: findtemp.c
	gcc -Wall -O3 -o findtemp findtemp.c

makelink: makelink.cpp
	gcc -Wall -O3 -lstdc++ -o makelink makelink.cpp

dumplink: dumplink.cpp
	gcc -Wall -O3 -lstdc++ -o dumplink dumplink.cpp

makesymlink: makesymlink.cpp
	gcc -Wall -O3 -lstdc++ -o makesymlink makesymlink.cpp

dumpsymlink: dumpsymlink.cpp
	gcc -Wall -O3 -lstdc++ -o dumpsymlink dumpsymlink.cpp

syspol.exe: syspol.c
	gcc -Wall -O3 -lncurses -lreadline -o syspol.exe syspol.c

setlevel: setlevel.c
	gcc -Wall -O3 -o setlevel setlevel.c

obsolete_makelink: obsolete_makelink.c
	gcc -Wall -O3 -o obsolete_makelink obsolete_makelink.c

obsolete_lsdir: obsolete_lsdir.c
	gcc -Wall -O3 -o obsolete_lsdir obsolete_lsdir.c

obsolete_movlog: obsolete_movlog.c
	gcc -Wall -O3 -o obsolete_movlog obsolete_movlog.c

obsolete_chroot_su: obsolete_chroot_su.c
	gcc -Wall -O3 -o obsolete_chroot_su obsolete_chroot_su.c

obsolete_chksymlink: obsolete_chksymlink.c
	gcc -Wall -O3 -o obsolete_chksymlink obsolete_chksymlink.c

rofstest: rofstest.c
	gcc -Wall -O3 -o rofstest rofstest.c

logtest: logtest.c
	gcc -Wall -O3 -o logtest logtest.c

pathnametest: pathnametest.c
	gcc -Wall -O3 -o pathnametest pathnametest.c

bindtest: bindtest.c
	gcc -Wall -O3 -o bindtest bindtest.c

groovy: groovy.c
	gcc -Wall -O3 -o groovy groovy.c

honey: honey.c
	gcc -Wall -O3 -o honey honey.c

candy: candy.c
	gcc -Wall -O3 -o candy candy.c

chaplet: chaplet.c
	gcc -Wall -O3 -o chaplet chaplet.c

gettoken: gettoken.c
	gcc -Wall -O3 -o gettoken gettoken.c

checktoken: checktoken.c
	gcc -Wall -O3 -o checktoken checktoken.c

falsh: falsh.c
	gcc -Wall -O3 -lncurses -lreadline -o falsh falsh.c

clean:
	rm -f remount.exe initrd-loop.img makesyaoranconf.exe poled.exe poled_old.exe savepolicy ccs-auditd findtemp makelink dumplink makesymlink dumpsymlink syspol.exe setlevel
	rm -f obsolete_makelink obsolete_lsdir obsolete_movlog obsolete_chroot_su obsolete_chksymlink
	rm -f rofstest logtest pathnametest bindtest
	rm -f groovy honey candy chaplet gettoken checktoken falsh
	rm -f *~
