include ../Include.make

BUILD_FILES := caitsith-auditd caitsith-loadpolicy caitsith-notifyd caitsith-pstree caitsith-queryd \
	caitsith-savepolicy

all: libcaitsithtools.so $(BUILD_FILES)

$(BUILD_FILES): libcaitsithtools.so

/usr/include/ncurses.h:
	@echo "/usr/include/ncurses.h is missing."
	@echo "Run 'yum install ncurses-devel' or 'apt-get install libncurses-dev'"
	sleep 10

# -fPIE conflicts with -fPIC, disable it for libraries.
CFLAGS_PIC  := $(filter-out -fPIE,$(CFLAGS))
LDFLAGS_PIC := $(filter-out -pie,$(filter-out -fPIE,$(LDFLAGS)))

libcaitsithtools.so: caitsithtools.c caitsithtools.h
	$(CC) $(CPPFLAGS) $(CFLAGS_PIC) $(LDFLAGS_PIC) -fPIC caitsithtools.c -shared -Wl,-soname,libcaitsithtools.so.2 -o libcaitsithtools.so.2.0.0
	ln -sf libcaitsithtools.so.2.0.0 libcaitsithtools.so

.c:
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< -lcaitsithtools -L.

caitsith-queryd: caitsithtools.h caitsith-queryd.c readline.h /usr/include/ncurses.h libcaitsithtools.so
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o caitsith-queryd caitsith-queryd.c -lncurses -ltinfo -lcaitsithtools -L. -DNCURSES_WIDECHAR=0 || \
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o caitsith-queryd caitsith-queryd.c -lncurses -lcaitsithtools -L. -DNCURSES_WIDECHAR=0

install: all
	mkdir -p -m 0755 $(INSTALLDIR)$(USRLIBDIR)
	$(INSTALL) -m 0755 libcaitsithtools.so.2.0.0 $(INSTALLDIR)$(USRLIBDIR)
	ln -sf libcaitsithtools.so.2.0.0 $(INSTALLDIR)$(USRLIBDIR)/libcaitsithtools.so.2
ifeq ($(INSTALLDIR),)
	ldconfig || true
endif
	mkdir -p -m 0755 $(INSTALLDIR)$(USRSBINDIR)
	$(INSTALL) -m 0755 $(BUILD_FILES) $(INSTALLDIR)$(USRSBINDIR)

clean:
	rm -f -- $(BUILD_FILES) libcaitsithtools.so*

.PHONY: clean install
