INSTALL ?= install
CFLAGS ?= -O2 -g -Wall -Wformat-security -DHAVE_LIBAUDIT=1

CPPFLAGS += -DUSE_CRYPT_R
CFLAGS += -fPIC -fvisibility=hidden
LDFLAGS += -Wl,-x -lpam -laudit

all: faillock pam_faillock.so

pam_faillock.o: pam_faillock.c
	gcc -DHAVE_CONFIG_H -fpie -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c -o pam_faillock.o pam_faillock.c

main.o: main.c
	gcc -DHAVE_CONFIG_H -fpie -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c -o main.o main.c

faillock.o: faillock.c
	gcc -DHAVE_CONFIG_H -fpie -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c -o faillock.o faillock.c

pam_faillock.so: pam_faillock.o faillock.o
	gcc -shared -fPIC -DPIC  pam_faillock.o faillock.o -lpam -ldl -laudit -O2 -m64 -mtune=generic -Wl,-z -Wl,relro -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -Wl,-soname -Wl,pam_faillock.so -o pam_faillock.so

faillock: faillock.o main.o
	gcc -fpie -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Wl,-z -Wl,now -pie -Wl,-z -Wl,relro -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -o faillock main.o faillock.o -lpam -ldl -laudit

clean:
	$(RM) *.o *.so faillock
