Initial Import
[profile/ivi/check.git] / Makefile.am
1 ## Process this file with automake to produce Makefile.in
2
3 ## run tests after everything else
4
5 SUBDIRS = lib src doc . tests
6
7 ## FIXME: maybe we don't need this line
8
9 AM_MAKEINFOFLAGS = -I$(top_srcdir)/doc/example
10
11 ## what to clean
12
13 CLEANFILES = *~\
14         $(PACKAGE)-$(VERSION).tar.gz\
15         ChangeLog.bak
16
17 ## what additional things to distribute
18
19 EXTRA_DIST = SVNChangeLog ChangeLogOld check.pc.in $(m4data_DATA)
20
21 ## install docs
22 docdir = $(datadir)/doc/$(PACKAGE)
23 doc_DATA = SVNChangeLog ChangeLog ChangeLogOld NEWS README COPYING.LESSER
24
25 ## install check.m4 with AM_PATH_CHECK in it
26 m4datadir = $(datadir)/aclocal
27 m4data_DATA = check.m4
28
29 ## install check.pc
30 pcdatadir = $(libdir)/pkgconfig
31 pcdata_DATA = check.pc
32
33 SVNChangeLog:
34         if [ -e .svn ] ; then \
35         svn log -v @abs_top_srcdir@ > $@ ;\
36         else \
37         echo "SVN Changelog not available" > $@ ;\
38         fi
39
40 ACLOCAL_AMFLAGS = -I m4
41
42 doc/check.html:
43         $(MAKE) -C doc check.html
44
45 # check we can do a clean build, including docs.
46 # perhaps we should check for out of date (svn st -u) and modified files.
47 prereleasecheck: doc/check.html
48         -$(MAKE) distclean
49         autoreconf -i && ./configure \
50             && ulimit -c 0 && \
51             $(MAKE) distcheck
52
53 RELEASE_VERSION ?= unset
54 SF_USERNAME ?= unset
55 releasevars:
56         @if [ "unset" = "${RELEASE_VERSION}" ]; then \
57             echo "set RELEASE_VERSION to something like 0.9.6 to prepare a release."; \
58             false; \
59         fi
60         @if [ "unset" = "${SF_USERNAME}" ]; then \
61             echo "set SF_USERNAME to your sourceforge username"; \
62             false; \
63         fi
64
65 .svnrelease:
66         svn st -u | grep "Status against revision:" | awk '{ print $$4 }' > $@
67
68 preparerelease: releasevars .svnrelease prereleasecheck
69         @echo checking we have can connect properly to do release tasks before tagging:
70         sftp -b /dev/null ${SF_USERNAME}@web.sourceforge.net
71         sftp -b /dev/null ${SF_USERNAME}@frs.sourceforge.net
72         @echo tagging release from `cat .svnrelease`
73         svn cp -m "Release check-${RELEASE_VERSION}" -r`cat .svnrelease` https://svn.sourceforge.net/svnroot/check/trunk https://svn.sourceforge.net/svnroot/check/tags/check-${RELEASE_VERSION}
74         svn co https://svn.sourceforge.net/svnroot/check/tags/check-${RELEASE_VERSION} check-${RELEASE_VERSION}
75         @echo "You need to:"
76         @echo "Update TODO and make sure version numbers match appropriately."
77         @echo "Update configure.ac with new version numbers."
78         @echo "Then svn commit these changes."
79         @echo "CTRL-D when finished or 'exit 1' to abort."
80         @echo "aborting will leave the partially prepared release in" `pwd`
81         cd check-${RELEASE_VERSION} && ${SHELL} && autoreconf -i && ./configure
82         $(MAKE) -C check-${RELEASE_VERSION} dorelease
83         -svn merge -r`cat .svnrelease`:`svn st -u check-${RELEASE_VERSION} | grep "Status against revision:" | awk '{ print $4 }'` check-${RELEASE_VERSION} .
84         @echo "Please resolve any conflicts. Be sure to also restore the 'In Development:' line to NEWS."
85         ${SHELL}
86         svn ci -m "Merge back release ${RELEASE_VERSION}"
87         @echo "Cleaning up workdir."
88         rm -rf check-${RELEASE_VERSION}
89
90
91 dorelease: releasevars doc/check.html prereleasecheck
92         cp NEWS NEWS-${RELEASE_VERSION}.txt
93         @echo "You need to:"
94         @echo "cut out old release news from NEWS-${RELEASE_VERSION}.txt."
95         @echo "CTRL-D to complete, or exit 1 to abort."
96         ${SHELL}
97         @echo uploading...
98         rsync -e ssh NEWS-${RELEASE_VERSION}.txt ${SF_USERNAME},check@frs.sourceforge.net:/home/frs/project/c/ch/check/check/${RELEASE_VERSION}/
99         rsync -e ssh check-${RELEASE_VERSION}.tar.gz ${SF_USERNAME},check@frs.sourceforge.net:/home/frs/project/c/ch/check/check/${RELEASE_VERSION}/
100         rsync -rlvC doc/. ${SF_USERNAME},check@web.sourceforge.net:/home/groups/c/ch/check/htdocs
101         @echo
102         @echo Uploaded...
103         @echo "visit https://sourceforge.net/project/admin/explorer.php?group_id=28255"
104         @echo "Mark the NEWS file in check/${RELEASE_VERSION} as being a release note."
105         @echo "And the tar.gz file as being 'all platforms', using the NEWS file for release notes."
106         @echo "visit https://sourceforge.net/projects/check/files/"
107         @echo "Check it looks ok. It may take 15 minutes to show up."
108         @echo Finally, mail check-devel ,announce and users at lists dot sourceforge dot net
109         @echo an email (template is in HACKING) about this announcement.
110         @echo NEWS-release can be found at `pwd`/NEWS-${RELEASE_VERSION}.txt
111         @echo Note that with the tarballs, docs amd NEWS up, the release is done :P
112         @echo "so you'll have to manually roll back if you abort."
113         @echo "CTRL-D to complete, or exit 1 to abort."
114         ${SHELL}
115         
116
117 .PHONY: releasevars prereleasecheck preparerelease dorelease .svnrelease