mirror of
https://github.com/topjohnwu/selinux.git
synced 2024-12-12 22:05:58 +00:00
bbc930c756
commit 16c123f4b1
("libselinux:
support ANDROID_HOST=1 on Mac") broke the ability to run make
in the src subdirectory of libselinux (because OS and COMPILER
were not defined) and also caused some warning flags that could
be overridden via command-line CFLAGS to be mandatory. Fix it.
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
80 lines
2.7 KiB
Makefile
80 lines
2.7 KiB
Makefile
# Installation directories.
|
|
PREFIX ?= $(DESTDIR)/usr
|
|
LIBDIR ?= $(PREFIX)/lib
|
|
USRBINDIR ?= $(PREFIX)/sbin
|
|
SBINDIR ?= $(DESTDIR)/sbin
|
|
INCLUDEDIR ?= $(PREFIX)/include
|
|
|
|
OS ?= $(shell uname)
|
|
|
|
ifeq ($(shell $(CC) -v 2>&1 | grep "clang"),)
|
|
COMPILER ?= gcc
|
|
else
|
|
COMPILER ?= clang
|
|
endif
|
|
|
|
MAX_STACK_SIZE=8192
|
|
CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self -Wmissing-include-dirs \
|
|
-Wunused -Wunknown-pragmas -Wstrict-aliasing -Wshadow -Wpointer-arith \
|
|
-Wbad-function-cast -Wcast-align -Wwrite-strings -Waggregate-return \
|
|
-Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes \
|
|
-Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute \
|
|
-Wredundant-decls -Wnested-externs -Winline -Winvalid-pch -Wvolatile-register-var \
|
|
-Wdisabled-optimization -Wbuiltin-macro-redefined \
|
|
-Wattributes -Wmultichar \
|
|
-Wdeprecated-declarations -Wdiv-by-zero -Wdouble-promotion -Wendif-labels -Wextra \
|
|
-Wformat-extra-args -Wformat-zero-length -Wformat=2 -Wmultichar \
|
|
-Woverflow -Wpointer-to-int-cast -Wpragmas \
|
|
-Wno-missing-field-initializers -Wno-sign-compare \
|
|
-Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) -Wp,-D_FORTIFY_SOURCE=2 \
|
|
-fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
|
|
-fasynchronous-unwind-tables -fdiagnostics-show-option -funit-at-a-time \
|
|
-Werror -Wno-aggregate-return -Wno-redundant-decls
|
|
|
|
LD_SONAME_FLAGS=-soname,$(LIBSO),-z,defs,-z,relro
|
|
|
|
ifeq ($(COMPILER), gcc)
|
|
CFLAGS += -fipa-pure-const -Wpacked-bitfield-compat -Wsync-nand -Wcoverage-mismatch \
|
|
-Wcpp -Wformat-contains-nul -Wnormalized=nfc -Wsuggest-attribute=const \
|
|
-Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wtrampolines -Wjump-misses-init \
|
|
-Wno-suggest-attribute=pure -Wno-suggest-attribute=const
|
|
endif
|
|
|
|
ifeq ($(OS), Darwin)
|
|
override CFLAGS += -I/opt/local/include -I../../libsepol/include
|
|
override LDFLAGS += -L../../libsepol/src -undefined dynamic_lookup
|
|
endif
|
|
|
|
override CFLAGS += -I../include -I$(INCLUDEDIR) -D_GNU_SOURCE $(DISABLE_FLAGS) $(PCRE_CFLAGS)
|
|
LDLIBS += -L../src -lselinux -L$(LIBDIR)
|
|
PCRE_LDFLAGS ?= -lpcre
|
|
|
|
ifeq ($(ANDROID_HOST),y)
|
|
TARGETS=sefcontext_compile
|
|
else
|
|
TARGETS=$(patsubst %.c,%,$(wildcard *.c))
|
|
endif
|
|
|
|
sefcontext_compile: LDLIBS += $(PCRE_LDFLAGS) ../src/libselinux.a -lsepol
|
|
|
|
sefcontext_compile: sefcontext_compile.o ../src/regex.o
|
|
|
|
selinux_restorecon: LDLIBS += -lsepol
|
|
|
|
all: $(TARGETS)
|
|
|
|
install: all
|
|
-mkdir -p $(USRBINDIR)
|
|
install -m 755 $(TARGETS) $(USRBINDIR)
|
|
-mkdir -p $(SBINDIR)
|
|
clean:
|
|
rm -f $(TARGETS) *.o *~
|
|
|
|
distclean: clean
|
|
|
|
indent:
|
|
../../scripts/Lindent $(wildcard *.[ch])
|
|
|
|
relabel:
|
|
|