imapfilter/configure

252 lines
5.9 KiB
Bash
Executable File

#!/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
# 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 \$(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 \$(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