1PREFIX ?= $(DESTDIR)/usr 2BINDIR ?= $(PREFIX)/bin 3MANDIR ?= $(PREFIX)/share/man 4LIBDIR ?= $(PREFIX)/lib 5INCLUDEDIR ?= $(PREFIX)/include 6 7LDLIBS = -lsepol -L$(LIBDIR) 8SECILC = secilc 9SECILC_SRCS := secilc.c 10SECILC_OBJS := $(patsubst %.c,%.o,$(SECILC_SRCS)) 11 12# The secilc man page: 13MANPAGE = secilc.8 14XMLTO = xmlto 15 16CFLAGS ?= -Wall -Wshadow -Wextra -Wundef -Wmissing-format-attribute -Wcast-align -Wstrict-prototypes -Wpointer-arith -Wunused 17 18override CFLAGS += -I$(INCLUDEDIR) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 19 20$(SECILC): $(SECILC_OBJS) 21 $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS) 22 23all: $(SECILC) man 24 25test: $(SECILC) 26 ./$(SECILC) test/policy.cil 27 28man: $(MANPAGE).xml 29 $(XMLTO) man $(MANPAGE).xml 30 31install: all man 32 -mkdir -p $(BINDIR) 33 -mkdir -p $(MANDIR)/man8 34 install -m 755 $(SECILC) $(BINDIR) 35 install -m 644 $(MANPAGE) $(MANDIR)/man8 36 37doc: 38 $(MAKE) -C docs 39 40clean: 41 rm -f $(SECILC) 42 rm -f $(SECILC_OBJS) 43 rm -f policy.* 44 rm -f file_contexts 45 rm -f $(MANPAGE) 46 47relabel: 48 49.PHONY: all clean test install doc relabel 50