PREFIX ?= $(DESTDIR)/usr
BINDIR ?= $(PREFIX)/bin
MANDIR ?= $(PREFIX)/share/man
LIBDIR ?= $(PREFIX)/lib
INCLUDEDIR ?= $(PREFIX)/include
LDLIBS = -lsepol -L$(LIBDIR)
SECILC = secilc
SECILC_SRCS := secilc.c
SECILC_OBJS := $(patsubst %.c,%.o,$(SECILC_SRCS))
SECIL2CONF = secil2conf
SECIL2CONF_SRCS := secil2conf.c
SECIL2CONF_OBJS := $(patsubst %.c,%.o,$(SECIL2CONF_SRCS))
SECILC_MANPAGE = secilc.8
SECIL2CONF_MANPAGE = secil2conf.8
XMLTO = xmlto
CFLAGS ?= -Wall -Wshadow -Wextra -Wundef -Wmissing-format-attribute -Wcast-align -Wstrict-prototypes -Wpointer-arith -Wunused
override CFLAGS += -I$(INCLUDEDIR) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
all: $(SECILC) $(SECIL2CONF) man
$(SECILC): $(SECILC_OBJS)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
test: $(SECILC)
./$(SECILC) test/policy.cil
$(SECIL2CONF): $(SECIL2CONF_OBJS)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
man: $(SECILC_MANPAGE) $(SECIL2CONF_MANPAGE)
$(SECILC_MANPAGE): $(SECILC_MANPAGE).xml
$(XMLTO) man $(SECILC_MANPAGE).xml
$(SECIL2CONF_MANPAGE): $(SECIL2CONF_MANPAGE).xml
$(XMLTO) man $(SECIL2CONF_MANPAGE).xml
install: all man
-mkdir -p $(BINDIR)
-mkdir -p $(MANDIR)/man8
install -m 755 $(SECILC) $(BINDIR)
install -m 755 $(SECIL2CONF) $(BINDIR)
install -m 644 $(SECILC_MANPAGE) $(MANDIR)/man8
install -m 644 $(SECIL2CONF_MANPAGE) $(MANDIR)/man8
doc:
$(MAKE) -C docs
clean:
rm -f $(SECILC)
rm -f $(SECILC_OBJS)
rm -f $(SECIL2CONF)
rm -f $(SECIL2CONF_OBJS)
rm -f policy.*
rm -f file_contexts
rm -f $(SECILC_MANPAGE)
rm -f $(SECIL2CONF_MANPAGE)
relabel:
.PHONY: all clean test install doc relabel man