LSMVER=-2.4
LSMDIR=../../lsm$(LSMVER)
PATCHDIR=../selinux/module
FLASKDIR=/usr/local/selinux/flask
INCDIR=/usr/local/selinux/include
BINDIR=/usr/local/selinux/bin

ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)

# Build the checkpolicy program.
all:
	$(MAKE) -C checkpolicy LSMDIR=../$(LSMDIR)

# Install files used by other components into /usr/local/selinux.
install: all
	mkdir -p $(FLASKDIR)
	mkdir -p $(INCDIR)/linux/flask
	mkdir -p $(INCDIR)/asm-$(ARCH)/flask
	mkdir -p $(BINDIR)
	( cd $(INCDIR); ln -sf asm-$(ARCH) asm)
	cd $(LSMDIR)/security/selinux/flask; install -m 644 access_vectors security_classes initial_sids $(FLASKDIR)
	cd $(LSMDIR)/security/selinux/include/linux/flask; install -m 644 *.h $(INCDIR)/linux/flask
	cd $(LSMDIR)/security/selinux/include/asm/flask; install -m 644 *.h $(INCDIR)/asm/flask
	cd $(LSMDIR)/include/asm; install -m 644 unistd.h $(INCDIR)/asm
	$(MAKE) -C checkpolicy install

# Clean checkpolicy.
clean:
	$(MAKE) -C checkpolicy clean

# Patch the kernel defconfig and Makefile.
insert: 
	cd $(LSMDIR); patch -p0 < $(PATCHDIR)/lsm$(LSMVER)-patch

# Unpatch the kernel defconfig and Makefile.
remove: 
	cd $(LSMDIR); patch -p0 -R < $(PATCHDIR)/lsm$(LSMVER)-patch

