16cd6a6acSopenharmony_ci#
26cd6a6acSopenharmony_ci# Makefile for building the checkpolicy program
36cd6a6acSopenharmony_ci#
46cd6a6acSopenharmony_ciLINGUAS ?= ru
56cd6a6acSopenharmony_ciPREFIX ?= /usr
66cd6a6acSopenharmony_ciBINDIR ?= $(PREFIX)/bin
76cd6a6acSopenharmony_ciMANDIR ?= $(PREFIX)/share/man
86cd6a6acSopenharmony_ciTARGETS = checkpolicy checkmodule
96cd6a6acSopenharmony_ci
106cd6a6acSopenharmony_ciLEX = flex
116cd6a6acSopenharmony_ciYACC = bison -y
126cd6a6acSopenharmony_ci
136cd6a6acSopenharmony_ciCFLAGS ?= -g -Wall -Werror -Wshadow -O2 -fno-strict-aliasing
146cd6a6acSopenharmony_ci
156cd6a6acSopenharmony_ci# If no specific libsepol.a is specified, fall back on LDFLAGS search path
166cd6a6acSopenharmony_ci# Otherwise, as $(LIBSEPOLA) already appears in the dependencies, there
176cd6a6acSopenharmony_ci# is no need to define a value for LDLIBS_LIBSEPOLA
186cd6a6acSopenharmony_ciifeq ($(LIBSEPOLA),)
196cd6a6acSopenharmony_ci        LDLIBS_LIBSEPOLA := -l:libsepol.a
206cd6a6acSopenharmony_ciendif
216cd6a6acSopenharmony_ci
226cd6a6acSopenharmony_ciCHECKOBJS = y.tab.o lex.yy.o queue.o module_compiler.o parse_util.o \
236cd6a6acSopenharmony_ci	    policy_define.o
246cd6a6acSopenharmony_ciCHECKPOLOBJS = $(CHECKOBJS) checkpolicy.o
256cd6a6acSopenharmony_ciCHECKMODOBJS = $(CHECKOBJS) checkmodule.o
266cd6a6acSopenharmony_ci
276cd6a6acSopenharmony_ciGENERATED=lex.yy.c y.tab.c y.tab.h
286cd6a6acSopenharmony_ci
296cd6a6acSopenharmony_ciall:  $(TARGETS)
306cd6a6acSopenharmony_ci	$(MAKE) -C test
316cd6a6acSopenharmony_ci
326cd6a6acSopenharmony_cicheckpolicy: $(CHECKPOLOBJS) $(LIBSEPOLA)
336cd6a6acSopenharmony_ci	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS_LIBSEPOLA)
346cd6a6acSopenharmony_ci
356cd6a6acSopenharmony_cicheckmodule: $(CHECKMODOBJS) $(LIBSEPOLA)
366cd6a6acSopenharmony_ci	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS_LIBSEPOLA)
376cd6a6acSopenharmony_ci
386cd6a6acSopenharmony_ci%.o: %.c 
396cd6a6acSopenharmony_ci	$(CC) $(CFLAGS) -o $@ -c $<
406cd6a6acSopenharmony_ci
416cd6a6acSopenharmony_ciy.tab.o: y.tab.c
426cd6a6acSopenharmony_ci	$(CC) $(filter-out -Werror, $(CFLAGS)) -o $@ -c $<
436cd6a6acSopenharmony_ci
446cd6a6acSopenharmony_cilex.yy.o: lex.yy.c
456cd6a6acSopenharmony_ci	$(CC) $(filter-out -Werror, $(CFLAGS)) -o $@ -c $<
466cd6a6acSopenharmony_ci
476cd6a6acSopenharmony_ciy.tab.c: policy_parse.y
486cd6a6acSopenharmony_ci	$(YACC) -d policy_parse.y
496cd6a6acSopenharmony_ci
506cd6a6acSopenharmony_cilex.yy.c: policy_scan.l y.tab.c
516cd6a6acSopenharmony_ci	$(LEX) policy_scan.l
526cd6a6acSopenharmony_ci
536cd6a6acSopenharmony_ciinstall: all
546cd6a6acSopenharmony_ci	-mkdir -p $(DESTDIR)$(BINDIR)
556cd6a6acSopenharmony_ci	-mkdir -p $(DESTDIR)$(MANDIR)/man8
566cd6a6acSopenharmony_ci	install -m 755 $(TARGETS) $(DESTDIR)$(BINDIR)	
576cd6a6acSopenharmony_ci	install -m 644 checkpolicy.8 $(DESTDIR)$(MANDIR)/man8
586cd6a6acSopenharmony_ci	install -m 644 checkmodule.8 $(DESTDIR)$(MANDIR)/man8
596cd6a6acSopenharmony_ci	for lang in $(LINGUAS) ; do \
606cd6a6acSopenharmony_ci		if [ -e $${lang} ] ; then \
616cd6a6acSopenharmony_ci			mkdir -p $(DESTDIR)$(MANDIR)/$${lang}/man8 ; \
626cd6a6acSopenharmony_ci			install -m 644 $${lang}/*.8 $(DESTDIR)$(MANDIR)/$${lang}/man8 ; \
636cd6a6acSopenharmony_ci		fi ; \
646cd6a6acSopenharmony_ci	done
656cd6a6acSopenharmony_ci
666cd6a6acSopenharmony_cirelabel: install
676cd6a6acSopenharmony_ci	/sbin/restorecon $(DESTDIR)$(BINDIR)/checkpolicy
686cd6a6acSopenharmony_ci	/sbin/restorecon $(DESTDIR)$(BINDIR)/checkmodule
696cd6a6acSopenharmony_ci
706cd6a6acSopenharmony_ciclean:
716cd6a6acSopenharmony_ci	-rm -f $(TARGETS) $(CHECKPOLOBJS) $(CHECKMODOBJS) y.tab.c y.tab.h lex.yy.c
726cd6a6acSopenharmony_ci	$(MAKE) -C test clean
736cd6a6acSopenharmony_ci
746cd6a6acSopenharmony_ciindent:
756cd6a6acSopenharmony_ci	../scripts/Lindent $(filter-out $(GENERATED),$(wildcard *.[ch]))
76