113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# Installation directories.
213cd4c8960688af11ad23b4c946149015c80d54Joshua BrindlePREFIX ?= $(DESTDIR)/usr
313cd4c8960688af11ad23b4c946149015c80d54Joshua BrindleLIBDIR ?= $(PREFIX)/lib
47b5699bfd77d4581c6a52687ba2e3cf911348b8fStephen SmalleySBINDIR ?= $(PREFIX)/sbin
546c4f3a7168be6cb5a15fce862300693aaa516e3Laurent BigonvilleINCLUDEDIR ?= $(PREFIX)/include
613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
7bbc930c7569f5efaff69eba1298973de33921f15Stephen SmalleyOS ?= $(shell uname)
8bbc930c7569f5efaff69eba1298973de33921f15Stephen Smalley
9bbc930c7569f5efaff69eba1298973de33921f15Stephen Smalleyifeq ($(shell $(CC) -v 2>&1 | grep "clang"),)
10bbc930c7569f5efaff69eba1298973de33921f15Stephen SmalleyCOMPILER ?= gcc
11bbc930c7569f5efaff69eba1298973de33921f15Stephen Smalleyelse
12bbc930c7569f5efaff69eba1298973de33921f15Stephen SmalleyCOMPILER ?= clang
13bbc930c7569f5efaff69eba1298973de33921f15Stephen Smalleyendif
14bbc930c7569f5efaff69eba1298973de33921f15Stephen Smalley
1563aa7fc036a8a99337a4b032269065e89a7cf3fcStephen Smalleyifeq ($(COMPILER), gcc)
1663aa7fc036a8a99337a4b032269065e89a7cf3fcStephen SmalleyEXTRA_CFLAGS = -fipa-pure-const -Wpacked-bitfield-compat -Wsync-nand -Wcoverage-mismatch \
1763aa7fc036a8a99337a4b032269065e89a7cf3fcStephen Smalley	-Wcpp -Wformat-contains-nul -Wnormalized=nfc -Wsuggest-attribute=const \
1863aa7fc036a8a99337a4b032269065e89a7cf3fcStephen Smalley	-Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wtrampolines -Wjump-misses-init \
1963aa7fc036a8a99337a4b032269065e89a7cf3fcStephen Smalley	-Wno-suggest-attribute=pure -Wno-suggest-attribute=const
2063aa7fc036a8a99337a4b032269065e89a7cf3fcStephen Smalleyendif
2163aa7fc036a8a99337a4b032269065e89a7cf3fcStephen Smalley
22a1044d4c84aeb2e9f98823afa932d87934c7ac64Daniel P. BerrangeMAX_STACK_SIZE=8192
23ac6ab3afc04adb98a072a8b213814862b0ab9e31Dan WalshCFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self -Wmissing-include-dirs \
24a1044d4c84aeb2e9f98823afa932d87934c7ac64Daniel P. Berrange          -Wunused -Wunknown-pragmas -Wstrict-aliasing -Wshadow -Wpointer-arith \
2516c123f4b1f3c8d20b3f597df161d7e635620923William Roberts          -Wbad-function-cast -Wcast-align -Wwrite-strings -Waggregate-return \
26a1044d4c84aeb2e9f98823afa932d87934c7ac64Daniel P. Berrange          -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes \
27a1044d4c84aeb2e9f98823afa932d87934c7ac64Daniel P. Berrange          -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute \
28a1044d4c84aeb2e9f98823afa932d87934c7ac64Daniel P. Berrange          -Wredundant-decls -Wnested-externs -Winline -Winvalid-pch -Wvolatile-register-var \
2916c123f4b1f3c8d20b3f597df161d7e635620923William Roberts          -Wdisabled-optimization -Wbuiltin-macro-redefined \
3016c123f4b1f3c8d20b3f597df161d7e635620923William Roberts          -Wattributes -Wmultichar \
31a1044d4c84aeb2e9f98823afa932d87934c7ac64Daniel P. Berrange          -Wdeprecated-declarations -Wdiv-by-zero -Wdouble-promotion -Wendif-labels -Wextra \
3216c123f4b1f3c8d20b3f597df161d7e635620923William Roberts          -Wformat-extra-args -Wformat-zero-length -Wformat=2 -Wmultichar \
3316c123f4b1f3c8d20b3f597df161d7e635620923William Roberts          -Woverflow -Wpointer-to-int-cast -Wpragmas \
3416c123f4b1f3c8d20b3f597df161d7e635620923William Roberts          -Wno-missing-field-initializers -Wno-sign-compare \
35ca07a2ad46be141dad90d885dd33a2ac31c6559aPatrick Steinhardt          -Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) -Wp,-D_FORTIFY_SOURCE \
36a1044d4c84aeb2e9f98823afa932d87934c7ac64Daniel P. Berrange          -fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
37a1044d4c84aeb2e9f98823afa932d87934c7ac64Daniel P. Berrange          -fasynchronous-unwind-tables -fdiagnostics-show-option -funit-at-a-time \
3863aa7fc036a8a99337a4b032269065e89a7cf3fcStephen Smalley          -Werror -Wno-aggregate-return -Wno-redundant-decls \
3963aa7fc036a8a99337a4b032269065e89a7cf3fcStephen Smalley          $(EXTRA_CFLAGS)
4016c123f4b1f3c8d20b3f597df161d7e635620923William Roberts
4116c123f4b1f3c8d20b3f597df161d7e635620923William RobertsLD_SONAME_FLAGS=-soname,$(LIBSO),-z,defs,-z,relro
4216c123f4b1f3c8d20b3f597df161d7e635620923William Roberts
4316c123f4b1f3c8d20b3f597df161d7e635620923William Robertsifeq ($(OS), Darwin)
4416c123f4b1f3c8d20b3f597df161d7e635620923William Robertsoverride CFLAGS += -I/opt/local/include -I../../libsepol/include
4516c123f4b1f3c8d20b3f597df161d7e635620923William Robertsoverride LDFLAGS += -L../../libsepol/src -undefined dynamic_lookup
4616c123f4b1f3c8d20b3f597df161d7e635620923William Robertsendif
4716c123f4b1f3c8d20b3f597df161d7e635620923William Roberts
48fcb5d5cc721187b3e3a19b44155d5b824d7be7e6Jason Zamanoverride CFLAGS += -I../include -D_GNU_SOURCE $(DISABLE_FLAGS) $(PCRE_CFLAGS)
49297877ab88eeaf2faeb23bb70a44dbb36698b442Jason Zamanoverride LDFLAGS += -L../src
50297877ab88eeaf2faeb23bb70a44dbb36698b442Jason Zamanoverride LDLIBS += -lselinux
51b5fe48da2090ceb9f427822fce6ee3da165b77f2Jason ZamanPCRE_LDLIBS ?= -lpcre
5213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
53b5dd7959d8bc3958786cad71408a9661956ff751William Robertsifeq ($(ANDROID_HOST),y)
54b5dd7959d8bc3958786cad71408a9661956ff751William RobertsTARGETS=sefcontext_compile
55b5dd7959d8bc3958786cad71408a9661956ff751William Robertselse
56c18ea1df62780df033ba1f698f232ccd17587081Bernhard M. WiedemannTARGETS=$(patsubst %.c,%,$(sort $(wildcard *.c)))
57b5dd7959d8bc3958786cad71408a9661956ff751William Robertsendif
5872d535fdb822135fcfa23c82977c62c7f1500e34Chad Sellers
59b5fe48da2090ceb9f427822fce6ee3da165b77f2Jason Zamansefcontext_compile: LDLIBS += $(PCRE_LDLIBS) ../src/libselinux.a -lsepol
6050f0910cf05bdc1d10710c7c3fb748a178473387Janis Danisevskis
6150f0910cf05bdc1d10710c7c3fb748a178473387Janis Danisevskissefcontext_compile: sefcontext_compile.o ../src/regex.o
6272d535fdb822135fcfa23c82977c62c7f1500e34Chad Sellers
639b796ead1a18f2c59d5b660c986cbdb2e6b5f83cDan Walshall: $(TARGETS)
6413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
6513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleinstall: all
667b5699bfd77d4581c6a52687ba2e3cf911348b8fStephen Smalley	-mkdir -p $(SBINDIR)
677b5699bfd77d4581c6a52687ba2e3cf911348b8fStephen Smalley	install -m 755 $(TARGETS) $(SBINDIR)
68055d14a99a84dc482adb9eef385596c0330824f5Nicolas Iooss
6913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleclean:
709b796ead1a18f2c59d5b660c986cbdb2e6b5f83cDan Walsh	rm -f $(TARGETS) *.o *~
7113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
7246d294f645abf02f3d4dc4514cf53092a3e80e33Dan Walshdistclean: clean
7346d294f645abf02f3d4dc4514cf53092a3e80e33Dan Walsh
7413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleindent:
7513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	../../scripts/Lindent $(wildcard *.[ch])
7613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
7713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlerelabel:
7813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
79