1# Written by Simon Josefsson <simon@yubico.com>. 2# Copyright (c) 2006-2014 Yubico AB 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions are 7# met: 8# 9# * Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 12# * Redistributions in binary form must reproduce the above 13# copyright notice, this list of conditions and the following 14# disclaimer in the documentation and/or other materials provided 15# with the distribution. 16# 17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 29SUBDIRS = . tests 30 31ACLOCAL_AMFLAGS = -I m4 32 33AM_CFLAGS = $(WARN_CFLAGS) 34AM_CPPFLAGS = @YKPERS_CFLAGS@ 35 36libdir = $(PAMDIR) 37 38lib_LTLIBRARIES = pam_yubico.la 39 40pam_yubico_la_SOURCES = drop_privs.h drop_privs.c 41# XXX add -Wl,-x too? PAM documentation suggests it. 42pam_yubico_la_LIBADD = @LTLIBYUBIKEY@ @LTLIBYKCLIENT@ @LIBLDAP@ @LIBPAM@ 43pam_yubico_la_LIBADD += libpam_util.la libpam_real.la 44pam_yubico_la_LDFLAGS = -module -avoid-version 45 46noinst_LTLIBRARIES = libpam_util.la libpam_real.la 47libpam_util_la_SOURCES = util.c util.h 48libpam_util_la_LIBADD = @LTLIBYUBIKEY@ @YKPERS_LIBS@ 49 50libpam_real_la_SOURCES = pam_yubico.c 51 52# The command line tools. 53 54if YKPERS 55bin_PROGRAMS = ykpamcfg 56endif 57 58ykpamcfg_SOURCES = ykpamcfg.c 59ykpamcfg_LDADD = libpam_util.la 60 61if YKPERS 62dist_man1_MANS = ykpamcfg.1 63endif 64 65dist_man8_MANS = pam_yubico.8 66DISTCLEANFILES = $(dist_man1_MANS) $(dist_man8_MANS) 67 68MANSOURCES = pam_yubico.8.txt ykpamcfg.1.txt 69EXTRA_DIST = doc/Authentication_Using_Challenge-Response.adoc doc/MacOS_X_Challenge-Response.adoc doc/Two_Factor_PAM_Configuration.adoc doc/Ubuntu_FreeRadius_YubiKey.adoc doc/YubiKey_and_FreeRADIUS_1FA_via_PAM.adoc doc/YubiKey_and_FreeRADIUS_via_PAM.adoc doc/YubiKey_and_OpenVPN_via_PAM.adoc doc/Yubikey_and_Radius_via_PAM.adoc doc/Yubikey_and_SELinux_on_Fedora_18_and_up.adoc doc/Yubikey_and_SSH_via_PAM.adoc 70EXTRA_DIST += $(MANSOURCES) 71EXTRA_DIST += tests/aux/ykval.pl tests/aux/ldap.pl tests/aux/authfile 72 73SUFFIXES = .1.txt .1 .8.txt .8 74.1.txt.1: 75 $(A2X) -L --format=manpage -a revdate="Version $(VERSION)" $< 76 77.8.txt.8: 78 $(A2X) -L --format=manpage -a revdate="Version $(VERSION)" $< 79 80 81if ENABLE_COV 82AM_CFLAGS += --coverage 83AM_LDFLAGS = --coverage 84 85cov-reset: 86 rm -fr coverage 87 find . -name "*.gcda" -exec rm {} \; 88 lcov --directory . --zerocounters 89 90cov-report: 91 mkdir -p coverage 92 lcov --compat-libtool --directory . --capture --output-file coverage/app.info 93 lcov --extract coverage/app.info '*.c' --output-file coverage/app2.info 94 genhtml -o coverage/ coverage/app2.info 95 96cov: 97 make cov-report 98 99clean-local: 100 make cov-reset 101 102check: 103 make cov 104endif 105 106if ENABLE_CPPCHECK 107cppcheck: 108 $(CPPCHECK) -q -v -f --enable=all $(DEFS) . 109endif 110 111# Release 112 113ChangeLog: 114 cd $(srcdir) && git2cl > ChangeLog 115 116check-doc-dist: 117 perl -pe "s,^EXTRA_DIST = .*,EXTRA_DIST = `cd $(srcdir) && ls doc/*.adoc | xargs echo`," < $(srcdir)/Makefile.am > check-doc-dist.tmp 118 diff -ur $(srcdir)/Makefile.am check-doc-dist.tmp || \ 119 (rm -f check-doc-dist.tmp; echo 'error: please update $(srcdir)/Makefile.am to include all docs'; exit 1) 120 rm -f check-doc-dist.tmp 121 122PROJECT = yubico-pam 123 124release: 125 @if test -z "$(KEYID)"; then \ 126 echo "Try this instead:"; \ 127 echo " make release KEYID=[PGPKEYID]"; \ 128 echo "For example:"; \ 129 echo " make release KEYID=2117364A"; \ 130 exit 1; \ 131 fi 132 @head -3 $(srcdir)/NEWS | grep -q "Version $(VERSION) .released `date -I`" || \ 133 (echo 'error: Update date/version in $(srcdir)/NEWS.'; exit 1) 134 @if test ! -d "$(YUBICO_WWW_REPO)"; then \ 135 echo "WWW repo not found!"; \ 136 echo "Make sure that YUBICO_WWW_REPO is set"; \ 137 exit 1; \ 138 fi 139 rm -f ChangeLog 140 make check-doc-dist ChangeLog distcheck 141 gpg --detach-sign --default-key $(KEYID) $(PACKAGE)-$(VERSION).tar.gz 142 gpg --verify $(PACKAGE)-$(VERSION).tar.gz.sig 143 cd $(srcdir) && git push 144 cd $(srcdir) && git tag -u $(KEYID) -m $(VERSION) $(VERSION) 145 cd $(srcdir) && git push --tags 146 $(YUBICO_WWW_REPO)/publish $(PROJECT) $(VERSION) $(PACKAGE)-$(VERSION).tar.gz* 147