0ea9517a |
CXXFLAGS += -fPIC -fno-stack-protector -std=c++11
CFLAGS += -fPIC -fno-stack-protector
|
47031e12 |
LDFLAGS_COMMON = -lpam
ifeq ($(UNAME_S), Linux)
LDFLAGS = $(LDFLAGS_COMMON) -l:libssl.a -l:libcrypto.a -ldl -lz
else
LDFLAGS = $(LDFLAGS_COMMON) @LIBS@
endif
|
739113f9 |
|
f2a91ef8 |
INTEGRATION_OBJS = sys_syslog.o sys_fstream.o sys_unistd.o sys_pwd.o sys_pam.o \
|
e068c486 |
sys_stdlib.o sys_time.o
|
f1b86ea0 |
OBJS = dual_control.o request.o validator.o conversation.o user.o token.o logger.o session.o installer.o system.o generator.o base32.o random_source.o
|
0ca7f0ac |
TEST_SOURCES := $(wildcard *_test.cc)
TESTS := $(patsubst %.cc,%.out,$(TEST_SOURCES))
TESTRUNS := $(patsubst %.out,RUN_%,$(TESTS))
|
739113f9 |
|
b5ea7efd |
MODULELIB = pam_dual_control.so
|
739113f9 |
|
184eb507 |
UNAME_S := $(shell uname -s)
|
e993f970 |
|
233b0981 |
.PHONY: all
|
e21fc4bc |
all: .depend dual_control.a dual_control
|
d5a78642 |
.PHONY: version
version:
@echo COMPILER VERSION --------------------------------
$(CXX) --version
|
2278a14d |
|
aa91d76d |
dual_control.a: dual_control.o dual_control_integrate.o $(OBJS) $(INTEGRATION_OBJS)
|
233b0981 |
ar rvs $@ $^
|
49f68f43 |
ranlib $@
|
f2a91ef8 |
dual_control: dual_control_tool.o $(OBJS) $(INTEGRATION_OBJS)
|
8c972eb0 |
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS)
|
e21fc4bc |
|
233b0981 |
.PHONY: clean
|
49f68f43 |
clean:
|
9523791b |
@rm -f *.o *.a
|
0ca7f0ac |
@rm -f *.out
|
ef39fb9d |
@rm ./.depend
|
49f68f43 |
|
233b0981 |
.PHONY: distclean
distclean: clean
|
4262a925 |
@git clean -xdf
|
2278a14d |
|
e21fc4bc |
.depend: $(OBJS:.o=.cc) $(TEST_SOURCES)
|
ef39fb9d |
rm -f ./.depend
|
45f9920b |
$(CXX) -std=c++11 -MM $^ > ./.depend;
|
4a1812fd |
|
c9d28422 |
-include .depend
|
7de08ef9 |
|
0ca7f0ac |
%_test.out: %_test.o $(OBJS)
|
8c972eb0 |
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS)
|
0ca7f0ac |
|
3479ca93 |
RUN_%: %.out
@echo running $<
|
0ca7f0ac |
@./$<
|
de34378f |
|
8e934bd2 |
.PHONY: test
|
0ca7f0ac |
test: $(TESTRUNS)
|
f4d80c59 |
@echo Tests Passing
|
55259c47 |
|
b5ea7efd |
.PHONY: install
|
4aeb68ec |
install: $(OBJS) $(INTEGRATION_OBJS)
|
184eb507 |
ifeq ($(UNAME_S), Linux)
|
47031e12 |
$(CXX) -lpam -shared -o $(DESTDIR)@PAM_MODULE_DIRECTORY@/$(MODULELIB) dual_control_integrate.o $(OBJS) $(INTEGRATION_OBJS) -l:libssl.a -l:libcrypto.a -ldl -lz
|
184eb507 |
else
@echo installation recipe not known for $(UNAME_S)
endif
|
2779d6ca |
mkdir -p $(DESTDIR)/@bindir@
cp dual_control $(DESTDIR)/@bindir@/
|
bb635c67 |
cp setup_user_account.sh $(DESTDIR)/@bindir@/
|
2779d6ca |
chmod a+x $(DESTDIR)/@bindir@/dual_control
|
184eb507 |
|
f6a9ff01 |
.PHONY: format
format:
|
210c0dc8 |
@./format.sh *.cc *.h
|