1# Installation directories. 2PREFIX ?= $(DESTDIR)/usr 3INCLUDEDIR ?= $(PREFIX)/include 4LIBDIR ?= $(PREFIX)/lib 5SHLIBDIR ?= $(DESTDIR)/lib 6LIBBASE=$(shell basename $(LIBDIR)) 7 8VERSION = $(shell cat ../VERSION) 9LIBVERSION = 1 10 11LIBA=libsepol.a 12TARGET=libsepol.so 13LIBPC=libsepol.pc 14LIBSO=$(TARGET).$(LIBVERSION) 15OBJS= $(patsubst %.c,%.o,$(wildcard *.c)) 16LOBJS= $(patsubst %.c,%.lo,$(wildcard *.c)) 17CFLAGS ?= -Werror -Wall -W -Wundef -Wshadow -Wmissing-noreturn -Wmissing-format-attribute 18override CFLAGS += -I. -I../include -D_GNU_SOURCE 19 20all: $(LIBA) $(LIBSO) $(LIBPC) 21 22$(LIBA): $(OBJS) 23 $(AR) rcs $@ $^ 24 ranlib $@ 25 26$(LIBSO): $(LOBJS) 27 $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -Wl,-soname,$(LIBSO),--version-script=libsepol.map,-z,defs 28 ln -sf $@ $(TARGET) 29 30$(LIBPC): $(LIBPC).in ../VERSION 31 sed -e 's/@VERSION@/$(VERSION)/; s:@prefix@:$(PREFIX):; s:@libdir@:$(LIBBASE):; s:@includedir@:$(INCLUDEDIR):' < $< > $@ 32 33%.o: %.c 34 $(CC) $(CFLAGS) -fPIC -c -o $@ $< 35 36%.lo: %.c 37 $(CC) $(CFLAGS) -fPIC -DSHARED -c -o $@ $< 38 39install: all 40 test -d $(LIBDIR) || install -m 755 -d $(LIBDIR) 41 install -m 644 $(LIBA) $(LIBDIR) 42 test -d $(SHLIBDIR) || install -m 755 -d $(SHLIBDIR) 43 install -m 755 $(LIBSO) $(SHLIBDIR) 44 test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig 45 install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig 46 cd $(LIBDIR) && ln -sf ../../`basename $(SHLIBDIR)`/$(LIBSO) $(TARGET) 47 48relabel: 49 /sbin/restorecon $(SHLIBDIR)/$(LIBSO) 50 51clean: 52 -rm -f $(LIBPC) $(OBJS) $(LOBJS) $(LIBA) $(LIBSO) $(TARGET) 53 54indent: 55 ../../scripts/Lindent $(wildcard *.[ch]) 56 57