#! /bin/sh
+# Store original IFS value so it can be changed (and restored) in many places.
+readonly DEFAULT_IFS=$IFS
+
srcdir=$(dirname "$0")
# For a non-srcdir configure invocation (such as ../configure), create
WITH_BASH=1
WITH_ZSH=1
+GMIME_24_VERSION='gmime-2.4'
+GMIME_26_VERSION='gmime-2.6 >= 2.6.7'
+
+WITH_GMIME_VERSIONS="$GMIME_26_VERSION;$GMIME_24_VERSION"
+
usage ()
{
cat <<EOF
--mandir=DIR Install man pages to DIR [PREFIX/share/man]
--sysconfdir=DIR Read-only single-machine data [PREFIX/etc]
--emacslispdir=DIR Emacs code [PREFIX/share/emacs/site-lisp]
+ --emacsetcdir=DIR Emacs miscellaneous files [PREFIX/share/emacs/site-lisp]
--bashcompletiondir=DIR Bash completions files [SYSCONFDIR/bash_completion.d]
--zshcompletiondir=DIR Zsh completions files [PREFIX/share/zsh/functions/Completion/Unix]
SYSCONFDIR="${option#*=}"
elif [ "${option%%=*}" = '--emacslispdir' ] ; then
EMACSLISPDIR="${option#*=}"
+ elif [ "${option%%=*}" = '--emacsetcdir' ] ; then
+ EMACSETCDIR="${option#*=}"
elif [ "${option%%=*}" = '--bashcompletiondir' ] ; then
BASHCOMPLETIONDIR="${option#*=}"
elif [ "${option%%=*}" = '--zshcompletiondir' ] ; then
fi
elif [ "${option}" = '--without-zsh-completion' ] ; then
WITH_ZSH=0
+ elif [ "${option%%=*}" = '--with-gmime-version' ] ; then
+ if [ "${option#*=}" = '2.4' ]; then
+ WITH_GMIME_VERSIONS=$GMIME_24_VERSION
+ elif [ "${option#*=}" = '2.6' ]; then
+ WITH_GMIME_VERSIONS=$GMIME_26_VERSION
+ fi
elif [ "${option%%=*}" = '--build' ] ; then
- build_option="${option#*=}"
- case ${build_option} in
- *-*-*) ;;
- *)
- echo "Unrecognized value for --build option: ${build_option}"
- echo "Should be: <cpu>-<vendor>-<os>"
- echo "See:"
- echo " $0 --help"
- echo ""
- exit 1
- esac
- build_cpu=${build_option%%-*}
- build_option=${build_option#*-}
- build_vendor=${build_option%%-*}
- build_os=${build_option#*-}
+ true
elif [ "${option%%=*}" = '--host' ] ; then
- host_option="${option#*=}"
- case ${host_option} in
- *-*-*) ;;
- *)
- echo "Unrecognized value for --host option: ${host_option}"
- echo "Should be: <cpu>-<vendor>-<os>"
- echo "See:"
- echo " $0 --help"
- echo ""
- exit 1
- esac
- host_cpu=${host_option%%-*}
- host_option=${host_option#*-}
- host_vendor=${host_option%%-*}
- host_os=${host_option#*-}
+ true
elif [ "${option%%=*}" = '--infodir' ] ; then
true
elif [ "${option%%=*}" = '--datadir' ] ; then
errors=$((errors + 1))
fi
+# If using GMime 2.6, we need to have a version >= 2.6.5 to avoid a
+# crypto bug. We need 2.6.7 for permissive "From " header handling.
printf "Checking for GMime development files... "
have_gmime=0
-for gmimepc in gmime-2.6 gmime-2.4; do
+IFS=';'
+for gmimepc in $WITH_GMIME_VERSIONS; do
if pkg-config --exists $gmimepc; then
printf "Yes ($gmimepc).\n"
have_gmime=1
gmime_cflags=$(pkg-config --cflags $gmimepc)
gmime_ldflags=$(pkg-config --libs $gmimepc)
+ break
fi
done
+IFS=$DEFAULT_IFS
if [ "$have_gmime" = "0" ]; then
printf "No.\n"
errors=$((errors + 1))
fi
# GMime already depends on Glib >= 2.12, but we use at least one Glib
-# function that only exists as of 2.14, (g_hash_table_get_keys)
-printf "Checking for Glib development files (>= 2.14)... "
+# function that only exists as of 2.22, (g_array_unref)
+printf "Checking for Glib development files (>= 2.22)... "
have_glib=0
-if pkg-config --exists 'glib-2.0 >= 2.14'; then
+if pkg-config --exists 'glib-2.0 >= 2.22'; then
printf "Yes.\n"
have_glib=1
glib_cflags=$(pkg-config --cflags glib-2.0)
fi
fi
+if [ -z "${EMACSETCDIR}" ]; then
+ if pkg-config --exists emacs; then
+ EMACSETCDIR=$(pkg-config emacs --variable sitepkglispdir)
+ else
+ EMACSETCDIR='$(prefix)/share/emacs/site-lisp'
+ fi
+fi
+
printf "Checking if emacs is available... "
if emacs --quick --batch > /dev/null 2>&1; then
printf "Yes.\n"
printf "Solaris.\n"
platform=SOLARIS
linker_resolves_library_dependencies=0
-elif [ $uname = "Linux" ] ; then
- printf "Linux\n"
- platform=LINUX
+elif [ $uname = "Linux" ] || [ $uname = "GNU" ] ; then
+ printf "$uname\n"
+ platform="$uname"
linker_resolves_library_dependencies=1
printf "Checking for $libdir_expanded in ldconfig... "
# IFS=$(printf '\n')
#
# because the shell's command substitution deletes any trailing newlines.
- OLD_IFS=$IFS
IFS="
"
for path in $ldconfig_paths; do
libdir_in_ldconfig=1
fi
done
- IFS=$OLD_IFS
+ IFS=$DEFAULT_IFS
if [ "$libdir_in_ldconfig" = '0' ]; then
printf "No (will set RPATH)\n"
else
echo " http://spruce.sourceforge.net/gmime/"
fi
if [ $have_glib -eq 0 ]; then
- echo " Glib library >= 2.14 (including development files such as headers)"
+ echo " Glib library >= 2.22 (including development files such as headers)"
echo " http://ftp.gnome.org/pub/gnome/sources/glib/"
fi
if [ $have_talloc -eq 0 ]; then
printf "\n\t${WARN_CFLAGS}\n"
rm -f minimal minimal.c
-
+
cat <<EOF
All required packages were found. You may now run the following
# The directory to which emacs lisp files should be installed
emacslispdir=${EMACSLISPDIR}
+# The directory to which emacs miscellaneous (machine-independent) files should
+# be installed
+emacsetcdir=${EMACSETCDIR}
+
# Whether there's an emacs binary available for byte-compiling
HAVE_EMACS = ${have_emacs}