16cd6a6acSopenharmony_ci# Installation directories.
26cd6a6acSopenharmony_ciPREFIX ?= /usr
36cd6a6acSopenharmony_ciSBINDIR ?= $(PREFIX)/sbin
46cd6a6acSopenharmony_ci
56cd6a6acSopenharmony_ciOS ?= $(shell uname)
66cd6a6acSopenharmony_ci
76cd6a6acSopenharmony_ciifeq ($(shell $(CC) -v 2>&1 | grep "clang"),)
86cd6a6acSopenharmony_ciCOMPILER ?= gcc
96cd6a6acSopenharmony_cielse
106cd6a6acSopenharmony_ciCOMPILER ?= clang
116cd6a6acSopenharmony_ciendif
126cd6a6acSopenharmony_ci
136cd6a6acSopenharmony_ciifeq ($(COMPILER), gcc)
146cd6a6acSopenharmony_ciEXTRA_CFLAGS = -fipa-pure-const -Wpacked-bitfield-compat -Wsync-nand -Wcoverage-mismatch \
156cd6a6acSopenharmony_ci	-Wcpp -Wformat-contains-nul -Wnormalized=nfc -Wsuggest-attribute=const \
166cd6a6acSopenharmony_ci	-Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wtrampolines -Wjump-misses-init \
176cd6a6acSopenharmony_ci	-Wno-suggest-attribute=pure -Wno-suggest-attribute=const
186cd6a6acSopenharmony_ciendif
196cd6a6acSopenharmony_ci
206cd6a6acSopenharmony_ciMAX_STACK_SIZE=8192
216cd6a6acSopenharmony_ciCFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self -Wmissing-include-dirs \
226cd6a6acSopenharmony_ci          -Wunused -Wunknown-pragmas -Wstrict-aliasing -Wshadow -Wpointer-arith \
236cd6a6acSopenharmony_ci          -Wbad-function-cast -Wcast-align -Wwrite-strings -Waggregate-return \
246cd6a6acSopenharmony_ci          -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes \
256cd6a6acSopenharmony_ci          -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute \
266cd6a6acSopenharmony_ci          -Wredundant-decls -Wnested-externs -Winline -Winvalid-pch -Wvolatile-register-var \
276cd6a6acSopenharmony_ci          -Wdisabled-optimization -Wbuiltin-macro-redefined \
286cd6a6acSopenharmony_ci          -Wattributes -Wmultichar \
296cd6a6acSopenharmony_ci          -Wdeprecated-declarations -Wdiv-by-zero -Wdouble-promotion -Wendif-labels -Wextra \
306cd6a6acSopenharmony_ci          -Wformat-extra-args -Wformat-zero-length -Wformat=2 -Wmultichar \
316cd6a6acSopenharmony_ci          -Woverflow -Wpointer-to-int-cast -Wpragmas \
326cd6a6acSopenharmony_ci          -Wno-missing-field-initializers -Wno-sign-compare \
336cd6a6acSopenharmony_ci          -Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 \
346cd6a6acSopenharmony_ci          -fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
356cd6a6acSopenharmony_ci          -fasynchronous-unwind-tables -fdiagnostics-show-option \
366cd6a6acSopenharmony_ci          -Werror -Wno-aggregate-return -Wno-redundant-decls -Wstrict-overflow=5 \
376cd6a6acSopenharmony_ci          $(EXTRA_CFLAGS)
386cd6a6acSopenharmony_ci
396cd6a6acSopenharmony_ciifeq ($(OS), Darwin)
406cd6a6acSopenharmony_cioverride CFLAGS += -I/opt/local/include -I../../libsepol/include
416cd6a6acSopenharmony_cioverride LDFLAGS += -L../../libsepol/src -undefined dynamic_lookup
426cd6a6acSopenharmony_ciendif
436cd6a6acSopenharmony_ci
446cd6a6acSopenharmony_cioverride CFLAGS += -I../include -D_GNU_SOURCE $(DISABLE_FLAGS) $(PCRE_CFLAGS)
456cd6a6acSopenharmony_cioverride LDFLAGS += -L../src
466cd6a6acSopenharmony_cioverride LDLIBS += -lselinux $(FTS_LDLIBS)
476cd6a6acSopenharmony_ci
486cd6a6acSopenharmony_ciifeq ($(ANDROID_HOST),y)
496cd6a6acSopenharmony_ciTARGETS=sefcontext_compile
506cd6a6acSopenharmony_cielse
516cd6a6acSopenharmony_ciTARGETS=$(patsubst %.c,%,$(sort $(wildcard *.c)))
526cd6a6acSopenharmony_ciendif
536cd6a6acSopenharmony_ci
546cd6a6acSopenharmony_cisefcontext_compile: LDLIBS += ../src/libselinux.a $(PCRE_LDLIBS) -lsepol
556cd6a6acSopenharmony_ci
566cd6a6acSopenharmony_ciall: $(TARGETS)
576cd6a6acSopenharmony_ci
586cd6a6acSopenharmony_ciinstall: all
596cd6a6acSopenharmony_ci	-mkdir -p $(DESTDIR)$(SBINDIR)
606cd6a6acSopenharmony_ci	install -m 755 $(TARGETS) $(DESTDIR)$(SBINDIR)
616cd6a6acSopenharmony_ci
626cd6a6acSopenharmony_ciclean:
636cd6a6acSopenharmony_ci	rm -f $(TARGETS) *.o *~
646cd6a6acSopenharmony_ci
656cd6a6acSopenharmony_cidistclean: clean
666cd6a6acSopenharmony_ci
676cd6a6acSopenharmony_ciindent:
686cd6a6acSopenharmony_ci	../../scripts/Lindent $(wildcard *.[ch])
696cd6a6acSopenharmony_ci
706cd6a6acSopenharmony_cirelabel:
716cd6a6acSopenharmony_ci
72