X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/cce1fc3879071125169f43ce5e82465d2fda3da0..7711f3fc00259e55f630cfe6104eff3083dc9d77:/configure.ac diff --git a/configure.ac b/configure.ac index 30afee83..02f0a044 100644 --- a/configure.ac +++ b/configure.ac @@ -74,10 +74,12 @@ AS_IF([test -n "$with_smtpservers"], [smtpservers="$with_smtpservers"], [smtpservers="localhost"]) AC_SUBST([smtpservers])dnl -dnl ---------------------------------------------------- -dnl Default location is /usr/local/nmh/{bin,etc,lib,man} -dnl ---------------------------------------------------- +dnl ------------------------------------------------------------------- +dnl Default location is /usr/local/nmh/{bin,etc,libexec,man}, unless we +dnl find an existing installation, in which case we use its location. +dnl ------------------------------------------------------------------- AC_PREFIX_DEFAULT([/usr/local/nmh]) +AC_PREFIX_PROGRAM([mhparam]) dnl ------------------ dnl CHECK THE COMPILER @@ -111,22 +113,6 @@ if test -n "$auto_cflags"; then CFLAGS="$nmh_saved_cflags"]) test "$nmh_cv_has_dash_ansi" = "yes" && \ CFLAGS="${CFLAGS:+$CFLAGS }-ansi -pedantic" - - dnl For Ubuntu gcc 4.8.1, with -O2. It would be better to fix all these, - dnl but until then, suppress the warning. - AC_CACHE_CHECK([whether compiler needs -Wno-unused-result], - [nmh_cv_needs_wnur], - [nmh_saved_cflags="$CFLAGS" - CFLAGS="$CFLAGS -Werror -O2" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], - [extern const char *path; - chdir (path); - return 0;])], - [nmh_cv_needs_wnur=no], - [nmh_cv_needs_wnur=yes]) - CFLAGS="$nmh_saved_cflags"]) - AS_IF([test "$nmh_cv_needs_wnur" = yes], - [CFLAGS="${CFLAGS:+$CFLAGS }-Wno-unused-result"]) else dnl Use -v and some other options with SunStudio cc. lex produces dnl code that causes unreachable-statement warnings. It might be @@ -153,11 +139,35 @@ if test -n "$auto_cflags"; then test "$nmh_cv_has_wextra" = "yes" && CFLAGS="${CFLAGS:+$CFLAGS }-Wextra" fi +if test "$GCC" = yes; then + dnl Do this regardless of auto_cflags value. + dnl Enable _FORTIFY_SOURCE checking, which is supported by + dnl gcc 4.1 and later, but only when optimization is enabled. + dnl It shouldn't hurt with earlier versions because it's a cpp macro. + dnl If the user configures with a CFLAGS that contains a -O flag + dnl but then removes it a make time, they'll also have to remove + dnl -D_FORTIFY_SOURCE from CPPFLAGS because it requires optimization. + AS_CASE([$CFLAGS], + [-O*|*' -O'*],[CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-D_FORTIFY_SOURCE=2"]) +fi + dnl FreeBSD needs a bit of magic to bring getline() into scope. dnl We do this here rather than in (say) h/mh.h because this macro must dnl be defined before is pulled in. +dnl +dnl And while we're here, add the packages tree to the cpp and ld search +dnl paths. Note that FreeBSD's pkg(8) seems to be hardwired to use /usr/local. +dnl If /usr/ports is installed, we use its idea of where things are installed, +dnl otherwise we assume /usr/local. + AS_IF([test `uname` = FreeBSD], - [CPPFLAGS="$CPPFLAGS -D_WITH_GETLINE"]) + [CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-D_WITH_GETLINE" + nmh_cv_freebsd_localbase=`echo '.include ' \ + | make -k -f /dev/stdin -V LOCALBASE 2>/dev/null | sed 1q` + test -z "$nmh_cv_freebsd_localbase" && nmh_cv_freebsd_localbase=/usr/local + CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I$nmh_cv_freebsd_localbase/include" + LDFLAGS="${LDFLAGS:+$LDFLAGS }-L$nmh_cv_freebsd_localbase/lib" +]) dnl -------------- dnl CUSTOMIZE LINK @@ -331,8 +341,7 @@ dnl before system header files. AS_CASE(["$host_os"], [linux*], [# Like DEFS, but doesn't get stomped on by configure when using config.h: - AS_IF([test -z "$CPPFLAGS"],[CPPFLAGS="-D_GNU_SOURCE"], - [CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"])]) + CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-D_GNU_SOURCE"]) AC_HEADER_TIOCGWINSZ AC_CHECK_HEADERS([fcntl.h wchar.h wctype.h sys/param.h sys/time.h sys/stream.h]) @@ -501,11 +510,18 @@ dnl http://sourceforge.net/p/flex/bugs/140/ AS_IF([test "$LEX" = flex], [AS_CASE([`$LEX -V`], [flex\ 2.5.35], [LFLAGS=\ -'; sed -e "s/ int n;/ size_t n;/" $@ >$@.tmp && mv -f $@.tmp $@'], +'; sed "s/ int n;/ size_t n;/" $@ >$@.tmp && mv -f $@.tmp $@'], [flex\ 2.5.3[[67]]], [LFLAGS=\ -'; sed -s "s/\( \)int i;/\1yy_size_t i;/" $@ >$@.tmp && mv -f $@.tmp $@']) +'; sed "s/\( \)int i;/\1yy_size_t i;/" $@ >$@.tmp && mv -f $@.tmp $@']) AC_SUBST([LFLAGS])]) +dnl ------------------ +dnl FOR INTERNAL USE by the NMH test suite +dnl ------------------ +AC_ARG_VAR([NMHETCDIRINST], [for internal use by nmh test suite]) +AS_IF([test -n "$NMHETCDIRINST"], [nmhetcdirinst=$NMHETCDIRINST] + AC_SUBST([nmhetcdirinst])) + dnl ---------------- dnl CHECK STRUCTURES dnl ---------------- @@ -556,7 +572,7 @@ dnl the final summary and should use them nowhere else (see the autoconf dnl docs for the rationale for bindir etc being unexpanded). eval "nmhbin=${bindir}"; eval "nmhbin=${nmhbin}" eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf=${nmhsysconf}" -eval "nmhlib=${libdir}"; eval "nmhlib=${nmhlib}" +eval "nmhlibexec=${libexecdir}"; eval "nmhlibexec=${nmhlibexec}" eval "nmhman=${mandir}"; eval "nmhman=${nmhman}" eval "nmhrpm=${nmhrpm}"; @@ -571,8 +587,8 @@ linker flags : ${LDFLAGS} preprocessor flags : ${CPPFLAGS} source code location : ${srcdir} binary install path : ${nmhbin} -library install path : ${nmhlib} -config files install path : ${nmhsysconf} +libexec install path : ${nmhlibexec}/nmh +config files install path : ${nmhsysconf}/nmh man page install path : ${nmhman} RPM build root : ${nmhrpm} backup prefix : ${backup_prefix}