#
# Makefile for building the checkpolicy program
#
PREFIX ?= ${DESTDIR}/usr
BINDIR ?= $(PREFIX)/bin

CFLAGS = -g -Wall -O2 -pipe -include global.h -I. -Iinclude

OBJS = ebitmap.o hashtab.o symtab.o sidtab.o avtab.o policydb.o services.o y.tab.o lex.yy.o queue.o write.o checkpolicy.o

LIBS=-lfl

all:  checkpolicy

checkpolicy: $(OBJS)
	$(CC) -o $@ $^ $(LIBS)

%.o: %.c 
	$(CC) $(CFLAGS) -o $@ -c $<

y.tab.o: y.tab.c
	$(CC) $(CFLAGS) -o $@ -c $<

lex.yy.o: lex.yy.c
	$(CC) $(CFLAGS) -o $@ -c $<

y.tab.c: policy_parse.y
	$(YACC) -d policy_parse.y

lex.yy.c: policy_scan.l
	$(LEX) policy_scan.l

install: all
	-mkdir -p $(BINDIR)
	install -m 755 checkpolicy $(BINDIR)	

relabel: install
	setfilecon system_u:object_r:checkpolicy_exec_t $(BINDIR)/checkpolicy

clean:
	rm -f checkpolicy $(OBJS) y.tab.c y.tab.h lex.yy.c 

