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)) # The secilc man page: MANPAGE = secilc.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) man $(SECILC): $(SECILC_OBJS) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS) test: $(SECILC) ./$(SECILC) test/policy.cil man: $(MANPAGE).xml $(XMLTO) man $(MANPAGE).xml install: all man -mkdir -p $(BINDIR) -mkdir -p $(MANDIR)/man8 install -m 755 $(SECILC) $(BINDIR) install -m 644 $(MANPAGE) $(MANDIR)/man8 doc: $(MAKE) -C docs clean: rm -f $(SECILC) rm -f $(SECILC_OBJS) rm -f policy.* rm -f file_contexts rm -f $(MANPAGE) relabel: .PHONY: all clean test install doc relabel man