#!/bin/sh ######################################################################### # # mairix - message index builder and finder for maildir folders. # # Copyright (C) Richard P. Curnow 2003-2004 # # This program is free software; you can redistribute it and/or modify # it under the terms of version 2 of the GNU General Public License as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA # # ======================================================================= if [ -f config.log ]; then rm -f config.log ; fi exec 5>config.log MYCC=${CC:-gcc} MYCFLAGS=${CFLAGS:--O2 -Wall} MYCPPFLAGS=${CPPFLAGS:-} MYLDFLAGS=${LDFLAGS:-} # ======================================================================= # Functions #{{{ cleanup cleanup () { if [ -f docheck.c ]; then rm -f docheck.c ; fi if [ -f docheck.o ]; then rm -f docheck.o ; fi if [ -f docheck ]; then rm -f docheck ; fi rm -rf docheck.c docheck.o docheck } #}}} #{{{ test_cc : basic compiler sanity check test_cc () { printf "Testing whether your compiler \"$MYCC $MYCFLAGS\" works : " cat >docheck.c < int main (int argc, char **argv) { return 0; } EOF ${MYCC} ${MYCFLAGS} -o docheck docheck.c 1>&5 2>&5 if [ $? -eq 0 ] then printf "it works\n" else printf "it doesn't work\n" printf "Failed program was\n" 1>&5 cat docheck.c 1>&5 rm -f docheck.c docheck exit 1 fi cleanup } #}}} #{{{ test_for_stdint_h test_for_stdint_h () { cat >docheck.c < int main(int argc, char **argv) { return 0; } EOF ${MYCC} ${MYCFLAGS} -c -o docheck.o docheck.c >/dev/null 2>&1 if [ $? -eq 0 ] then result=0 else result=1 fi rm -f docheck.c docheck.o echo $result } #}}} #{{{ test_for_inttypes_h test_for_inttypes_h () { cat >docheck.c < int main(int argc, char **argv) { return 0; } EOF ${MYCC} ${MYCFLAGS} -c -o docheck.o docheck.c >/dev/null 2>&1 if [ $? -eq 0 ] then result=0 else result=1 fi rm -f docheck.c docheck.o echo $result } #}}} #{{{ test_for_zlib test_for_zlib () { cat > docheck.c < int main () { const char *foo; foo = zlibVersion(); return 0; } EOF echo "Test program is" 1>&5 cat docheck.c 1>&5 ${MYCC} ${MYCPPFLAGS} ${MYCFLAGS} ${MYLDFLAGS} -o docheck docheck.c -lz 1>&5 2>&1 if [ $? -eq 0 ] then result=0 else result=1 fi rm -f docheck.c docheck echo $result } #}}} #{{{ test_for_bzlib test_for_bzlib () { cat > docheck.c < int main () { const char *foo; foo = BZ2_bzlibVersion(); return 0; } EOF echo "Test program is" 1>&5 cat docheck.c 1>&5 ${MYCC} ${MYCPPFLAGS} ${MYCFLAGS} ${MYLDFLAGS} -o docheck docheck.c -lbz2 1>&5 2>&1 if [ $? -eq 0 ] then result=0 else result=1 fi rm -f docheck.c docheck echo $result } #}}} #{{{ usage usage () { cat < if you have header files in a nonstandard directory LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory Use these variables to override the choices made by \`configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . EOF } #}}} # ======================================================================= # Defaults for variables PREFIX=/usr/local use_readline=yes bad_options=no use_gzip_mbox=yes use_bzip_mbox=yes # Parse options to configure for option do case "$option" in --prefix=* | --install-prefix=* ) PREFIX=`echo $option | sed -e 's/[^=]*=//;'` ;; --bindir=* ) BINDIR=`echo $option | sed -e 's/[^=]*=//;'` ;; --mandir=* ) MANDIR=`echo $option | sed -e 's/[^=]*=//;'` ;; --infodir=* ) INFODIR=`echo $option | sed -e 's/[^=]*=//;'` ;; --docdir=* ) DOCDIR=`echo $option | sed -e 's/[^=]*=//;'` ;; --enable-gzip-mbox ) use_gzip_mbox=yes ;; --disable-gzip-mbox ) use_gzip_mbox=no ;; --enable-bzip-mbox ) use_bzip_mbox=yes ;; --disable-bzip-mbox ) use_bzip_mbox=no ;; -h | --help ) usage exit 1 ;; * ) printf "Unrecognized option : $option\n" bad_options=yes ;; esac done if [ ${bad_options} = yes ]; then exit 1 fi DEFS="" test_cc printf "Checking for : " if [ `test_for_stdint_h` -eq 0 ]; then printf "Yes\n" DEFS="${DEFS} -DHAS_STDINT_H" else printf "No\n" fi printf "Checking for : " if [ `test_for_inttypes_h` -eq 0 ]; then printf "Yes\n" DEFS="${DEFS} -DHAS_INTTYPES_H" else printf "No\n" fi if [ $use_gzip_mbox = "yes" ]; then printf "Checking for zlib : " if [ `test_for_zlib` -eq 0 ]; then printf "Yes\n"; DEFS="${DEFS} -DUSE_GZIP_MBOX" LIBS="-lz" else printf "No (disabled gzipped mbox support)\n"; fi fi if [ $use_bzip_mbox = "yes" ]; then printf "Checking for bzlib : " if [ `test_for_bzlib` -eq 0 ]; then printf "Yes\n"; DEFS="${DEFS} -DUSE_BZIP_MBOX" LIBS="${LIBS} -lbz2" else printf "No (disabled bzip2ed mbox support)\n"; fi fi #{{{ Determine version number of the program. if [ -f version.txt ]; then revision=`cat version.txt` else revision="DEVELOPMENT" fi #}}} if [ "x" = "x${BINDIR}" ]; then BINDIR=${PREFIX}/bin ; fi if [ "x" = "x${MANDIR}" ]; then MANDIR=${PREFIX}/man ; fi if [ "x" = "x${INFODIR}" ]; then INFODIR=${PREFIX}/info ; fi if [ "x" = "x${DOCDIR}" ]; then DOCDIR=${PREFIX}/doc/mairix-${revision} ; fi echo "Generating Makefile" rm -f Makefile sed -e "s%@cc@%${MYCC}%; \ s%@defs@%${DEFS}%; \ s%@cflags@%${MYCFLAGS}%; \ s%@prefix@%${PREFIX}%; \ s%@bindir@%${BINDIR}%; \ s%@mandir@%${MANDIR}%; \ s%@infodir@%${INFODIR}%; \ s%@docdir@%${DOCDIR}%; \ s%@LIBS@%${LIBS}%; \ s%@CPPFLAGS@%${MYCPPFLAGS}%; \ s%@LDFLAGS@%${MYLDFLAGS}%; \ " < Makefile.in > Makefile # Avoid editing Makefile instead of Makefile.in chmod ugo-w Makefile # ======================================================================= # vim:et:sw=2:ht=2:sts=2:fdm=marker:cms=#%s