git.fiddlerwoaroof.com
Raw Blame History
MODULEFLAGS = -fPIC -fno-stack-protector
MODULEOBJS = dual_control.o logging.o dc_syslog.o
HEADERS = logging.h dc_syslog.h

MODULELIB = pam_dual_control.so
UNAME_S := $(shell uname -s)

.PHONY: all
all: dual_control.a

dual_control.a: $(MODULEOBJS)
	ar rvs $@ $^
	ranlib $@

$(MODULEOBJS): %.o: %.c $(HEADERS)
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(MODULEFLAGS) $< -o $@

.PHONY: clean
clean:
	@rm -f *.o *.a
	@rm -f dual_control_test

.PHONY: distclean
distclean: clean
	@rm -f Makefile config.h

dual_control_test: dual_control_test.c dual_control.o
	$(CC) $(CFLAGS) $(CPPFLAGS) -lpam -o $@ $^
logging_test: logging_test.c logging.o
	$(CC) $(CFLAGS) $(CPPFLAGS) -lpam -o $@ $^

.PHONY: test
test: dual_control_test logging_test
	@./dual_control_test
	@./logging_test
	@echo all tests passed

.PHONY: install
install: $(MODULEOBJS)
ifeq ($(UNAME_S), Linux)
	ld $(LDFLAGS) -x --shared -lpam -o $(DESTDIR)@PAM_MODULE_DIRECTORY@/$(MODULELIB) $(MODULEOBJS)
else
	@echo installation recipe not known for $(UNAME_S)
endif