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