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