113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# Installation directories. 213cd4c8960688af11ad23b4c946149015c80d54Joshua BrindlePREFIX ?= $(DESTDIR)/usr 312777502c638698a9e1dd6748a2309cb87946a65Eamon WalshINCLUDEDIR ?= $(PREFIX)/include 413cd4c8960688af11ad23b4c946149015c80d54Joshua BrindleLIBDIR ?= $(PREFIX)/lib 513cd4c8960688af11ad23b4c946149015c80d54Joshua BrindleSHLIBDIR ?= $(DESTDIR)/lib 6c450d6e1e297c4b4b1726899424bf5ed655aa253Sven VermeulenRANLIB ?= ranlib 795eda43741ca7aeda2052f78877ec7feff3c9ab4Laurent BigonvilleLIBBASE ?= $(shell basename $(LIBDIR)) 8416f150f1a56589839ef000fd9dfa021d567a1c7Steve LawrenceCILDIR ?= ../cil 913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 1012777502c638698a9e1dd6748a2309cb87946a65Eamon WalshVERSION = $(shell cat ../VERSION) 1113cd4c8960688af11ad23b4c946149015c80d54Joshua BrindleLIBVERSION = 1 1213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 13416f150f1a56589839ef000fd9dfa021d567a1c7Steve LawrenceLEX = flex 14416f150f1a56589839ef000fd9dfa021d567a1c7Steve LawrenceCIL_GENERATED = $(CILDIR)/src/cil_lexer.c 15416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence 1613cd4c8960688af11ad23b4c946149015c80d54Joshua BrindleLIBA=libsepol.a 1713cd4c8960688af11ad23b4c946149015c80d54Joshua BrindleTARGET=libsepol.so 1812777502c638698a9e1dd6748a2309cb87946a65Eamon WalshLIBPC=libsepol.pc 19416f150f1a56589839ef000fd9dfa021d567a1c7Steve LawrenceLIBMAP=libsepol.map 2013cd4c8960688af11ad23b4c946149015c80d54Joshua BrindleLIBSO=$(TARGET).$(LIBVERSION) 21fb85e5cc95c327bab89d0592b67291b200717792Laurent BigonvilleOBJS= $(patsubst %.c,%.o,$(sort $(wildcard *.c))) 22fb85e5cc95c327bab89d0592b67291b200717792Laurent BigonvilleLOBJS= $(patsubst %.c,%.lo,$(sort $(wildcard *.c))) 2376ea9f898747bc11f27ad4598700e8f81cbc76e7John BrooksCFLAGS ?= -Werror -Wall -W -Wundef -Wshadow -Wmissing-format-attribute -O2 24416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence 2513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleoverride CFLAGS += -I. -I../include -D_GNU_SOURCE 2613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 27416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrenceifneq ($(DISABLE_CIL),y) 28fb85e5cc95c327bab89d0592b67291b200717792Laurent BigonvilleOBJS += $(sort $(patsubst %.c,%.o,$(sort $(wildcard $(CILDIR)/src/*.c)) $(CIL_GENERATED))) 29fb85e5cc95c327bab89d0592b67291b200717792Laurent BigonvilleLOBJS += $(sort $(patsubst %.c,%.lo,$(sort $(wildcard $(CILDIR)/src/*.c)) $(CIL_GENERATED))) 30416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrenceoverride CFLAGS += -I$(CILDIR)/include 31416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrenceendif 32416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence 333340d851dfcb2c803fe470b116c5f1dff909308fWilliam RobertsLD_SONAME_FLAGS=-soname,$(LIBSO),--version-script=$(LIBMAP),-z,defs 343340d851dfcb2c803fe470b116c5f1dff909308fWilliam Roberts 354a05e95f196604495642978993bbc90766ec42f6Karl MacMillanLN=ln 363340d851dfcb2c803fe470b116c5f1dff909308fWilliam RobertsOS := $(shell uname) 373340d851dfcb2c803fe470b116c5f1dff909308fWilliam Robertsifeq ($(OS), Darwin) 383340d851dfcb2c803fe470b116c5f1dff909308fWilliam RobertsLD_SONAME_FLAGS=-install_name,$(LIBSO) 393340d851dfcb2c803fe470b116c5f1dff909308fWilliam RobertsLDFLAGS += -undefined dynamic_lookup 404a05e95f196604495642978993bbc90766ec42f6Karl MacMillanLN=gln 413340d851dfcb2c803fe470b116c5f1dff909308fWilliam Robertsendif 42416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence 4312777502c638698a9e1dd6748a2309cb87946a65Eamon Walshall: $(LIBA) $(LIBSO) $(LIBPC) 4413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 45416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence 4613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle$(LIBA): $(OBJS) 4713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle $(AR) rcs $@ $^ 48c450d6e1e297c4b4b1726899424bf5ed655aa253Sven Vermeulen $(RANLIB) $@ 4913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 50416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence$(LIBSO): $(LOBJS) $(LIBMAP) 513340d851dfcb2c803fe470b116c5f1dff909308fWilliam Roberts $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $(LOBJS) -Wl,$(LD_SONAME_FLAGS) 5213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle ln -sf $@ $(TARGET) 5313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 54c81a43c753efbda6f2106dbf0a291005683474f8Eric Paris$(LIBPC): $(LIBPC).in ../VERSION 557420787817c4949276d7947202b49d78eba37c13Daniel J Walsh sed -e 's/@VERSION@/$(VERSION)/; s:@prefix@:$(PREFIX):; s:@libdir@:$(LIBBASE):; s:@includedir@:$(INCLUDEDIR):' < $< > $@ 5612777502c638698a9e1dd6748a2309cb87946a65Eamon Walsh 57416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence$(LIBMAP): $(LIBMAP).in 58416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrenceifneq ($(DISABLE_CIL),y) 59416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence cp $< $@ 60416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrenceelse 61416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence sed -e '/^\s*cil_/d' < $< > $@ 62416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrenceendif 63416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence 64416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrenceifneq ($(DISABLE_CIL),y) 657a4db1566a970788e6e83a5f083a2ffb96b66a76Stephen Smalley$(CILDIR)/src/cil_lexer.o: $(CILDIR)/src/cil_lexer.c 667a4db1566a970788e6e83a5f083a2ffb96b66a76Stephen Smalley $(CC) $(filter-out -Werror, $(CFLAGS)) -fPIC -c -o $@ $< 677a4db1566a970788e6e83a5f083a2ffb96b66a76Stephen Smalley 687a4db1566a970788e6e83a5f083a2ffb96b66a76Stephen Smalley$(CILDIR)/src/cil_lexer.lo: $(CILDIR)/src/cil_lexer.c 697a4db1566a970788e6e83a5f083a2ffb96b66a76Stephen Smalley $(CC) $(filter-out -Werror, $(CFLAGS)) -fPIC -DSHARED -c -o $@ $< 707a4db1566a970788e6e83a5f083a2ffb96b66a76Stephen Smalley 71416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence$(CILDIR)/src/cil_lexer.c: $(CILDIR)/src/cil_lexer.l 72ab270850998191a41abb47d929ab816259d3428eNicolas Iooss $(LEX) -o $@ $< 73ab270850998191a41abb47d929ab816259d3428eNicolas Iooss 74416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrenceendif 75416f150f1a56589839ef000fd9dfa021d567a1c7Steve Lawrence 7613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle%.o: %.c 7713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle $(CC) $(CFLAGS) -fPIC -c -o $@ $< 7813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 7913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle%.lo: %.c 8013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle $(CC) $(CFLAGS) -fPIC -DSHARED -c -o $@ $< 8113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 8213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleinstall: all 8313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle test -d $(LIBDIR) || install -m 755 -d $(LIBDIR) 8413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle install -m 644 $(LIBA) $(LIBDIR) 8513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle test -d $(SHLIBDIR) || install -m 755 -d $(SHLIBDIR) 8613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle install -m 755 $(LIBSO) $(SHLIBDIR) 8712777502c638698a9e1dd6748a2309cb87946a65Eamon Walsh test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig 8812777502c638698a9e1dd6748a2309cb87946a65Eamon Walsh install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig 894a05e95f196604495642978993bbc90766ec42f6Karl MacMillan $(LN) -sf --relative $(SHLIBDIR)/$(LIBSO) $(LIBDIR)/$(TARGET) 9013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 9113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlerelabel: 9213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle /sbin/restorecon $(SHLIBDIR)/$(LIBSO) 9313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 9413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleclean: 952c2c81dcdc2719c73a19b01b692b31c8e903965fNicolas Iooss -rm -f $(LIBPC) $(LIBMAP) $(OBJS) $(LOBJS) $(LIBA) $(LIBSO) $(TARGET) $(CIL_GENERATED) 9613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 9713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleindent: 9813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle ../../scripts/Lindent $(wildcard *.[ch]) 9913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 100