mirror of
https://github.com/SELinuxProject/selinux
synced 2024-12-23 22:42:06 +00:00
dcd135cc06
After libsepol is modified (for example while developing new features or fixing bugs), running "make install" in the top-level directory does not update the programs which use libsepol.a. Add this static library to the target dependencies in order to force their updates. This makes "make" use libsepol.a in the linking command without using LDLIBS. While at it, copy what commit 14d706434846 ("libselinux: Allow overriding libsepol.a location during build") introduced in libselinux Makefile by using a new LIBSEPOLA variable in all Makefiles. Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org>
65 lines
1.4 KiB
Makefile
65 lines
1.4 KiB
Makefile
#
|
|
# Makefile for building the checkpolicy program
|
|
#
|
|
PREFIX ?= $(DESTDIR)/usr
|
|
BINDIR ?= $(PREFIX)/bin
|
|
MANDIR ?= $(PREFIX)/share/man
|
|
LIBDIR ?= $(PREFIX)/lib
|
|
INCLUDEDIR ?= $(PREFIX)/include
|
|
LIBSEPOLA ?= $(LIBDIR)/libsepol.a
|
|
TARGETS = checkpolicy checkmodule
|
|
|
|
LEX = flex
|
|
YACC = bison -y
|
|
|
|
CFLAGS ?= -g -Wall -Werror -Wshadow -O2 -pipe -fno-strict-aliasing
|
|
|
|
override CFLAGS += -I. -I${INCLUDEDIR}
|
|
|
|
CHECKOBJS = y.tab.o lex.yy.o queue.o module_compiler.o parse_util.o \
|
|
policy_define.o
|
|
CHECKPOLOBJS = $(CHECKOBJS) checkpolicy.o
|
|
CHECKMODOBJS = $(CHECKOBJS) checkmodule.o
|
|
|
|
GENERATED=lex.yy.c y.tab.c y.tab.h
|
|
|
|
all: $(TARGETS)
|
|
$(MAKE) -C test
|
|
|
|
checkpolicy: $(CHECKPOLOBJS) $(LIBSEPOLA)
|
|
|
|
checkmodule: $(CHECKMODOBJS) $(LIBSEPOLA)
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
|
|
|
y.tab.o: y.tab.c
|
|
$(CC) $(filter-out -Werror, $(CFLAGS)) -o $@ -c $<
|
|
|
|
lex.yy.o: lex.yy.c
|
|
$(CC) $(filter-out -Werror, $(CFLAGS)) -o $@ -c $<
|
|
|
|
y.tab.c: policy_parse.y
|
|
$(YACC) -d policy_parse.y
|
|
|
|
lex.yy.c: policy_scan.l y.tab.c
|
|
$(LEX) policy_scan.l
|
|
|
|
install: all
|
|
-mkdir -p $(BINDIR)
|
|
-mkdir -p $(MANDIR)/man8
|
|
install -m 755 $(TARGETS) $(BINDIR)
|
|
install -m 644 checkpolicy.8 $(MANDIR)/man8
|
|
install -m 644 checkmodule.8 $(MANDIR)/man8
|
|
|
|
relabel: install
|
|
/sbin/restorecon $(BINDIR)/checkpolicy
|
|
/sbin/restorecon $(BINDIR)/checkmodule
|
|
|
|
clean:
|
|
-rm -f $(TARGETS) $(CHECKPOLOBJS) $(CHECKMODOBJS) y.tab.c y.tab.h lex.yy.c
|
|
$(MAKE) -C test clean
|
|
|
|
indent:
|
|
../scripts/Lindent $(filter-out $(GENERATED),$(wildcard *.[ch]))
|