1# Written by Simon Josefsson <simon@josefsson.org>.
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
33DISTCHECK_CONFIGURE_FLAGS = --enable-gcc-warnings
34
35AM_CFLAGS = $(WARN_CFLAGS)
36
37# The library.
38
39lib_LTLIBRARIES = libyubikey.la
40include_HEADERS = yubikey.h
41
42libyubikey_la_SOURCES = yktoken.c ykhex.c ykcrc.c ykaes.c
43libyubikey_la_SOURCES += libyubikey.map
44libyubikey_la_LDFLAGS = -no-undefined \
45	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
46
47if HAVE_LD_VERSION_SCRIPT
48libyubikey_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libyubikey.map
49else
50libyubikey_la_LDFLAGS += -export-symbols-regex '^yubikey_.*'
51endif
52
53# The command line tools.
54
55bin_PROGRAMS = modhex ykparse ykgenerate
56
57modhex_SOURCES = modhex.c
58modhex_LDADD = ./libyubikey.la
59
60ykparse_SOURCES = ykparse.c
61ykparse_LDADD = ./libyubikey.la
62
63ykgenerate_SOURCES = ykgenerate.c
64ykgenerate_LDADD = ./libyubikey.la
65
66dist_man_MANS = modhex.1 ykparse.1 ykgenerate.1
67DISTCLEANFILES = $(dist_man_MANS)
68
69SUFFIXES = .1.txt .1
70.1.txt.1:
71	$(A2X) --format=manpage -a revdate="Version $(VERSION)" $<
72
73MANSOURCES = modhex.1.txt ykparse.1.txt ykgenerate.1.txt
74EXTRA_DIST = $(MANSOURCES) simple.mk THANKS
75
76# Maintainer rules
77
78indent:
79	indent *.c *.h tests/*.c
80	indent *.c *.h tests/*.c
81
82ChangeLog:
83	cd $(srcdir) && git2cl > ChangeLog
84
85PROJECT = yubico-c
86
87release:
88	@if test -z "$(KEYID)"; then \
89		echo "Try this instead:"; \
90		echo "  make release KEYID=[PGPKEYID]"; \
91		echo "For example:"; \
92		echo "  make release KEYID=2117364A"; \
93		exit 1; \
94	fi
95	@if test ! -d "$(YUBICO_WWW_REPO)"; then \
96		echo "yubico www repo not found!"; \
97		echo "Make sure that YUBICO_WWW_REPO is set"; \
98		exit 1; \
99	fi
100	@head -3 $(srcdir)/NEWS | grep -q "Version $(VERSION) .released `date -I`" || \
101		(echo 'error: You need to update date/version in $(srcdir)/NEWS'; exit 1)
102	rm -f $(srcdir)/ChangeLog
103	make ChangeLog distcheck
104	gpg --detach-sign --default-key $(KEYID) $(PACKAGE)-$(VERSION).tar.gz
105	gpg --verify $(PACKAGE)-$(VERSION).tar.gz.sig
106	cd $(srcdir) && git push
107	cd $(srcdir) && git tag -u $(KEYID) -m $(VERSION) $(PACKAGE)-$(VERSION)
108	cd $(srcdir) && git push --tags
109	$(YUBICO_WWW_REPO)/save-mans $(PROJECT) $(MANSOURCES)
110	$(YUBICO_WWW_REPO)/publish $(PROJECT) $(VERSION) $(PACKAGE)-$(VERSION).tar.gz*
111