# Installation directories.
PREFIX ?= /usr/local/selinux
BINDIR ?= $(PREFIX)/bin
MANDIR = $(PREFIX)/man

# libattr library and include directories, if not in /usr/lib and /usr/include.
LIBATTRDIR ?= /usr/local/lib
LIBATTRINC ?= /usr/local/include

# libselinux library and include directories.
# Pull from the local copy unless you separately installed libselinux first.
LIBSELDIR ?= ../libselinux/src
LIBSELINC ?= ../libselinux/include

CFLAGS ?= -Wall -I$(LIBSELINC) -I$(LIBATTRINC) 
LDFLAGS += -L$(LIBSELDIR) -L$(LIBATTRDIR)
LDLIBS += -lselinux -lattr

CFLAGS += -D_FILE_OFFSET_BITS=64

all: setfiles

setfiles:  setfiles.o psid.o hashtab.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)

install: all
	[ -d $(MANDIR)/man8 ] || mkdir -p $(MANDIR)/man8
	-mkdir -p $(BINDIR)
	install -m 755 setfiles $(BINDIR)
	install -m 644 -o root -g root setfiles.8 $(MANDIR)/man8

clean:
	rm -f setfiles *.o 

relabel: install
	setfilecon system_u:object_r:setfiles_exec_t $(BINDIR)/setfiles
