# $Id: Makefile,v 1.15 2005/07/13 17:04:42 ynakam Exp $
sysconfdir = /etc
prefix = /usr/local
DISTRO=fc4
TYPE=easy
POLICYTYPE=$(DISTRO)-$(TYPE)
CONVERTER=/usr/local/bin/converter
LOADPOLICY=/usr/sbin/load_policy
CHECKPOLICY=/usr/bin/checkpolicy
FIXFILES=/sbin/fixfiles
RESTORECON=/sbin/restorecon
SELINUXCONF=$(sysconfdir)/selinux/config
#SELINUXTYPE=seedit-$(POLICYTYPE)
SELINUXTYPE=seedit

POLICYROOT=$(sysconfdir)/selinux/$(SELINUXTYPE)

CONFDIR=./$(POLICYTYPE)/simplified_policy
BASEPOLICYDIR=./$(POLICYTYPE)/base_policy
MACRODIR=./$(POLICYTYPE)/macros
OUTDIR =./sepolicy

dir:
	mkdir -p $(POLICYROOT)/policy
	mkdir -p $(POLICYROOT)/users/
	mkdir -p $(POLICYROOT)/contexts/files
	mkdir -p $(POLICYROOT)/contexts/files
	mkdir -p $(POLICYROOT)/contexts/users
	mkdir -p $(POLICYROOT)/src/policy
	mkdir -p $(POLICYROOT)/src/policy/sepolicy
	mkdir -p $(POLICYROOT)/src/policy/tmp

policy: dir
	mkdir -p $(OUTDIR);
	cat $(CONFDIR)/global $(CONFDIR)/*.a >$(CONFDIR)/all;
	$(CONVERTER) -i $(CONFDIR)/all -o $(OUTDIR)/test.conf -f $(OUTDIR)/file_contexts -b $(BASEPOLICYDIR);
	m4 -Imacros -s $(MACRODIR)/*.te $(OUTDIR)/test.conf > $(OUTDIR)/policy.conf;
	$(CHECKPOLICY) -o $(OUTDIR)/policy.`cat /selinux/policyvers` $(OUTDIR)/policy.conf;

install: policy
	cp $(OUTDIR)/policy.`cat /selinux/policyvers` $(POLICYROOT)/policy
	cp $(OUTDIR)/file_contexts $(POLICYROOT)/contexts/files/
	cp -r $(BASEPOLICYDIR)/contexts/*  $(POLICYROOT)/contexts
	cp $(OUTDIR)/file_contexts $(OUTDIR)/file_contexts.old
	touch $(POLICYROOT)/users/system.users
	touch $(POLICYROOT)/users/local.users
	cp -r $(POLICYTYPE)/* $(POLICYROOT)/src/policy
	cp -r $(OUTDIR)/* $(POLICYROOT)/src/policy/sepolicy
	cat Makefile.user |sed -e 's/^SELINUXTYPE=.*$$/SELINUXTYPE=$(SELINUXTYPE)/'> $(POLICYROOT)/src/policy/Makefile

postconfig: install
	cat $(SELINUXCONF) |sed -e 's/^SELINUX=.*$$/SELINUX=permissive/'|sed -e 's/^SELINUXTYPE=.*$$/SELINUXTYPE=$(SELINUXTYPE)/' >$(SELINUXCONF).tmp
	mv $(SELINUXCONF) $(SELINUXCONF).orig
	mv $(SELINUXCONF).tmp $(SELINUXCONF)
	touch /.autorelabel

