91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| PREFIX ?= /usr
 | |
| BINDIR ?= $(PREFIX)/bin
 | |
| MANDIR ?= $(PREFIX)/share/man
 | |
| 
 | |
| SECILC = secilc
 | |
| SECILC_SRCS := secilc.c
 | |
| SECILC_OBJS := $(patsubst %.c,%.o,$(SECILC_SRCS))
 | |
| 
 | |
| SECIL2CONF = secil2conf
 | |
| SECIL2CONF_SRCS := secil2conf.c
 | |
| SECIL2CONF_OBJS := $(patsubst %.c,%.o,$(SECIL2CONF_SRCS))
 | |
| 
 | |
| SECIL2TREE = secil2tree
 | |
| SECIL2TREE_SRCS := secil2tree.c
 | |
| SECIL2TREE_OBJS := $(patsubst %.c,%.o,$(SECIL2TREE_SRCS))
 | |
| 
 | |
| SECILC_MANPAGE = secilc.8
 | |
| SECIL2CONF_MANPAGE = secil2conf.8
 | |
| SECIL2TREE_MANPAGE = secil2tree.8
 | |
| XMLTO = xmlto
 | |
| DIFF = diff
 | |
| 
 | |
| CHECKPOLICY = checkpolicy
 | |
| POL_VERS = $(shell $(CHECKPOLICY) -V | cut -f 1 -d ' ')
 | |
| 
 | |
| CFLAGS ?= -Wall -Wshadow -Wextra -Wundef -Wmissing-format-attribute -Wcast-align -Wstrict-prototypes -Wpointer-arith -Wunused
 | |
| 
 | |
| override CFLAGS += -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
 | |
| override LDLIBS += -lsepol
 | |
| 
 | |
| all: $(SECILC) $(SECIL2CONF) $(SECIL2TREE) man
 | |
| 
 | |
| $(SECILC): $(SECILC_OBJS)
 | |
| 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
 | |
| 
 | |
| test: $(SECILC)
 | |
| 	./$(SECILC) test/policy.cil
 | |
| 	./$(SECILC) -c $(POL_VERS) -O -M 1 -f /dev/null -o opt-actual.bin test/opt-input.cil
 | |
| 	$(CHECKPOLICY) -b -C -M -o opt-actual.cil opt-actual.bin >/dev/null
 | |
| 	$(DIFF) test/opt-expected.cil opt-actual.cil
 | |
| 
 | |
| $(SECIL2CONF): $(SECIL2CONF_OBJS)
 | |
| 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
 | |
| 
 | |
| $(SECIL2TREE): $(SECIL2TREE_OBJS)
 | |
| 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
 | |
| 
 | |
| man: $(SECILC_MANPAGE) $(SECIL2CONF_MANPAGE) $(SECIL2TREE_MANPAGE)
 | |
| 
 | |
| $(SECILC_MANPAGE): $(SECILC_MANPAGE).xml
 | |
| 	$(XMLTO) man $(SECILC_MANPAGE).xml
 | |
| 
 | |
| $(SECIL2CONF_MANPAGE): $(SECIL2CONF_MANPAGE).xml
 | |
| 	$(XMLTO) man $(SECIL2CONF_MANPAGE).xml
 | |
| 
 | |
| $(SECIL2TREE_MANPAGE): $(SECIL2TREE_MANPAGE).xml
 | |
| 	$(XMLTO) man $(SECIL2TREE_MANPAGE).xml
 | |
| 
 | |
| install: all man
 | |
| 	-mkdir -p $(DESTDIR)$(BINDIR)
 | |
| 	-mkdir -p $(DESTDIR)$(MANDIR)/man8
 | |
| 	install -m 755 $(SECILC) $(DESTDIR)$(BINDIR)
 | |
| 	install -m 755 $(SECIL2CONF) $(DESTDIR)$(BINDIR)
 | |
| 	install -m 755 $(SECIL2TREE) $(DESTDIR)$(BINDIR)
 | |
| 	install -m 644 $(SECILC_MANPAGE) $(DESTDIR)$(MANDIR)/man8
 | |
| 	install -m 644 $(SECIL2CONF_MANPAGE) $(DESTDIR)$(MANDIR)/man8
 | |
| 	install -m 644 $(SECIL2TREE_MANPAGE) $(DESTDIR)$(MANDIR)/man8
 | |
| 
 | |
| doc:
 | |
| 	$(MAKE) -C docs
 | |
| 
 | |
| clean:
 | |
| 	rm -f $(SECILC)
 | |
| 	rm -f $(SECILC_OBJS)
 | |
| 	rm -f $(SECIL2CONF)
 | |
| 	rm -f $(SECIL2CONF_OBJS)
 | |
| 	rm -f $(SECIL2TREE)
 | |
| 	rm -f $(SECIL2TREE_OBJS)
 | |
| 	rm -f policy.*
 | |
| 	rm -f file_contexts
 | |
| 	rm -f $(SECILC_MANPAGE)
 | |
| 	rm -f $(SECIL2CONF_MANPAGE)
 | |
| 	rm -f $(SECIL2TREE_MANPAGE)
 | |
| 	rm -f opt-actual.cil
 | |
| 	rm -f opt-actual.bin
 | |
| 	$(MAKE) -C docs clean
 | |
| 
 | |
| relabel:
 | |
| 
 | |
| .PHONY: all clean test install doc relabel man
 |