git.fiddlerwoaroof.com
Raw Blame History
CXXFLAGS += -fPIC -fno-stack-protector
CFLAGS += -fPIC -fno-stack-protector

OBJS = logging.o conversation.o token.o dual_control.o
HEADERS = logging.h test_support.h token.h

MODULELIB = pam_dual_control.so

UNAME_S := $(shell uname -s)


.PHONY: all
all: dual_control.a

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

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

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



t_%.o: %.cc
	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -D UNIT_TEST -o $@ $<

#dual_control_test: dual_control_test.o t_dual_control.o
#	$(CXX) $(CXXFLAGS) $(CPPLAGS)  -lpam -o $@ $^
#
#logging_test: logging_test.o t_logging.o
#	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -lpam -o $@ $^
#
#token_test: token_test.o t_token.o
#	$(CXX) $(CXXFLAGS) $(CPPFLAGS)  -lpam -o $@ $^

user_test: user_test.o t_user.o
	$(CXX) $(CXXFLAGS) $(CPPFLAGS)  -o $@ $^

validator_test: validator_test.o t_validator.o
	$(CXX) $(CXXFLAGS) $(CPPFLAGS)  -o $@ $^

conversation_test: conversation_test.o t_conversation.o
	$(CXX) $(CXXFLAGS) $(CPPFLAGS)  -o $@ $^

.PHONY: test
test: validator_test conversation_test
	@./validator_test
	@./conversation_test

#	@./dual_control_test
#	@./logging_test
#	@./token_test
#	@echo all tests passed

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