2011-03-06 06:58:58 -05:00
|
|
|
#!/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
|
|
|
|
|
|
|
|
|
2011-03-06 07:32:33 -05:00
|
|
|
# Change to the source directory
|
|
|
|
cd src
|
|
|
|
|
|
|
|
|
2011-03-06 06:58:58 -05:00
|
|
|
# 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
|
2011-03-06 07:32:33 -05:00
|
|
|
cp -f ../doc/\$(MAN_BIN) \$(DESTDIR)\$(MANDIR)/man1 && \\
|
2011-03-06 06:58:58 -05:00
|
|
|
chmod 0644 \$(DESTDIR)\$(MANDIR)/man1/\$(MAN_BIN)
|
|
|
|
if test ! -d \$(DESTDIR)\$(MANDIR)/man5; then \\
|
|
|
|
mkdir -p \$(DESTDIR)\$(MANDIR)/man5; fi
|
2011-03-06 07:32:33 -05:00
|
|
|
cp -f ../doc/\$(MAN_CONFIG) \$(DESTDIR)\$(MANDIR)/man5 && \\
|
2011-03-06 06:58:58 -05:00
|
|
|
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
|