#!/bin/sh # Default values prefix="/usr/local" bindir="$prefix/bin" sharedir="$prefix/share/imapfilter" mandir="$prefix/man" ssltls="yes" crammd5="yes" incdirs="-I/usr/local/include" libdirs="-L/usr/local/lib" mycflags="$CFLAGS -Wall -O" myldflags="$LDFLAGS" libs="-lm -llua -lpcre" libssl="-lssl" libcrypto="-lcrypto" defs="-DMAKEFILE_SHAREDIR='\"\$(SHAREDIR)\"'" bin="imapfilter" # Get options and arguments while getopts "d:p:b:s:m:o:h" opt do case $opt in d | p) prefix=$OPTARG bindir=$prefix/bin sharedir=$prefix/share/imapfilter mandir=$prefix/man ;; b) bindir=$OPTARG ;; s) sharedir=$OPTARG ;; m) mandir=$OPTARG ;; o) head=`echo $OPTARG | cut -d= -f1` body=`echo $OPTARG | cut -d= -f2` if [ $head = "ssltls" ] then if [ $body = "yes" ]; then ssltls="yes" elif [ $body = "no" ]; then ssltls="no" fi elif [ $head = "crammd5" ] then if [ $body = "yes" ]; then crammd5="yes" elif [ $body = "no" ]; then crammd5="no" fi fi ;; h | *) cat << EOF Usage: configure [-h] [-p prefix] [-b bindir] [-s sharedir] [-m mandir] [-o option=argument] Description: -h This brief usage and description message. -p prefix Installation path for program's files [$prefix] -b bindir Installation path for binaries [$bindir] -s sharedir Installation path for libraries [$sharedir] -m mandir Installation path for manual pages [$mandir] -o option=argument Enabling/disabling of program's compilation options. Options: ssltls Secure Socket Layer and Transport Layer Security \ [$ssltls] crammd5 Challenge-Response Authentication Mechanism [$crammd5] EOF exit 1 ;; esac done # Print values cat << EOF Installation directory: $prefix Binaries directory: $bindir Architecture independent libraries: $sharedir Manual pages directory: $mandir Secure Socket Layer and Transport Layer Security: $ssltls Challenge-Response Authentication Mechanism: $crammd5 EOF # Defines if [ $ssltls = "no" ] then defs="$defs -DNO_SSLTLS" fi if [ $crammd5 = "no" ] then defs="$defs -DNO_CRAMMD5" fi # Libraries if [ $ssltls = "yes" ] then libs="$libs $libssl $libcrypto" elif [ $crammd5 = "yes" ] then libs="$libs $libcrypto" fi # Binary name uname -a | grep -qi cygwin if [ $? = 0 ] then bin="imapfilter.exe" fi # Change to the source directory cd src # Backup of original Makefile if [ ! -f .Makefile ]; then cp -f Makefile .Makefile; fi # Write Makefile mv -f Makefile Makefile~ cat > Makefile << EOF DESTDIR = BINDIR = $bindir SHAREDIR = $sharedir MANDIR = $mandir INCDIRS = $incdirs LIBDIRS = $libdirs MYCFLAGS = $mycflags MYLDFLAGS = $myldflags DEFS = $defs CFLAGS = \$(MYCFLAGS) \$(DEFS) \$(INCDIRS) LDFLAGS = \$(MYLDFLAGS) \$(LIBDIRS) LIBS = $libs MAN_BIN = imapfilter.1 MAN_CONFIG = imapfilter_config.5 COMMON_LUA = common.lua SET_LUA = set.lua REGEX_LUA = regex.lua ACCOUNT_LUA = account.lua MAILBOX_LUA = mailbox.lua MESSAGE_LUA = message.lua OPTIONS_LUA = options.lua AUXILIARY_LUA = auxiliary.lua DEPRECATED_LUA = deprecated.lua BIN = $bin OBJ = auth.o buffer.o cert.o core.o file.o imap.o imapfilter.o list.o log.o \\ lua.o memory.o misc.o namespace.o pcre.o regexp.o request.o \\ response.o session.o signal.o socket.o system.o all: \$(BIN) \$(BIN): \$(OBJ) \$(CC) -o \$(BIN) \$(LDFLAGS) \$(OBJ) \$(LIBS) \$(OBJ): imapfilter.h buffer.o imap.o imapfilter.o namespace.o request.o response.o: buffer.h cert.o file.o imapfilter.o log.o lua.o: pathnames.h imapfilter.o log.o session.o: list.h imapfilter.o regexp.o response.o: regexp.h auth.o cert.o imap.o imapfilter.o log.o request.o response.o session.o \\ socket.o: session.h imapfilter.o: version.h install: \$(BIN) if test ! -d \$(DESTDIR)\$(BINDIR); then \\ mkdir -p \$(DESTDIR)\$(BINDIR); fi cp -f \$(BIN) \$(DESTDIR)\$(BINDIR) && \\ chmod 0755 \$(DESTDIR)\$(BINDIR)/\$(BIN) if test ! -d \$(DESTDIR)\$(SHAREDIR); then \\ mkdir -p \$(DESTDIR)\$(SHAREDIR); fi cp -f \$(COMMON_LUA) \$(DESTDIR)\$(SHAREDIR) && \\ chmod 0644 \$(DESTDIR)\$(SHAREDIR)/\$(COMMON_LUA) cp -f \$(SET_LUA) \$(DESTDIR)\$(SHAREDIR) && \\ chmod 0644 \$(DESTDIR)\$(SHAREDIR)/\$(SET_LUA) cp -f \$(REGEX_LUA) \$(DESTDIR)\$(SHAREDIR) && \\ chmod 0644 \$(DESTDIR)\$(SHAREDIR)/\$(REGEX_LUA) cp -f \$(ACCOUNT_LUA) \$(DESTDIR)\$(SHAREDIR) && \\ chmod 0644 \$(DESTDIR)\$(SHAREDIR)/\$(ACCOUNT_LUA) cp -f \$(MAILBOX_LUA) \$(DESTDIR)\$(SHAREDIR) && \\ chmod 0644 \$(DESTDIR)\$(SHAREDIR)/\$(MAILBOX_LUA) cp -f \$(MESSAGE_LUA) \$(DESTDIR)\$(SHAREDIR) && \\ chmod 0644 \$(DESTDIR)\$(SHAREDIR)/\$(MESSAGE_LUA) cp -f \$(OPTIONS_LUA) \$(DESTDIR)\$(SHAREDIR) && \\ chmod 0644 \$(DESTDIR)\$(SHAREDIR)/\$(OPTIONS_LUA) cp -f \$(AUXILIARY_LUA) \$(DESTDIR)\$(SHAREDIR) && \\ chmod 0644 \$(DESTDIR)\$(SHAREDIR)/\$(AUXILIARY_LUA) cp -f \$(DEPRECATED_LUA) \$(DESTDIR)\$(SHAREDIR) && \\ chmod 0644 \$(DESTDIR)\$(SHAREDIR)/\$(DEPRECATED_LUA) if test ! -d \$(DESTDIR)\$(MANDIR)/man1; then \\ mkdir -p \$(DESTDIR)\$(MANDIR)/man1; fi cp -f ../doc/\$(MAN_BIN) \$(DESTDIR)\$(MANDIR)/man1 && \\ chmod 0644 \$(DESTDIR)\$(MANDIR)/man1/\$(MAN_BIN) if test ! -d \$(DESTDIR)\$(MANDIR)/man5; then \\ mkdir -p \$(DESTDIR)\$(MANDIR)/man5; fi cp -f ../doc/\$(MAN_CONFIG) \$(DESTDIR)\$(MANDIR)/man5 && \\ chmod 0644 \$(DESTDIR)\$(MANDIR)/man5/\$(MAN_CONFIG) deinstall: rm -f \$(DESTDIR)\$(BINDIR)/\$(BIN) \\ \$(DESTDIR)\$(SHAREDIR)/\$(COMMON_LUA) \\ \$(DESTDIR)\$(SHAREDIR)/\$(SET_LUA) \\ \$(DESTDIR)\$(SHAREDIR)/\$(REGEX_LUA) \\ \$(DESTDIR)\$(SHAREDIR)/\$(ACCOUNT_LUA) \\ \$(DESTDIR)\$(SHAREDIR)/\$(MAILBOX_LUA) \\ \$(DESTDIR)\$(SHAREDIR)/\$(MESSAGE_LUA) \\ \$(DESTDIR)\$(SHAREDIR)/\$(OPTIONS_LUA) \\ \$(DESTDIR)\$(SHAREDIR)/\$(AUXILIARY_LUA) \\ \$(DESTDIR)\$(SHAREDIR)/\$(DEPRECATED_LUA) \\ \$(DESTDIR)\$(MANDIR)/man1/\$(MAN_BIN) \\ \$(DESTDIR)\$(MANDIR)/man5/\$(MAN_CONFIG) uninstall: deinstall clean: rm -f \$(OBJ) \$(BIN) imapfilter.core core *.orig *.BAK *~ distclean: clean @if test -f .Makefile; then mv -f .Makefile Makefile; fi EOF exit 0