PROJECT_NAME=cyrus_imap
PROJECT_VERSION=2.1.13
PROJECT_DIR=$(PROJECT_NAME)-$(PROJECT_VERSION)
PROJECT_ARCHIVE=$(PROJECT_DIR).tar.gz
PATCH_NAME=patch
PATCH_VERSION=1.1
PATCH_DIR=$(PATCH_NAME)-$(PATCH_VERSION)
PATCH_ARCHIVE=$(PATCH_DIR).tar.gz
EXTRAS_NAME=extras
EXTRAS_VERSION=1.0
EXTRAS_DIR=$(EXTRAS_NAME)-$(EXTRAS_VERSION)
EXTRAS_ARCHIVE=$(EXTRAS_DIR).tar.gz
EXPORT_TOOL_NAME=amsmailtool
EXPORT_TOOL_VERSION=1.0
EXPORT_TOOL_DIR=$(EXPORT_TOOL_NAME)-$(EXPORT_TOOL_VERSION)
EXPORT_TOOL_ARCHIVE=$(EXPORT_TOOL_DIR).tar.gz
DLLIB_NAME=dlcompat
DLLIB_VERSION=20010505
DLLIB_DIR=$(DLLIB_NAME)-$(DLLIB_VERSION)
DLLIB_ARCHIVE=$(DLLIB_DIR).tar.gz
SILENT=@
ECHO=echo
CP=cp
RM=rm
MV=mv
RANLIB=ranlib
DSTROOT=/
ETCDIR=/private/etc
SHAREDIR=/usr/share/man
TOOLSDIR=/usr/bin/cyrus/tools
SASCRIPTS= cyrus
SASCRIPTSDIR=/System/Library/ServerSetup/SetupExtras
SETUPEXTRASDIR=SetupExtras
GNUTAR=gnutar
PROJECT_FILES=Makefile $(PATCH_ARCHIVE) $(DB_ARCHIVE) $(EXTRAS_ARCHIVE) $(DLLIB_ARCHIVE) $(EXPORT_TOOL_ARCHIVE)
CYRUS_TOOLS= dohash mkimap mupdate-loadgen.pl not-mkdep rehash \
translatesieve undohash upgradesieve
CYRUS_CONFIG = \
--host=powerpc-apple \
--with-dbdir=/usr/local/BerkeleyDB \
--with-sasl=/usr \
--with-openssl=/usr \
--with-auth=krb \
--enable-murder \
--with-pidfile=/var/run/cyrus-master.pid \
--with-cyrus-prefix=$(DSTROOT)/usr/bin/cyrus \
--prefix=$(DSTROOT)/usr/bin/cyrus \
--exec-prefix=$(DSTROOT)/usr/bin/cyrus
include $(MAKEFILEPATH)/pb_makefiles/platform.make
include $(MAKEFILEPATH)/pb_makefiles/commands-$(OS).make
GNUTAR=gnutar
default:: do_untar configure do_build
default:: do_untar configure do_build
install:: configure do_build do_install do_clean
installlocal:: configure do_build do_install
clean:: do_clean
configure:: do_untar do_build_db do_patch do_configure
installhdrs:: do_installhdrs
installsrc:: do_installsrc
do_untar:
$(SILENT) $(ECHO) "Untarring $(PROJECT_DIR)..."
$(SILENT) if [ ! -e $(PROJECT_DIR)/README ]; then\
$(GNUTAR) -xzf $(PROJECT_ARCHIVE);\
fi
$(SILENT) $(ECHO) "Untarring $(PATCH_DIR)..."
$(SILENT) if [ ! -e $(PATCH_DIR)/README.PATCH ]; then\
$(GNUTAR) -xzf $(PATCH_ARCHIVE);\
fi
$(SILENT) $(ECHO) "Untarring $(EXTRAS_DIR)..."
$(SILENT) if [ ! -e $(EXTRAS_DIR)/README ]; then\
$(GNUTAR) -xzf $(EXTRAS_ARCHIVE);\
fi
$(SILENT) $(ECHO) "Untarring $(DLLIB_DIR)..."
$(SILENT) if [ ! -e $(DLLIB_DIR)/README ]; then\
$(GNUTAR) -xzf $(DLLIB_ARCHIVE);\
fi
$(SILENT) $(ECHO) "Untarring $(EXPORT_TOOL_DIR)..."
$(SILENT) if [ ! -e $(EXPORT_TOOL_DIR)/README ]; then\
$(GNUTAR) -xzf $(EXPORT_TOOL_ARCHIVE);\
fi
$(SILENT) $(ECHO) "Untarring complete."
do_patch:
$(SILENT) $(ECHO) "Applying $(PATCH_DIR) to source $(PROJECT_NAME)..."
$(SILENT) ($(CD) "$(SRCROOT)/$(PATCH_DIR)" && $(CP) -r * "$(SRCROOT)/$(PROJECT_DIR)")
$(SILENT) $(ECHO) "Applying $(PATCH_NAME) patch complete."
do_configure:
$(SILENT) $(ECHO) "Configuring $(PROJECT_NAME)..."
$(SILENT) ($(CD) "$(SRCROOT)/$(PROJECT_DIR)" && ./configure $(CYRUS_CONFIG))
$(SILENT) $(ECHO) "Configuring $(PROJECT_NAME) complete."
do_install: $(DSTROOT) $(DSTROOT)$(ETCDIR) $(DSTROOT)$(TOOLSDIR) $(DSTROOT)$(SHAREDIR) $(DSTROOT)$(SASCRIPTSDIR)
$(SILENT) $(ECHO) "Installing $(PROJECT_NAME)..."
$(SILENT) ($(CD) "$(SRCROOT)/$(PROJECT_DIR)" && make install)
for file in $(CYRUS_TOOLS); \
do \
$(CD) "$(SRCROOT)/$(PROJECT_DIR)/tools" && $(CP) $$file $(DSTROOT)$(TOOLSDIR) || exit 1; \
done
$(SILENT) ($(CD) "$(SRCROOT)/$(PROJECT_DIR)/etc" && $(CP) cyrus.conf.default $(DSTROOT)$(ETCDIR))
$(SILENT) ($(CD) "$(SRCROOT)/$(PROJECT_DIR)/etc" && $(CP) imapd.conf.default $(DSTROOT)$(ETCDIR))
$(SILENT) ($(MV) "$(DSTROOT)/usr/bin/cyrus/man/man8/master.8" "$(DSTROOT)/usr/bin/cyrus/man/man8/cyrus-master.8" )
$(SILENT) ($(CD) "$(DSTROOT)/usr/bin/cyrus/man" && $(CP) -r * "$(DSTROOT)/$(SHAREDIR)/" )
$(SILENT) ($(RM) -r "$(DSTROOT)/usr/bin/cyrus/include" )
$(SILENT) ($(RM) -r "$(DSTROOT)/usr/bin/cyrus/man" )
$(SILENT) ($(RM) -r "$(DSTROOT)/usr/bin/cyrus/lib" )
$(SILENT) if [ -e "$(DSTROOT)/usr/bin/cyrus/Library" ]; then\
$(RM) -r "$(DSTROOT)/usr/bin/cyrus/Library";\
fi
$(SILENT) if [ -e "$(DSTROOT)/usr/bin/cyrus/System" ]; then\
$(RM) -r "$(DSTROOT)/usr/bin/cyrus/System";\
fi
$(SILENT) if [ -e "$(DSTROOT)/usr/bin/cyrususr" ]; then\
$(MV) "$(DSTROOT)/usr/bin/cyrususr" "$(DSTROOT)/usr/bin/cyrus/";\
fi
$(SILENT) ($(CD) "$(SRCROOT)/$(EXPORT_TOOL_DIR)" && /usr/bin/pbxbuild install DSTROOT="$(DSTROOT)")
$(SILENT) ($(CD) "$(SRCROOT)/$(PROJECT_DIR)/$(SETUPEXTRASDIR)" && $(CP) cyrus $(DSTROOT)$(SASCRIPTSDIR))
for file in $(SASCRIPTS); \
do \
$(CD) "$(SRCROOT)/$(PROJECT_DIR)/$(SETUPEXTRASDIR)" && $(CP) $$file $(DSTROOT)$(SASCRIPTSDIR) || exit 1; \
done
$(SILENT) $(ECHO) "Install $(PROJECT_NAME) complete."
do_build_db:
$(SILENT) $(ECHO) "Building $(DLLIB_DIR)...."
$(SILENT) ($(CD) "$(SRCROOT)/$(DLLIB_DIR)" && make install prefix="$(SRCROOT)/$(EXTRAS_DIR)")
$(SILENT) ($(CD) "$(SRCROOT)/$(EXTRAS_DIR)/lib" && $(RANLIB) libdl.a)
$(SILENT) ($(CD) "$(SRCROOT)/$(EXTRAS_DIR)/lib" && $(RM) libdl.dylib)
$(SILENT) $(ECHO) "Building $(DLLIB_DIR) Complete."
do_build: $(DSTROOT) $(DSTROOT)$(ETCDIR) $(DSTROOT)$(TOOLSDIR) $(DSTROOT)$(SHAREDIR)
$(SILENT) $(ECHO) "Building $(PROJECT_NAME)...."
$(SILENT) $(ECHO) "Building $(PROJECT_DIR)...."
$(SILENT) ($(CD) "$(SRCROOT)/$(PROJECT_DIR)" && make)
$(SILENT) $(ECHO) "Building $(PROJECT_DIR) Complete."
$(SILENT) $(ECHO) "Building $(EXPORT_TOOL_DIR)...."
$(SILENT) ($(CD) "$(SRCROOT)/$(EXPORT_TOOL_DIR)" && /usr/bin/pbxbuild DSTROOT="$(DSTROOT)")
$(SILENT) $(ECHO) "Building $(EXPORT_TOOL_DIR) Complete."
$(SILENT) $(ECHO) "Build complete."
do_installhdrs:
$(SILENT) $(ECHO) "No headers to install"
do_installsrc:
$(SILENT) $(ECHO) "Installing $(PROJECT_NAME) sources in $(SRCROOT)..."
$(SILENT) -$(RM) -rf $(SRCROOT)
$(SILENT) $(MKDIRS) $(SRCROOT)
$(SILENT) $(CP) $(PROJECT_FILES) $(SRCROOT)
$(SILENT) $(CP) $(PROJECT_ARCHIVE) $(SRCROOT)
do_clean:
$(SILENT) $(ECHO) "Cleaning $(PROJECT_NAME)..."
$(SILENT) -$(RM) -rf $(PROJECT_DIR)
$(SILENT) -$(RM) -rf $(PATCH_DIR)
$(SILENT) -$(RM) -rf $(EXTRAS_DIR)
$(SILENT) -$(RM) -rf $(DLLIB_DIR)
$(SILENT) -$(RM) -rf $(EXPORT_TOOL_DIR)
$(SILENT) -$(RM) -rf $(DSTROOT)/usr/bin/cyrus/Prefix/lib/perl5
$(SILENT) $(ECHO) "Cleaning complete."
$(DSTROOT):
$(SILENT) $(MKDIRS) $@
$(DSTROOT)$(ETCDIR):
$(SILENT) $(MKDIRS) $@
$(DSTROOT)$(TOOLSDIR):
$(SILENT) $(MKDIRS) $@
$(DSTROOT)$(SHAREDIR):
$(SILENT) $(MKDIRS) $@
$(DSTROOT)$(SASCRIPTSDIR):
$(SILENT) $(MKDIRS) $@