# Makefile for cyrus imap server and associated programs # $Id: Makefile.in,v 1.10 2005/03/05 00:36:42 dasenbro Exp $ # # @configure_input@ # # Copyright (c) 1998-2000 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 other legal # details, please contact # Office of Technology Transfer # Carnegie Mellon University # 5000 Forbes Avenue # Pittsburgh, PA 15213-3890 # (412) 268-4387, fax: (412) 268-7395 # tech-transfer@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. # DEFINES=-DSETPROCTITLE # \Seen state database. Either 'db' (berkeley db) or # 'local' (legacy flat file). SEEN=seen_db.o # IMAP IDLE mechanism IDLE=idle_@WITH_IDLE@.o srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ CC = @CC@ INSTALL = @INSTALL@ RANLIB = @RANLIB@ AWK = @AWK@ CYRUS_USER=@cyrus_user@ CYRUS_GROUP=@cyrus_group@ BI_RC_CFLAGS = @BI_RC_CFLAGS@ DEFS = @DEFS@ @LOCALDEFS@ CPPFLAGS = -I.. -I$(srcdir)/../lib @COM_ERR_CPPFLAGS@ @SIEVE_CPPFLAGS@ @CPPFLAGS@ @SASLFLAGS@ IMAP_LIBS = @IMAP_LIBS@ @LIB_RT@ SIEVE_OBJS = @SIEVE_OBJS@ SIEVE_LIBS = @SIEVE_LIBS@ IMAP_COM_ERR_LIBS = @IMAP_COM_ERR_LIBS@ LIB_WRAP = @LIB_WRAP@ LIBS = $(IMAP_LIBS) $(IMAP_COM_ERR_LIBS) DEPLIBS = ../lib/libcyrus.a ../lib/libcyrus_min.a @DEPLIBS@ CFLAGS = @CFLAGS@ @BI_RC_CFLAGS@ LDFLAGS = @LDFLAGS@ @COM_ERR_LDFLAGS@ @BI_RC_CFLAGS@ -bind_at_load -framework DirectoryService -framework Security -framework CoreFoundation SHELL = /bin/sh MAKEDEPEND = @MAKEDEPEND@ COMPILE_ET=@COMPILE_ET@ # # Some notes on purify -- # you probably want to run the make as the cyrus user as # purify sets the cache directory based on the user. So, # if you don't, purify can't find the instrumented libraries # and so you don't get any useful information. # It may also help to run purify by hand to instrument any of # the dynamic libraries that may crop up during run time. # PURIFY=/usr/local/bin/purify PUREOPT= -best-effort -logfile=/tmp/pure/%v.%p.log -always_use_cache_dir -cachedir=/usr/tmp/$(USER) QUANTIFY=/usr/local/bin/quantify QUANTOPT=-windows=no -filename-prefix=/tmp/quant/%v.%p -write-summary-file= -logfile=/tmp/quant/%v.%p.log prefix = @prefix@ exec_prefix = @exec_prefix@ cyrus_prefix = @cyrus_prefix@ service_path = @service_path@ LOBJS= append.o mailbox.o mboxlist.o mupdate-client.o mboxname.o message.o \ global.o imap_error.o mupdate_error.o proc.o setproctitle.o \ convert_code.o duplicate.o saslclient.o saslserver.o signals.o \ annotate.o search_engines.o squat.o squat_internal.o mbdump.o \ imapparse.o telemetry.o user.o notify.o protocol.o quota_db.o \ AppleOD.o \ $(SEEN) $(IDLE) IMAPDOBJS=pushstats.o backend.o imapd.o index.o tls.o version.o PROXYDOBJS=backend.o pushstats.o proxyd.o tls.o version.o LMTPOBJS=lmtpstats.o lmtpengine.o spool.o tls.o # Your typical objects for the command line utilities CLIOBJS=cli_fatal.o mutex_fake.o SERVICE=../master/service.o SERVICETHREAD=../master/service-thread.o PROGS = imapd lmtpd pop3d \ fud smmapd reconstruct quota mbpath ipurge \ cyrdump chk_cyrus cvt_cyrusdb deliver ctl_mboxlist \ ctl_deliver ctl_cyrusdb squatter mbexamine cyr_expire arbitron \ @IMAP_PROGS@ BUILTSOURCES = imap_err.c imap_err.h pushstats.c pushstats.h \ lmtpstats.c lmtpstats.h xversion.h mupdate_err.c mupdate_err.h \ nntp_err.c nntp_err.h all: $(BUILTSOURCES) $(PROGS) $(SUIDPROGS) pure: imapd.pure lmtpd.pure proxyd.pure mupdate.pure lmtpproxyd.pure install: $(srcdir)/../install-sh -d ${DESTDIR}$(service_path) for file in $(PROGS); \ do \ $(INSTALL) -s -m 755 $$file $(DESTDIR)$(service_path) || exit 1; \ done ln -f $(DESTDIR)$(service_path)/pop3d $(DESTDIR)$(service_path)/pop3proxyd .c.o: $(CC) -c $(CPPFLAGS) $(DEFS) $(CFLAGS) \ $< ### libimap libimap.a: $(LOBJS) rm -f libimap.a ar cr libimap.a $(LOBJS) $(RANLIB) libimap.a ### Built Source Files xversion: rm -f version.o AWK=$(AWK) $(srcdir)/xversion.sh xversion.h: xversion pushstats.c: pushstats.snmp $(srcdir)/../snmp/snmpgen $(srcdir)/../snmp/snmpgen $(srcdir)/pushstats.snmp pushstats.h: pushstats.c lmtpstats.c: lmtpstats.snmp $(srcdir)/../snmp/snmpgen $(srcdir)/../snmp/snmpgen $(srcdir)/lmtpstats.snmp lmtpstats.h: lmtpstats.c imap_err.c: imap_err.et $(COMPILE_ET) $(srcdir)/imap_err.et imap_err.h: imap_err.c nntp_err.c: nntp_err.et $(COMPILE_ET) $(srcdir)/nntp_err.et nntp_err.h: nntp_err.c mupdate_err.c: mupdate_err.et $(COMPILE_ET) $(srcdir)/mupdate_err.et mupdate_err.h: mupdate_err.c ### Services idled: idled.o mutex_fake.o libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o idled \ idled.o mutex_fake.o libimap.a $(DEPLIBS) $(LIBS) lmtpd: lmtpd.o $(LMTPOBJS) $(SIEVE_OBJS) mutex_fake.o libimap.a $(SIEVE_LIBS) \ $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o lmtpd \ $(SERVICE) lmtpd.o $(LMTPOBJS) $(SIEVE_OBJS) mutex_fake.o \ libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) lmtpd.pure: lmtpd.o $(LMTPOBJS) $(SIEVE_OBJS) mutex_fake.o \ libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) $(PURIFY) $(PUREOPT) $(CC) $(LDFLAGS) -o lmtpd.pure \ $(SERVICE) lmtpd.o $(LMTPOBJS) $(SIEVE_OBJS) mutex_fake.o \ libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) lmtpproxyd: lmtpproxyd.o backend.o $(LMTPOBJS) mutex_fake.o \ libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o lmtpproxyd \ $(SERVICE) lmtpproxyd.o backend.o $(LMTPOBJS) mutex_fake.o \ libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) lmtpproxyd.pure: lmtpproxyd.o backend.o $(LMTPOBJS) mutex_fake.o \ libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) $(PURIFY) $(PUREOPT) $(CC) $(LDFLAGS) -o lmtpproxyd.pure \ $(SERVICE) lmtpproxyd.o backend.o $(LMTPOBJS) mutex_fake.o \ libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) imapd: xversion $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o imapd \ $(SERVICE) $(IMAPDOBJS) mutex_fake.o \ libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) imapd.pure: $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) $(PURIFY) $(PUREOPT) $(CC) $(LDFLAGS) -o imapd.pure \ $(SERVICE) $(IMAPDOBJS) mutex_fake.o libimap.a \ $(DEPLIBS) $(LIBS) $(LIB_WRAP) imapd.quant: $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) $(QUANTIFY) $(QUANTOPT) $(CC) $(LDFLAGS) -o imapd.quant \ $(SERVICE) $(IMAPDOBJS) mutex_fake.o libimap.a \ $(DEPLIBS) $(LIBS) $(LIB_WRAP) proxyd: $(PROXYDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o proxyd \ $(SERVICE) $(PROXYDOBJS) mutex_fake.o libimap.a \ $(DEPLIBS) $(LIBS) $(LIB_WRAP) proxyd.pure: $(PROXYDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) $(PURIFY) $(PUREOPT) $(CC) $(LDFLAGS) -o proxyd.pure \ $(SERVICE) $(PROXYDOBJS) mutex_fake.o libimap.a \ $(DEPLIBS) $(LIBS) $(LIB_WRAP) mupdate: mupdate.o mupdate-slave.o mupdate-client.o mutex_pthread.o tls.o \ libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o mupdate \ $(SERVICETHREAD) mupdate.o mupdate-slave.o mupdate-client.o \ mutex_pthread.o tls.o libimap.a \ $(DEPLIBS) $(LIBS) $(LIB_WRAP) -lpthread mupdate.pure: mupdate.o mupdate-slave.o mupdate-client.o mutex_pthread.o \ libimap.a $(DEPLIBS) $(PURIFY) $(PUREOPT) $(CC) $(LDFLAGS) -o mupdate.pure \ $(SERVICETHREAD) mupdate.o mupdate-slave.o mupdate-client.o \ mutex_pthread.o libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) -lpthread pop3d: pop3d.o backend.o tls.o mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o pop3d pop3d.o backend.o tls.o $(SERVICE) \ mutex_fake.o libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) nntpd: nntpd.o backend.o index.o smtpclient.o spool.o tls.o \ mutex_fake.o nntp_err.o libimap.a $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o nntpd nntpd.o backend.o index.o spool.o \ smtpclient.o tls.o $(SERVICE) mutex_fake.o nntp_err.o \ libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) fud: fud.o libimap.a mutex_fake.o $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o fud $(SERVICE) fud.o mutex_fake.o libimap.a \ $(DEPLIBS) $(LIBS) $(LIB_WRAP) smmapd: smmapd.o libimap.a mutex_fake.o $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o smmapd $(SERVICE) smmapd.o mutex_fake.o libimap.a \ $(DEPLIBS) $(LIBS) $(LIB_WRAP) ### Command Line Utilities arbitron: arbitron.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o arbitron arbitron.o $(CLIOBJS) \ libimap.a $(DEPLIBS) $(LIBS) cvt_cyrusdb: cvt_cyrusdb.o mutex_fake.o libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o cvt_cyrusdb cvt_cyrusdb.o $(CLIOBJS) \ libimap.a $(DEPLIBS) $(LIBS) chk_cyrus: chk_cyrus.o mutex_fake.o libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o chk_cyrus chk_cyrus.o $(CLIOBJS) \ libimap.a $(DEPLIBS) $(LIBS) deliver: deliver.o backend.o $(LMTPOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o deliver deliver.o backend.o $(LMTPOBJS) \ mutex_fake.o libimap.a $(DEPLIBS) $(LIBS) ctl_deliver: ctl_deliver.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o \ $@ ctl_deliver.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) ctl_mboxlist: ctl_mboxlist.o mupdate-client.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o $@ ctl_mboxlist.o mupdate-client.o $(CLIOBJS) \ libimap.a $(DEPLIBS) $(LIBS) ctl_cyrusdb: ctl_cyrusdb.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o \ $@ ctl_cyrusdb.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) cyr_expire: cyr_expire.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o $@ cyr_expire.o $(CLIOBJS) \ libimap.a $(DEPLIBS) $(LIBS) fetchnews: fetchnews.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o \ $@ fetchnews.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) squatter: squatter.o index.o squat_build.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o squatter squatter.o index.o squat_build.o \ $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) mbpath: mbpath.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o mbpath mbpath.o $(CLIOBJS) libimap.a \ $(DEPLIBS) $(LIBS) ipurge: ipurge.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o ipurge ipurge.o $(CLIOBJS) \ libimap.a $(DEPLIBS) $(LIBS) cyrdump: cyrdump.o index.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o cyrdump cyrdump.o index.o $(CLIOBJS) \ libimap.a $(DEPLIBS) $(LIBS) mbexamine: mbexamine.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o \ mbexamine mbexamine.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) reconstruct: reconstruct.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o \ reconstruct reconstruct.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) quota: quota.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o quota quota.o $(CLIOBJS) \ libimap.a $(DEPLIBS) $(LIBS) tls_prune: tls_prune.o tls.o $(CLIOBJS) libimap.a $(DEPLIBS) $(CC) $(LDFLAGS) -o \ $@ tls_prune.o tls.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) ### Other Misc Targets clean: rm -f *.o *.a Makefile.bak makedepend.log \ $(BUILTSOURCES) $(PROGS) $(SUIDPROGS) distclean: clean rm -f Makefile depend: imap_err.h ${MAKEDEPEND} $(CPPFLAGS) $(DEFS) $(CFLAGS) *.c $(srcdir)/*.c 1>makedepend.log 2>&1 # DO NOT DELETE THIS LINE -- make depend depends on it.