Home | History | Annotate | Download | only in secilc
      1 PREFIX ?= $(DESTDIR)/usr
      2 BINDIR ?= $(PREFIX)/bin
      3 MANDIR ?= $(PREFIX)/share/man
      4 LIBDIR ?= $(PREFIX)/lib
      5 INCLUDEDIR ?= $(PREFIX)/include
      6 
      7 SECILC = secilc
      8 SECILC_SRCS := secilc.c
      9 SECILC_OBJS := $(patsubst %.c,%.o,$(SECILC_SRCS))
     10 
     11 SECIL2CONF = secil2conf
     12 SECIL2CONF_SRCS := secil2conf.c
     13 SECIL2CONF_OBJS := $(patsubst %.c,%.o,$(SECIL2CONF_SRCS))
     14 
     15 SECILC_MANPAGE = secilc.8
     16 SECIL2CONF_MANPAGE = secil2conf.8
     17 XMLTO = xmlto
     18 
     19 CFLAGS ?= -Wall -Wshadow -Wextra -Wundef -Wmissing-format-attribute -Wcast-align -Wstrict-prototypes -Wpointer-arith -Wunused
     20 
     21 override CFLAGS += -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
     22 override LDLIBS += -lsepol
     23 
     24 all: $(SECILC) $(SECIL2CONF) man
     25 
     26 $(SECILC): $(SECILC_OBJS)
     27 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
     28 
     29 test: $(SECILC)
     30 	./$(SECILC) test/policy.cil
     31 
     32 $(SECIL2CONF): $(SECIL2CONF_OBJS)
     33 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
     34 
     35 man: $(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 
     43 install: 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 
     51 doc:
     52 	$(MAKE) -C docs
     53 
     54 clean:
     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 
     64 relabel:
     65 
     66 .PHONY: all clean test install doc relabel man
     67