Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
225 lines (195 sloc) 7.42 KB
#
# @configure_input@
#
# Copyright (c) 1994-2008 Carnegie Mellon University. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. The name "Carnegie Mellon University" must not be used to
# endorse or promote products derived from this software without
# prior written permission. For permission or any legal
# details, please contact
# Carnegie Mellon University
# Center for Technology Transfer and Enterprise Creation
# 4615 Forbes Avenue
# Suite 302
# Pittsburgh, PA 15213
# (412) 268-7393, fax: (412) 268-7395
# innovation@andrew.cmu.edu
#
# 4. Redistributions of any form whatsoever must retain the following
# acknowledgment:
# "This product includes software developed by Computing Services
# at Carnegie Mellon University (http://www.cmu.edu/computing/)."
#
# CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
# THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
# FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
# AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
# OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
SUBDIRS = man @PRE_SUBDIRS@ lib @SIEVE_SUBDIRS@ @SERVER_SUBDIRS@ \
imtest @SNMP_SUBDIRS@ @EXTRA_SUBDIRS@ @CUNIT_SUBDIRS@
DISTSUBDIRS = doc
srcdir = @srcdir@
VPATH = @srcdir@
INSTALL = @INSTALL@
SHELL = /bin/sh
@SET_MAKE@
prefix = @prefix@
exec_prefix = @exec_prefix@
cyrus_prefix = @cyrus_prefix@
mandir = @mandir@
YACC = @YACC@
LEX = @LEX@
COMPILE_ET = @COMPILE_ET@
PACKAGE = cyrus-imapd
VERSION = 2.5
GIT_VERSION = $(VERSION).git$(shell date +'%Y%m%d%H%M')
all:: xversion
@for d in $(SUBDIRS); \
do \
(cd $$d; echo "### Making" all "in" `pwd`; \
$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) all) || exit 1; \
done
snapshot::
@echo "creating snapshot $(GIT_VERSION)"
@if [ \! -d snapshot ]; then mkdir snapshot ; fi
@git archive --format=tar --prefix=$(PACKAGE)-$(GIT_VERSION)/ HEAD | tar -C snapshot/ -x -f -
@echo "/* $(PACKAGE) $(GIT_VERSION) */" > snapshot/$(PACKAGE)-$(GIT_VERSION)/xversion.h
@echo "#define _CYRUS_VERSION \"git$(VERSION)+`git log --pretty=oneline $(PACKAGE)-$(VERSION)..HEAD | wc -l`\"" >> snapshot/$(PACKAGE)-$(GIT_VERSION)/xversion.h
@echo "#define CYRUS_GITVERSION \"`git log --abbrev=8 --pretty=\"format:%h %ci\" -1 | cut -d\" \" -f1,2`\"" >> snapshot/$(PACKAGE)-$(GIT_VERSION)/xversion.h
@touch snapshot/$(PACKAGE)-$(GIT_VERSION)/xversion
@cd snapshot/$(PACKAGE)-$(GIT_VERSION) ; sh SMakefile
@for d in $(SUBDIRS) $(DISTSUBDIRS); \
do \
(cd snapshot/$(PACKAGE)-$(GIT_VERSION)/$$d; \
if [ -f Makefile.dist ]; then \
echo "### Making" snapshot "in" `pwd`; \
$(MAKE) $(MFLAGS) YACC='$(YACC)' LEX='$(LEX)' \
COMPILE_ET='$(COMPILE_ET)' -f Makefile.dist dist ; \
fi) || exit 1; \
done
@echo "creating tarfile"
tar -C snapshot -c -f - $(PACKAGE)-$(GIT_VERSION) | gzip -9 > $(PACKAGE)-$(GIT_VERSION).tar.gz
@rm -rf snapshot
dist:: distgit
@echo "creating configure"
@cd dist/cyrus-imapd-$(VERSION) ; sh SMakefile
@for d in $(SUBDIRS) $(DISTSUBDIRS); \
do \
(cd dist/cyrus-imapd-$(VERSION)/$$d; \
if [ -f Makefile.dist ]; then \
echo "### Making" dist "in" `pwd`; \
$(MAKE) $(MFLAGS) YACC='$(YACC)' LEX='$(LEX)' \
COMPILE_ET='$(COMPILE_ET)' -f Makefile.dist dist ; \
fi) || exit 1; \
done
@echo "creating tarfile"
@cd dist ; tar cf - cyrus-imapd-$(VERSION) | \
gzip -9 > ../cyrus-imapd-$(VERSION).tar.gz
rm -f distgit
rm -rf dist
distgit:
if [ \! -d dist ]; then mkdir dist ; fi
@echo "checking out the distribution from tag $(PACKAGE)-$(VERSION)"
git archive --format=tar --prefix=$(PACKAGE)-$(VERSION)/ $(PACKAGE)-$(VERSION) | tar -C dist -x -f -
echo "/* Release $(PACKAGE)-$(VERSION) */" > dist/$(PACKAGE)-$(VERSION)/xversion.h
echo "#define _CYRUS_VERSION \"v$(VERSION)\"" >> dist/$(PACKAGE)-$(VERSION)/xversion.h
echo "#define CYRUS_GITVERSION \"`git log --abbrev=8 --pretty=\"format:%h %ci\" -1 | cut -d\" \" -f1,2`\"" >> dist/$(PACKAGE)-$(VERSION)/xversion.h
touch dist/$(PACKAGE)-$(VERSION)/xversion
touch distgit
xversion xversion.h:
@echo "/* Development version */" > xversion.h.tmp
@echo "#define _CYRUS_VERSION \"git$(VERSION)+`git log --pretty=oneline $(PACKAGE)-$(VERSION)..HEAD | wc -l`\"" >> xversion.h.tmp
@echo "#define CYRUS_GITVERSION \"`git log --abbrev=8 --pretty=\"format:%h %ci\" -1 | cut -d\" \" -f1,2`\"" >> xversion.h.tmp
@cmp -s xversion.h.tmp xversion.h || mv xversion.h.tmp xversion.h
@rm -f xversion.h.tmp
check:
@-for d in $(SUBDIRS); \
do \
(cd $$d; echo "### Making" check "in" `pwd`; \
$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) check ; \
echo "### Done with" `pwd`); \
done
valgrind:
$(MAKE) VG=yes check
install::
$(srcdir)/install-sh -d ${DESTDIR}$(exec_prefix)/bin
$(srcdir)/install-sh -d ${DESTDIR}$(exec_prefix)/lib
$(srcdir)/install-sh -d ${DESTDIR}$(prefix)/include/cyrus
$(srcdir)/install-sh -d ${DESTDIR}$(mandir)/man1
$(srcdir)/install-sh -d ${DESTDIR}$(mandir)/man3
$(srcdir)/install-sh -d ${DESTDIR}$(mandir)/man5
$(srcdir)/install-sh -d ${DESTDIR}$(mandir)/man8
@for d in $(SUBDIRS); \
do \
(cd $$d; echo "### Making" install "in" `pwd`; \
$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) install) || exit 1; \
done
clean::
@-for d in $(SUBDIRS); \
do \
(cd $$d; echo "### Making" clean "in" `pwd`; \
$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) clean ; \
echo "### Done with" `pwd`); \
done
distclean::
@-for d in $(SUBDIRS); \
do \
(cd $$d; echo "### Making" clean "in" `pwd`; \
$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) distclean ; \
echo "### Done with" `pwd`); \
done
rm -f Makefile Makefile.bak \
config.status config.log config.cache config.h
depend::
@for d in $(SUBDIRS); \
do \
(cd $$d; echo "### Making" depend "in" `pwd`; \
$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) depend) || exit 1; \
done
Makefile: Makefile.in config.status
$(SHELL) config.status
config.status: configure
$(SHELL) config.status --recheck
configure: configure.in
cd $(srcdir); rm -f config.cache; autoconf
coverage_all:
$(MAKE) EXTRACFLAGS="--coverage" EXTRALDFLAGS="--coverage" all
coverage_check:
$(MAKE) EXTRACFLAGS="--coverage" EXTRALDFLAGS="--coverage" check
tags cscope:
find $(SUBDIRS) -type f -name '*.[ch]' > cs.files
cscope -b -k -i cs.files
$(RM) cs.files
checkdepend::
depend::
echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
echo 'w' >>eddep
cp Makefile Makefile.bak
ed -s Makefile < eddep
rm eddep
echo '' >> Makefile
echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
echo '# see make depend above' >> Makefile
# DO NOT DELETE THIS LINE -- make depend uses it
# The following rule ensures that "make depend" gets run at least
# once before a "make all". The "depend" rule above removes
# this rule from the Makefile the first time the "make depend"
# has been run after the Makefile is generated by Configure
checkdepend:: depend
# IF YOU PUT STUFF HERE IT WILL GO AWAY
# see make depend above