From f70ce379de6261733dc71279c76fc76a210285e1 Mon Sep 17 00:00:00 2001 From: Daniel Roberson Date: Sun, 13 Sep 2026 07:44:32 -0700 Subject: initial commit --- Makefile | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..35fe1e1 --- /dev/null +++ b/Makefile @@ -0,0 +1,83 @@ +CC ?= cc + +CFLAGS ?= -O2 +CFLAGS += -Wall -Wextra -Wpedantic +CFLAGS += -fPIC +CFLAGS += -fstack-protector-strong +CFLAGS += -D_FORTIFY_SOURCE=2 + +LDFLAGS += -Wl,-z,relro,-z,now + +PAM_LDLIBS = -lpam -lm +CREATE_LDLIBS = -lm + +PAM_TARGET = pam_bloom.so +CREATE_TARGET = pam_bloom_create + +PREFIX ?= /usr +BINDIR ?= $(PREFIX)/bin + +MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null) + +ifeq ($(MULTIARCH),) +PAMDIR ?= $(PREFIX)/lib/security +else +PAMDIR ?= $(PREFIX)/lib/$(MULTIARCH)/security +endif + +FILTERDIR ?= /etc/security/pam_bloom/filters.d +DESTDIR ?= + +COMMON_OBJS = bloom.o mmh3.o +PAM_OBJS = pam_bloom.o $(COMMON_OBJS) +CREATE_OBJS = pam_bloom_create.o $(COMMON_OBJS) + +FILTERS = rockyou.txt.bloom + +PAM_CONFIG_DIR ?= /usr/share/pam-configs +PAM_CONFIG = pam-configs/pam_bloom + +.PHONY: all clean install uninstall + +all: $(PAM_TARGET) $(CREATE_TARGET) + +$(PAM_TARGET): $(PAM_OBJS) + $(CC) $(LDFLAGS) -shared -o $@ $(PAM_OBJS) $(PAM_LDLIBS) + +$(CREATE_TARGET): $(CREATE_OBJS) + $(CC) $(LDFLAGS) -o $@ $(CREATE_OBJS) $(CREATE_LDLIBS) + +pam_bloom.o: pam_bloom.c bloom.h + $(CC) $(CFLAGS) -c -o $@ $< + +pam_bloom_create.o: pam_bloom_create.c bloom.h + $(CC) $(CFLAGS) -c -o $@ $< + +bloom.o: bloom.c bloom.h mmh3.h + $(CC) $(CFLAGS) -c -o $@ $< + +mmh3.o: mmh3.c mmh3.h + $(CC) $(CFLAGS) -c -o $@ $< + +install: all + install -d "$(DESTDIR)$(BINDIR)" + install -m 0755 $(CREATE_TARGET) "$(DESTDIR)$(BINDIR)/$(CREATE_TARGET)" + + install -d "$(DESTDIR)$(PAMDIR)" + install -m 0755 $(PAM_TARGET) "$(DESTDIR)$(PAMDIR)/$(PAM_TARGET)" + + install -d -m 0755 "$(DESTDIR)$(FILTERDIR)" + install -m 0644 $(FILTERS) "$(DESTDIR)$(FILTERDIR)/" + + install -d "$(DESTDIR)$(PAM_CONFIG_DIR)" + install -m 0644 $(PAM_CONFIG) \ + "$(DESTDIR)$(PAM_CONFIG_DIR)/pam_bloom" + +uninstall: + rm -f "$(DESTDIR)$(BINDIR)/$(CREATE_TARGET)" + rm -f "$(DESTDIR)$(PAMDIR)/$(PAM_TARGET)" + rm -f "$(DESTDIR)$(PAM_CONFIG_DIR)/pam_bloom" + +clean: + rm -f $(PAM_TARGET) $(CREATE_TARGET) \ + $(PAM_OBJS) pam_bloom_create.o -- cgit v1.2.3