672f96f012
When running "make all" several times in the root directory of the project, the following lines always appear (and the command takes some seconds to complete on my system with a slow hard drive): xmlto man secilc.8.xml Note: Writing secilc.8 This is because "make man" always builds secilc.8 even though secilc.8.xml has not been modified. Introduce an intermediate target to avoid this behavior. Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org>
51 lines
1 KiB
Makefile
51 lines
1 KiB
Makefile
PREFIX ?= $(DESTDIR)/usr
|
|
BINDIR ?= $(PREFIX)/bin
|
|
MANDIR ?= $(PREFIX)/share/man
|
|
LIBDIR ?= $(PREFIX)/lib
|
|
INCLUDEDIR ?= $(PREFIX)/include
|
|
|
|
LDLIBS = -lsepol -L$(LIBDIR)
|
|
SECILC = secilc
|
|
SECILC_SRCS := secilc.c
|
|
SECILC_OBJS := $(patsubst %.c,%.o,$(SECILC_SRCS))
|
|
|
|
# The secilc man page:
|
|
MANPAGE = secilc.8
|
|
XMLTO = xmlto
|
|
|
|
CFLAGS ?= -Wall -Wshadow -Wextra -Wundef -Wmissing-format-attribute -Wcast-align -Wstrict-prototypes -Wpointer-arith -Wunused
|
|
|
|
override CFLAGS += -I$(INCLUDEDIR) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
|
|
|
|
all: $(SECILC) man
|
|
|
|
$(SECILC): $(SECILC_OBJS)
|
|
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
|
|
|
|
test: $(SECILC)
|
|
./$(SECILC) test/policy.cil
|
|
|
|
man: $(MANPAGE)
|
|
|
|
$(MANPAGE): $(MANPAGE).xml
|
|
$(XMLTO) man $(MANPAGE).xml
|
|
|
|
install: all man
|
|
-mkdir -p $(BINDIR)
|
|
-mkdir -p $(MANDIR)/man8
|
|
install -m 755 $(SECILC) $(BINDIR)
|
|
install -m 644 $(MANPAGE) $(MANDIR)/man8
|
|
|
|
doc:
|
|
$(MAKE) -C docs
|
|
|
|
clean:
|
|
rm -f $(SECILC)
|
|
rm -f $(SECILC_OBJS)
|
|
rm -f policy.*
|
|
rm -f file_contexts
|
|
rm -f $(MANPAGE)
|
|
|
|
relabel:
|
|
|
|
.PHONY: all clean test install doc relabel man
|