# Installation directories.
PREFIX ?= $(DESTDIR)/usr
LIBDIR ?= $(PREFIX)/lib
SHLIBDIR ?= $(DESTDIR)/lib
INCLUDEDIR ?= $(PREFIX)/include

DEFAULT_SEMOD_CONF_LOCATION=/usr/share/semod/semod.conf

LEX = flex
LFLAGS = -s
YACC = bison
YFLAGS = -d

LIBVERSION = 1

LIBA=libsemanage.a 
OBJS= $(patsubst %.c,%.o,$(wildcard *.c)) conf-scan.o conf-parse.o
CFLAGS ?= -Wall -W -Wundef -Wmissing-noreturn -Wmissing-format-attribute

override CFLAGS += -I. -I../include -I$(INCLUDEDIR) -D_GNU_SOURCE \
                   -DDEFAULT_SEMOD_CONF_LOCATION='"$(DEFAULT_SEMOD_CONF_LOCATION)"'

all: $(LIBA)

$(LIBA): $(OBJS)
	$(AR) rcs $@ $^
	ranlib $@

conf-scan.c: conf-scan.l conf-parse.h
	$(LEX) $(LFLAGS) -t $< > $@

conf-parse.c: conf-parse.y
	$(YACC) $(YFLAGS) -o $@ $<

conf-parse.h: conf-parse.c

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

install: all
	test -d $(LIBDIR) || install -m 755 -d $(LIBDIR)
	install -m 644 $(LIBA) $(LIBDIR)
	install -m 644 -D semod.conf $(DESTDIR)/$(DEFAULT_SEMOD_CONF_LOCATION)

clean: 
	rm -f $(OBJS) $(LIBA) conf-scan.c conf-parse.c conf-parse.h

