/[imapfilter]/imapfilter/config
ViewVC logotype

Annotation of /imapfilter/config

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (hide annotations)
Tue Sep 24 18:49:34 2002 UTC (21 years, 6 months ago) by lefcha
Branch: MAIN
Changes since 1.8: +28 -7 lines
Option to disable memory locking during compilation.

1 lefcha 1.1 #!/bin/sh
2    
3 lefcha 1.2 # Default values
4    
5 lefcha 1.1 destdir="/usr/local"
6     bindir="$destdir/bin"
7     mandir="$destdir/man"
8    
9     debug="yes"
10     checkperms="yes"
11 lefcha 1.9 memlock="yes"
12 lefcha 1.4 encpasswds="yes"
13 lefcha 1.1 ssl="yes"
14    
15     libs=""
16 lefcha 1.4 libenc="-lcrypto"
17 lefcha 1.1 libssl="-lssl -lcrypto"
18    
19     interactive="no"
20    
21    
22     # Get options and arguments
23    
24     while getopts "hid:b:m:o:" opt
25     do
26     case $opt in
27     d)
28     destdir=$OPTARG
29     bindir=$destdir/bin
30     mandir=$destdir/man
31     ;;
32     b)
33     bindir=$OPTARG
34     ;;
35     m)
36     mandir=$OPTARG
37     ;;
38     o)
39 lefcha 1.5 head=`echo $OPTARG | cut -d= -f1`
40     body=`echo $OPTARG | cut -d= -f2`
41     if [ $head = "debug" ]
42     then
43     if [ $body = "yes" ]; then debug="yes"
44     elif [ $body = "no" ]; then debug="no"
45     fi
46     elif [ $head = "checkperms" ]
47     then
48     if [ $body = "yes" ]; then checkperms="yes"
49     elif [ $body = "no" ]; then checkperms="no"
50     fi
51 lefcha 1.9 elif [ $head = "memlock" ]
52     then
53     if [ $body = "yes" ]; then memlock="yes"
54     elif [ $body = "no" ]; then memlock="no"
55     fi
56 lefcha 1.6 elif [ $head = "encpasswds" ]
57     then
58     if [ $body = "yes" ]; then encpasswds="yes"
59 lefcha 1.8 elif [ $body = "no" ]; then encpasswds="no"
60 lefcha 1.6 fi
61 lefcha 1.5 elif [ $head = "ssl" ]
62     then
63     if [ $body = "yes" ]; then ssl="yes"
64     elif [ $body = "no" ]; then ssl="no"
65     fi
66     fi
67 lefcha 1.1 ;;
68     i)
69     interactive="yes"
70     ;;
71     h | *)
72     cat << EOF
73     Usage:
74     config [-hi] [-d destdir] [-b bindir] [-m mandir] [-o option=argument]
75    
76     Description:
77     -h This brief usage and description message.
78     -i Interactive mode.
79     -d destdir Installation path for program's files [/usr/local]
80     -b bindir Installation path for binaries [\$destdir/bin]
81     -m mandir Installation path for manual pages [\$destdir/man]
82     -o option=argument Enabling/disabling of program's options.
83    
84     Options:
85     debug Debugging information, useful during development [yes]
86     checkperms Configuration file's permissions checking [yes]
87 lefcha 1.9 memlock Try to lock memory pages to avoid swapping [yes]
88 lefcha 1.4 encpasswds Encrypted passwords support [yes]
89 lefcha 1.1 ssl Secure Socket Layer and Transport Layer Security [yes]
90     EOF
91     exit 1
92     ;;
93     esac
94     done
95    
96    
97     # Interactive or non-interactive mode
98    
99     if [ $interactive = "yes" ]
100     then
101 lefcha 1.9 printf "Destination directory [$destdir]: "
102 lefcha 1.1 read tmp
103     if [ -n "$tmp" ]; then destdir="$tmp"; fi
104    
105 lefcha 1.9 printf "Binaries directory [$bindir]: "
106 lefcha 1.1 read tmp
107     if [ -n "$tmp" ]; then bindir="$tmp"; fi
108    
109 lefcha 1.9 printf "Manual pages directory [$mandir]: "
110 lefcha 1.1 read tmp
111     if [ -n "$tmp" ]; then mandir="$tmp"; fi
112    
113 lefcha 1.9 printf "Debugging information [$debug]: "
114 lefcha 1.1 read tmp
115     if [ -n "$tmp" ]; then debug="$tmp"; fi
116    
117 lefcha 1.9 printf "Configuration file permissions checking [$checkperms]: "
118 lefcha 1.1 read tmp
119     if [ -n "$tmp" ]; then checkperms="$tmp"; fi
120    
121 lefcha 1.9 printf "Try to lock memory pages to avoid swapping [$memlock]: "
122     read tmp
123     if [ -n "$tmp" ]; then memlock="$tmp"; fi
124    
125     printf "Encrypted passwords support: "
126 lefcha 1.4 read tmp
127     if [ -n "$tmp" ]; then encpasswds="$tmp"; fi
128    
129 lefcha 1.9 printf "Secure Socket Layer and Transport Layer Security [$ssl]: "
130 lefcha 1.1 read tmp
131     if [ -n "$tmp" ]; then ssl="$tmp"; fi
132     else
133     cat << EOF
134     Destination directory: $destdir
135     Binaries directory: $bindir
136     Manual pages directory: $mandir
137     Debugging information: $debug
138     Configuration file permissions checking: $checkperms
139 lefcha 1.9 Try to lock memory pages to avoid swapping: $memlock
140 lefcha 1.4 Encrypted passwords support: $encpasswds
141 lefcha 1.1 Secure Socket Layer and Transport Layer Security: $ssl
142     EOF
143     fi
144    
145    
146     # Libraries
147    
148     if [ $ssl = "yes" ]
149     then
150     libs="$libs $libssl"
151 lefcha 1.4 elif [ $encpasswds = "yes" ]
152     then
153     libs="$libs $libenc"
154 lefcha 1.1 fi
155    
156    
157 lefcha 1.4
158 lefcha 1.1 # Backup of original Makefile and config.h
159    
160     if [ ! -f .Makefile ]; then cp Makefile .Makefile; fi
161     if [ ! -f .config.h ]; then cp config.h .config.h; fi
162    
163    
164     # Write Makefile
165    
166     mv Makefile Makefile~
167    
168     cat > Makefile << EOF
169     CC = cc
170     CFLAGS = -Wall -O2
171    
172     DESTDIR = $destdir
173     BINDIR = $bindir
174     MANDIR = $mandir
175    
176     INSTALL = install -c
177     INST_DIR = install -d
178     INST_BIN = \$(INSTALL) -m 755
179     INST_DOC = \$(INSTALL) -m 644
180    
181     MAN_BIN = imapfilter.1
182     MAN_RC = imapfilterrc.5
183    
184     BIN = imapfilter
185 lefcha 1.7 OBJ = data.o file.o imap.o imapfilter.o lock.o log.o memory.o misc.o \\
186 lefcha 1.3 passwd.o response.o request.o socket.o tty.o
187 lefcha 1.1
188     LIBS = $libs
189    
190     imapfilter: \$(OBJ)
191     \$(CC) \$(LIBS) \$(CFLAGS) -o \$(BIN) \$(OBJ)
192    
193 lefcha 1.7 data.o file.o imap.o imapfilter.o lock.o log.o response.o request.o \\
194 lefcha 1.3 memory.o passwd.o socket.o tty.o: imapfilter.h config.h
195     data.o imapfilter.o imap.o file.o passwd.o request.o socket.o: data.h
196 lefcha 1.1
197     install: imapfilter
198     if test ! -d \$(BINDIR); then \$(INST_DIR) \$(BINDIR); fi
199     \$(INST_BIN) \$(BIN) \$(BINDIR)
200     if test ! -d \$(MANDIR)/man1; then \$(INST_DIR) \$(MANDIR)/man1; fi
201     \$(INST_DOC) \$(MAN_BIN) \$(MANDIR)/man1
202     if test ! -d \$(MANDIR)/man5; then \$(INST_DIR) \$(MANDIR)/man5; fi
203     \$(INST_DOC) \$(MAN_RC) \$(MANDIR)/man5
204    
205     uninstall:
206     rm -f \$(BINDIR)/\$(BIN) \$(MANDIR)/man1/\$(MAN_BIN) \$(MANDIR)/man5/\$(MAN_RC)
207    
208     clean:
209     rm -f \$(OBJ) \$(BIN) imapfilter.core core *.BAK *~
210    
211     distclean: clean
212     @if test -f .Makefile; then mv .Makefile Makefile; fi
213     @if test -f .config.h; then mv .config.h config.h; fi
214    
215     .PHONY : install uninstall clean distclean
216     EOF
217    
218    
219     # Write config.h
220    
221     mv config.h config.h~
222    
223     echo "/* Debugging information. */" > config.h
224     if [ $debug = "yes" ]
225     then
226     echo "#define DEBUG" >> config.h
227     else
228     echo "#undef DEBUG" >> config.h
229     fi
230     echo >> config.h
231    
232     echo "/* Configuration file's permissions checking. */" >> config.h
233     if [ $checkperms = "yes" ]
234     then
235     echo "#define CHECK_PERMISSIONS" >> config.h
236     else
237     echo "#undef CHECK_PERMISSIONS" >> config.h
238 lefcha 1.9 fi
239     echo >> config.h
240    
241     echo "/* Try to lock memory pages to avoid swapping. */" >> config.h
242     if [ $memlock = "yes" ]
243     then
244     echo "#define MEMORY_LOCK" >> config.h
245     else
246     echo "#undef MEMORY_LOCK" >> config.h
247 lefcha 1.4 fi
248     echo >> config.h
249    
250     echo "/* Encrypted passwords support. */" >> config.h
251     if [ $encpasswds = "yes" ]
252     then
253     echo "#define ENCRYPTED_PASSWORDS" >> config.h
254     else
255     echo "#undef ENCRYPTED_PASSWORDS" >> config.h
256 lefcha 1.1 fi
257     echo >> config.h
258    
259     echo "/* Secure Socket Layer and Transport Layer Security support. */" >> config.h
260     if [ $ssl = "yes" ]
261     then
262     echo "#define SSL_TLS" >> config.h
263     else
264     echo "#undef SSL_TLS" >> config.h
265     fi
266    
267    
268     exit 0

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26