]> err.no Git - yubikey-personalization.old/blob - Makefile.am
Merge tag 'v1.6.4'
[yubikey-personalization.old] / Makefile.am
1 # Written by Richard Levitte <richard@levitte.org>.
2 # Copyright (c) 2008-2012 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
29 # Subdirectories
30
31 SUBDIRS= ykcore . tests
32
33 ACLOCAL_AMFLAGS = -I m4
34
35 AM_CPPFLAGS = -I$(srcdir)/ykcore -I$(srcdir)/rfc4634
36
37 # The library.
38
39 ykpers_includedir=$(includedir)/ykpers-1
40 ykpers_include_HEADERS = ykpers.h ykcore/ykstatus.h ykcore/ykcore.h ykcore/ykdef.h
41
42 lib_LTLIBRARIES = libykpers-1.la
43 libykpers_1_la_SOURCES = ykpers.c ykpbkdf2.h ykpbkdf2.c
44 libykpers_1_la_SOURCES += rfc4634/hmac.c rfc4634/usha.c rfc4634/sha.h   \
45         rfc4634/sha1.c rfc4634/sha224-256.c rfc4634/sha384-512.c        \
46         rfc4634/sha-private.h
47 libykpers_1_la_SOURCES += ykpers-1.pc.in libykpers-1.map
48 libykpers_1_la_LIBADD = $(LTLIBYUBIKEY) ./ykcore/libykcore.la
49 libykpers_1_la_LDFLAGS = -no-undefined \
50         -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
51 libykpers_1_la_DEPENDENCIES = libykpers-1.map
52
53 pkgconfigdir = $(libdir)/pkgconfig
54 pkgconfig_DATA = ykpers-1.pc
55
56 if HAVE_LD_VERSION_SCRIPT
57 libykpers_1_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libykpers-1.map
58 else
59 libykpers_1_la_LDFLAGS += -export-symbols-regex '^(ykp|yk|ykds)_.*|_yk.*_errno_location'
60 endif
61
62 # The command line tools.
63
64 bin_PROGRAMS = ykpersonalize ykchalresp
65
66 ykpersonalize_SOURCES = ykpersonalize.c ykpers-args.h ykpers-args.c
67 ykpersonalize_LDADD = ./libykpers-1.la ./ykcore/libykcore.la
68
69 ykchalresp_SOURCES = ykchalresp.c
70 ykchalresp_LDADD = ./libykpers-1.la ./ykcore/libykcore.la
71
72 dist_man1_MANS = ykpersonalize.1 ykchalresp.1
73
74 # Dist docs from wiki.
75 EXTRA_DIST = doc/Compatibility.asciidoc doc/Make-Release.asciidoc doc/Read-Me.asciidoc doc/USB-Hid-Issue.asciidoc doc/Windows-Build.asciidoc
76
77 # Dist contrib stuff.
78 EXTRA_DIST += contrib/README contrib/programming.sh
79
80 # Windows rules.
81 EXTRA_DIST += ykpers4win.mk
82
83 udevrulesdir=@udevrulesdir@
84 dist_udevrules_DATA = \
85         70-yubikey.rules
86
87 # Release
88
89 PROJECT = yubikey-personalization
90
91 ChangeLog:
92         cd $(srcdir) && git2cl > ChangeLog
93
94 check-doc-dist:
95         perl -pe "s,^EXTRA_DIST = .*,EXTRA_DIST = `cd $(srcdir) && ls doc/*.asciidoc | grep -v Todo.ascii | xargs echo`," \
96                  < $(srcdir)/Makefile.am > check-doc-dist.tmp
97         diff -ur $(srcdir)/Makefile.am check-doc-dist.tmp || \
98                 (rm -f check-doc-dist.tmp; echo 'error: please update $(srcdir)/Makefile.am to include all docs'; exit 1)
99         rm -f check-doc-dist.tmp
100
101 release:
102         @if test -z "$(USER)" || test -z "$(KEYID)"; then \
103                 echo "Try this instead:"; \
104                 echo "  make release USER=[GOOGLEUSERNAME] KEYID=[PGPKEYID]"; \
105                 echo "For example:"; \
106                 echo "  make release USER=simonyubico@gmail.com KEYID=2117364A"; \
107                 exit 1; \
108         fi
109         @head -3 $(srcdir)/NEWS | grep -q "Version $(VERSION) .released `date -I`" || \
110                 (echo 'error: You need to update date/version in $(srcdir)/NEWS, see doc/MakeRelease.wiki.'; exit 1)
111         rm -f $(srcdir)/ChangeLog
112         make check-doc-dist ChangeLog distcheck
113         gpg --detach-sign --default-key $(KEYID) $(PACKAGE)-$(VERSION).tar.gz
114         gpg --verify $(PACKAGE)-$(VERSION).tar.gz.sig
115         cd $(srcdir) && git push
116         cd $(srcdir) && git tag -u $(KEYID)! -m $(VERSION) v$(VERSION)
117         cd $(srcdir) && git push --tags
118         mkdir -p ../releases/$(PACKAGE)/ && \
119                 cp -v $(PACKAGE)-$(VERSION).tar.gz* ../releases/$(PACKAGE)/
120         googlecode_upload.py -s "OpenPGP signature for $(PACKAGE) $(VERSION)." \
121          -p $(PROJECT) -u $(USER) $(PACKAGE)-$(VERSION).tar.gz.sig
122         googlecode_upload.py -s "$(PACKAGE) $(VERSION)" \
123          -p $(PROJECT) -u $(USER) $(PACKAGE)-$(VERSION).tar.gz