blob: cd5879bffc61ec19895c4fe43027af46dd93ad82 [file] [log] [blame]
Brian Aker95d9fd52012-10-15 22:44:03 -04001# vim:ft=automake
2
Jacob Appelbaum8f5dbfd2013-02-13 23:13:44 -08003AM_CFLAGS="-D__STDC_LIMIT_MACROS"
Jacob Appelbaum5b0ee572013-02-06 00:06:04 -05004
Brian Aker870a3142012-10-17 02:10:49 -04005BUILT_SOURCES=
Fabian Keil00bc5fc2013-03-24 16:19:23 +01006doc_DATA=
Brian Aker95d9fd52012-10-15 22:44:03 -04007EXTRA_DIST=
8TESTS=
9bin_PROGRAMS=
Jacob Appelbaum0fc62572013-04-20 22:48:35 -070010sbin_PROGRAMS=
Brian Aker95d9fd52012-10-15 22:44:03 -040011check_PROGRAMS=
12lib_LTLIBRARIES=
13man_MANS=
14noinst_HEADERS=
15noinst_LTLIBRARIES=
16noinst_PROGRAMS=
17
Jacob Appelbaum3a7e58a2013-04-15 14:28:37 -070018if !TARGET_OSX
Brian Aker95d9fd52012-10-15 22:44:03 -040019# GNU style is "make check", this will make check and test work
Fabian Keilb484d9b2013-03-15 15:50:44 +010020TESTS+= src/conf_unittest src/proxy-bio_unittest
21if TARGET_LINUX
ellyaa04c012013-06-24 15:36:01 -040022TESTS+= src/tlsdated_unittest src/event_unittest
Fabian Keilb484d9b2013-03-15 15:50:44 +010023endif
Brian Aker95d9fd52012-10-15 22:44:03 -040024test: check
Jacob Appelbaum3a7e58a2013-04-15 14:28:37 -070025endif
Brian Aker95d9fd52012-10-15 22:44:03 -040026
Brian Aker6fa3a082012-10-17 00:16:32 -040027ACLOCAL_AMFLAGS= -I m4
Brian Aker95d9fd52012-10-15 22:44:03 -040028
Jacob Appelbaum66064ff2012-07-11 09:44:34 +020029# Our Debian version
Jacob Appelbaum2c3a39f2012-07-11 09:54:34 +020030DEBIAN_VERSION := $(shell if [ -e debian/changelog ]; then cat debian/changelog|head -n1|cut -d\- -f2| head -c 1; else echo "unknown"; fi)
Jacob Appelbaum5de8b0a2012-02-02 01:43:22 +010031
Fabian Keil00bc5fc2013-03-24 16:19:23 +010032doc_DATA+= AUTHORS
33doc_DATA+= CHANGELOG
34doc_DATA+= LICENSE
35doc_DATA+= README
36doc_DATA+= TODO
37
38EXTRA_DIST+= $(doc_DATA)
Brian Aker95d9fd52012-10-15 22:44:03 -040039EXTRA_DIST+= apparmor-profile
Brian Aker95d9fd52012-10-15 22:44:03 -040040EXTRA_DIST+= autogen.sh
41
42include src/include.am
Jacob Appelbaume9b80422012-07-09 23:01:43 +020043
Brian Akerb12abad2012-10-16 01:25:00 -040044# Cleanup individual files in order to preserve uninstall/etc order
45maintainer-clean-local:
46 @rm -r -f autom4te.cache
47 @rm Makefile.in
48 @rm aclocal.m4
49 @rm config.in
50 @rm config/config.guess
51 @rm config/config.sub
52 @rm config/depcomp
53 @rm config/install-sh
54 @rm config/ltmain.sh
55 @rm config/missing
56 @rm configure
57 @rmdir config
58 @rm m4/libtool.m4
59 @rm m4/ltoptions.m4
60 @rm m4/ltsugar.m4
61 @rm m4/ltversion.m4
62 @rm m4/lt~obsolete.m4
Brian Aker6fa3a082012-10-17 00:16:32 -040063 @rm -f tlsdate-*.tar.gz
Jacob Appelbaum8f5dbfd2013-02-13 23:13:44 -080064 -rm src/configmake.h
Brian Akerd4ad5192012-10-16 03:55:56 -040065 @find ./ | $(GREP) \~$$ | xargs rm -f
Christian Grothoff16fe93e2012-02-14 00:11:23 +010066
Brian Aker870a3142012-10-17 02:10:49 -040067certdir = @TLSDATE_CA_ROOTS@
68cert_DATA = ca-roots/tlsdate-ca-roots.conf
69EXTRA_DIST+= $(cert_DATA)
70
elly677a1362013-01-15 10:58:50 -050071confdir = @TLSDATE_CONF_DIR@
Fabian Keile8afc452013-03-15 15:50:44 +010072if TARGET_LINUX
elly677a1362013-01-15 10:58:50 -050073conf_DATA = etc/tlsdated.conf
74EXTRA_DIST+= $(conf_DATA)
Fabian Keile8afc452013-03-15 15:50:44 +010075endif
Brian Aker870a3142012-10-17 02:10:49 -040076
Jacob Appelbaum5de8b0a2012-02-02 01:43:22 +010077# Our documentation
Brian Aker95d9fd52012-10-15 22:44:03 -040078man_MANS+= man/tlsdate.1
79man_MANS+= man/tlsdate-helper.1
Fabian Keile8afc452013-03-15 15:50:44 +010080
81if TARGET_LINUX
Jacob Appelbaum1d55e9b2013-04-20 22:22:31 -070082man_MANS+= man/tlsdated.8
Jacob Appelbaum7727ec92012-10-30 22:39:20 +010083man_MANS+= man/tlsdate-routeup.1
elly677a1362013-01-15 10:58:50 -050084man_MANS+= man/tlsdated.conf.5
Jacob Appelbaume9ea1a72013-01-22 23:25:57 +010085man_MANS+= man/tlsdate-dbus-announce.1
Fabian Keile8afc452013-03-15 15:50:44 +010086endif
87
Brian Aker95d9fd52012-10-15 22:44:03 -040088EXTRA_DIST+= $(man_MANS)
Jacob Appelbaum5de8b0a2012-02-02 01:43:22 +010089
Brian Akerb12abad2012-10-16 01:25:00 -040090.PHONY: debian_orig git-tag git-push git-tag-debian deb really-clean valgrind_test
Jacob Appelbaumc61b0d02012-07-09 20:53:49 +020091debian_orig:
Brian Aker95d9fd52012-10-15 22:44:03 -040092 $(MAKE) distcheck
Jacob Appelbaumc61b0d02012-07-09 20:53:49 +020093 mv tlsdate-$(VERSION).tar.gz ../tlsdate_$(VERSION).orig.tar.gz
Jacob Appelbaumcd24b1c2012-07-09 21:54:34 +020094
95git-tag:
96 git tag -u 0xD81D840E -s tlsdate-$(VERSION)
97
Jacob Appelbaum66064ff2012-07-11 09:44:34 +020098git-tag-debian:
99 git tag -u 0xD81D840E -s tlsdate-$(VERSION)-debian-${DEBIAN_VERSION}
100
Jacob Appelbaumcd24b1c2012-07-09 21:54:34 +0200101git-push:
102 git push --tags
103 git push
Jacob Appelbaum66064ff2012-07-11 09:44:34 +0200104
105deb: debian_orig
Jacob Appelbaumaecba052012-10-30 16:00:42 +0100106 debuild -i'.*' -rfakeroot -uc -us -d
Jacob Appelbaum76630ba2012-08-03 00:43:43 -0700107
Jacob Appelbaum13ec4ee2013-01-10 11:36:38 -0800108# This generates code coverage data that is useful for continuous integration
109lcov:
110# ./configure --enable-code-coverage-checks && make && # ... run everything and then...
111 lcov --directory src -b . --capture --output-file tlsdate.lcov && genhtml -o lcov/ tlsdate.lcov
112
Jacob Appelbaum76630ba2012-08-03 00:43:43 -0700113valgrind_test:
Brian Aker95d9fd52012-10-15 22:44:03 -0400114 TESTS_ENVIRONMENT="./libtool --mode=execute valgrind --trace-children=yes --leak-check=full" ./src/tlsdate -v -V -n -H encrypted.google.com
Jacob Appelbaum28604422012-10-12 18:25:31 -0700115
116# This allows us to parse the Mozilla NSS CA trusted root list and ensures we
117# respect the trust bits as they are set - using them directly without the
118# context is dangerous. This gives us a basic set of CA roots to trust for use
119# with tlsdate without relying on any system CA list.
120# You'll need agl's extract-nss-root-certs to recreate this file:
121# https://github.com/agl/extract-nss-root-certs
122update_ca_root_data:
123 curl https://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt\?raw\=1 -o ca-roots/certdata.txt
Jacob Appelbaum0f520172012-10-15 19:18:44 -0700124 go run ~/Documents/code/git/extract-nss-root-certs/convert_mozilla_certdata.go ca-roots/certdata.txt > ca-roots/tlsdate-ca-roots.conf
125 rm ca-roots/certdata.txt
126
Jacob Appelbaum60d725f2013-04-26 13:31:22 -0700127test_run:
128 ./src/tlsdate-helper www.ptb.de 443 tlsv1 racket verbose ca-roots/tlsdate-ca-roots.conf dont-set-clock showtime no-fun holdfast none
129
Jacob Appelbaumd16abc32012-10-30 16:22:36 +0100130BUILT_SOURCES+= src/configmake.h
131noinst_HEADERS+= src/configmake.h
132src/configmake.h: ${top_srcdir}/Makefile.in
Brian Aker870a3142012-10-17 02:10:49 -0400133 @echo "Making $@"
134 @rm -f $@-t $@
135 @{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
136 echo '#define TLSDATE_CONFIG "$(sysconfdir)/ca-roots/"'; \
Jacob Appelbaum12e15c92013-01-07 11:17:32 -0800137 echo '#define TLSDATE_CERTFILE "$(sysconfdir)/tlsdate/ca-roots/tlsdate-ca-roots.conf"'; \
elly677a1362013-01-15 10:58:50 -0500138 echo '#define TLSDATE_CONF_DIR "$(sysconfdir)/tlsdate/"'; \
Jacob Appelbaumb0c69922012-11-07 21:17:52 -0800139 echo '#define TLSDATE_HELPER "$(bindir)/tlsdate-helper"'; \
140 echo '#define TLSDATE "$(bindir)/tlsdate"'; \
141 echo '#define TLSDATED "$(bindir)/tlsdated"'; \
Elly Fong-Jonesa5e7fbb2013-01-08 14:08:33 -0500142 echo '#define TLSDATE_DBUS_ANNOUNCE "$(bindir)/tlsdate-dbus-announce"'; \
Brian Aker870a3142012-10-17 02:10:49 -0400143 } | sed '/""/d' > $@-t
144 @if diff $@-t $@ >/dev/null 2>&1 ; then \
145 rm @-t ; \
146 else \
147 mv $@-t $@ ; \
148 fi
149