AC_PROG_CC([cc gcc])
AM_PROG_CC_C_O
+dnl ------------------
+dnl CHECK HEADER FILES
+dnl ------------------
+
+AC_HEADER_TIOCGWINSZ
+AC_CHECK_HEADERS([fcntl.h wchar.h wctype.h sys/param.h sys/time.h sys/stream.h])
+
+AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
+ [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
+[[#if HAVE_SYS_STREAM_H
+# include <sys/stream.h>
+#endif
+]])
+
+dnl ---------------
+dnl CHECK FUNCTIONS
+dnl ---------------
+AC_CHECK_FUNCS([wcwidth mbtowc getutxent arc4random mkstemps])
+
+dnl -----------------------
+dnl CHECK MULTIBYTE SUPPORT
+dnl -----------------------
+AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \
+ "x$ac_cv_header_wctype_h" = "xyes" -a \
+ "x$ac_cv_func_wcwidth" = "xyes" -a \
+ "x$ac_cv_func_mbtowc" = "xyes"],
+ [AC_DEFINE([MULTIBYTE_SUPPORT], [1],
+ [Define to enable support for multibyte character sets.])
+ MULTIBYTE_ENABLED=1],
+ [MULTIBYTE_ENABLED=0])
+AC_SUBST([MULTIBYTE_ENABLED])
+
dnl ----------------
dnl CUSTOMIZE CFLAGS
dnl ----------------
dnl The user didn't specify CFLAGS, so customize them.
+
if test "$GCC" != yes; then
dnl Use -v and some other options with SunStudio cc. lex produces
dnl code that causes unreachable-statement warnings. It might be
CFLAGS="$nmh_saved_cflags"])
test "$nmh_cv_has_wextra" = "yes" && CFLAGS="${CFLAGS:+$CFLAGS }-Wextra"
+dnl Check for any platform-specific additional AM_CPPFLAGS. This depends on
+dnl MULTIBYTE_ENABLED having already been set.
+NMH_ADDL_CPPFLAGS
+
if test "$GCC" = yes; then
dnl Do this regardless of auto_cflags value.
dnl Enable _FORTIFY_SOURCE checking, which is supported by
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.
+ dnl -D_FORTIFY_SOURCE from AM_CPPFLAGS because it requires optimization.
AS_CASE([$CFLAGS],
- [-O*|*' -O'*],[CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-D_FORTIFY_SOURCE=2"])
+ [-O*|*' -O'*],[AM_CPPFLAGS="${AM_CPPFLAGS:+$AM_CPPFLAGS }-D_FORTIFY_SOURCE=2"])
fi
dnl FreeBSD needs a bit of magic to bring getline() into scope.
AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp])
dnl Cygwin FAT filesystems do not support hard links. So default to
-dnl cp instead, even if running on an NTFS or other filesystem.
+dnl cp instead, even if running on an NTFS or other filesystem. (And
+dnl therefore, this cannot be made into a dynamic test, in order to
+dnl support the least common Cygwin denominator.
AS_CASE(["$host_os"],
[cygwin*], [LN=cp],
[LN=ln])
NMH_MIMETYPEPROC
NMH_MIMEENCODINGPROC
-dnl ------------------
-dnl CHECK HEADER FILES
-dnl ------------------
-
-dnl On glibc we need to define at least the '_XOPEN_SOURCE' level of features,
-dnl or wchar.h doesn't declare a prototype for wcwidth(). But if we only define
-dnl that level then db.h won't compile. So we define _GNU_SOURCE which turns
-dnl on everything. Perhaps other OSes need some feature switch set to get wcwidth()
-dnl declared; if so they should have an entry added to this case statement.
-dnl NB that we must define this on the compiler command line, not in config.h,
-dnl because it must be set before any system header is included and there's no
-dnl portable way to make sure that files generated by lex include config.h
-dnl before system header files.
-
-AS_CASE(["$host_os"],
- [linux*],
- [# Like DEFS, but doesn't get stomped on by configure when using config.h:
- 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])
-
-AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
- [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
-[[#if HAVE_SYS_STREAM_H
-# include <sys/stream.h>
-#endif
-]])
-
-dnl ---------------
-dnl CHECK FUNCTIONS
-dnl ---------------
-AC_CHECK_FUNCS([wcwidth mbtowc getutxent arc4random mkstemps])
-
-dnl Check for multibyte character set support
-AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \
- "x$ac_cv_header_wctype_h" = "xyes" -a \
- "x$ac_cv_func_wcwidth" = "xyes" -a \
- "x$ac_cv_func_mbtowc" = "xyes"],
- [AC_DEFINE([MULTIBYTE_SUPPORT], [1],
- [Define to enable support for multibyte character sets.])
- MULTIBYTE_ENABLED=1],
- [MULTIBYTE_ENABLED=0])
-AC_SUBST([MULTIBYTE_ENABLED])
-
dnl -------------------
dnl CHECK FOR LIBRARIES
dnl -------------------
dnl ----------------
dnl CHECK FLEX FIXUP
dnl ----------------
-dnl Use LFLAGS make variable setting to work around bugs in flex
+dnl Use AM_LFLAGS make variable setting to work around bugs in flex
dnl 2.5.36-37 that cause signed/unsigned mismatch,
dnl http://sourceforge.net/p/flex/bugs/140/
AS_IF([test "$LEX" = flex],
[AS_CASE([`$LEX -V`],
- [flex\ 2.5.35], [LFLAGS=\
+ [flex\ 2.5.35], [AM_LFLAGS=\
'; sed "s/ int n;/ size_t n;/" $@ >$@.tmp && mv -f $@.tmp $@'],
- [flex\ 2.5.3[[67]]], [LFLAGS=\
+ [flex\ 2.5.3[[67]]], [AM_LFLAGS=\
'; sed "s/\( \)int i;/\1yy_size_t i;/" $@ >$@.tmp && mv -f $@.tmp $@'])
- AC_SUBST([LFLAGS])])
+ AC_SUBST([AM_LFLAGS])])
dnl ------------------
dnl FOR INTERNAL USE by the NMH test suite
compiler : ${CC}
compiler flags : ${CFLAGS}
linker flags : ${LDFLAGS}
-preprocessor flags : ${CPPFLAGS}
+preprocessor flags : ${AM_CPPFLAGS} ${CPPFLAGS}
source code location : ${srcdir}
binary install path : ${nmhbin}
libexec install path : ${nmhlibexec}/nmh