diff options
Diffstat (limited to 'winsup/acinclude.m4')
-rw-r--r-- | winsup/acinclude.m4 | 112 |
1 files changed, 76 insertions, 36 deletions
diff --git a/winsup/acinclude.m4 b/winsup/acinclude.m4 index 4e2db0768..80c920e8c 100644 --- a/winsup/acinclude.m4 +++ b/winsup/acinclude.m4 @@ -1,43 +1,83 @@ -dnl This provides configure definitions used by all the winsup +dnl This provides configure definitions used by all the cygwin dnl configure.in files. -# FIXME: We temporarily define our own version of AC_PROG_CC. This is -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -# are probably using a cross compiler, which will not be able to fully -# link an executable. This should really be fixed in autoconf -# itself. - -AC_DEFUN([LIB_AC_PROG_CC_GNU], -[AC_CACHE_CHECK(whether we are using GNU C, ac_cv_prog_gcc, -[dnl The semicolon is to pacify NeXT's syntax-checking cpp. -cat > conftest.c <<EOF -#ifdef __GNUC__ - yes; -#endif -EOF -if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi])]) - -AC_DEFUN([LIB_AC_PROG_CC], -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_TOOL(CC, gcc, gcc) -: ${CC:=gcc} -AC_PROG_CC -test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +AC_DEFUN([AC_WINDOWS_HEADERS],[ +AC_ARG_WITH( + [windows-headers], + [AS_HELP_STRING([--with-windows-headers=DIR], + [specify where the windows includes are located])], + [test -z "$withval" && AC_MSG_ERROR([must specify value for --with-windows-headers])] +) ]) -AC_DEFUN([LIB_AC_PROG_CXX], -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_TOOL(CXX, g++, g++) -if test -z "$CXX"; then - AC_CHECK_TOOL(CXX, g++, c++, , , ) - : ${CXX:=g++} - AC_PROG_CXX - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +AC_DEFUN([AC_WINDOWS_LIBS],[ +AC_ARG_WITH( + [windows-libs], + [AS_HELP_STRING([--with-windows-libs=DIR], + [specify where the windows libraries are located])], + [test -z "$withval" && AC_MSG_ERROR([must specify value for --with-windows-libs])] +) +windows_libdir=$(realdirpath "$with_windows_libs") +if test -z "$windows_libdir"; then + windows_libdir=$(realdirpath $(${ac_cv_prog_CC:-$CC} -xc /dev/null -Wl,--verbose=1 -lntdll 2>&1 | sed -rn 's%^.*\s(\S+)/libntdll\..*succeeded%\1%p')) + if test -z "$windows_libdir"; then + AC_MSG_ERROR([cannot find windows library files]) + fi +fi +AC_SUBST(windows_libdir) +] +) + +AC_DEFUN([AC_CYGWIN_INCLUDES], [ +addto_CPPFLAGS -nostdinc +: ${ac_cv_prog_CXX:=$CXX} +: ${ac_cv_prog_CC:=$CC} + +cygwin_headers=$(realdirpath "$winsup_srcdir/cygwin/include") +if test -z "$cygwin_headers"; then + AC_MSG_ERROR([cannot find $winsup_srcdir/cygwin/include directory]) +fi + +newlib_headers=$(realdirpath $winsup_srcdir/../newlib/libc/include) +if test -z "$newlib_headers"; then + AC_MSG_ERROR([cannot find newlib source directory: $winsup_srcdir/../newlib/libc/include]) fi +newlib_headers="$target_builddir/newlib/targ-include $newlib_headers" -CXXFLAGS='$(CFLAGS)' +if test -n "$with_windows_headers"; then + if test -e "$with_windows_headers/windef.h"; then + windows_headers="$with_windows_headers" + else + AC_MSG_ERROR([cannot find windef.h in specified --with-windows-headers path: $saw_windows_headers]); + fi +elif test -d "$winsup_srcdir/w32api/include/windef.h"; then + windows_headers="$winsup_srcdir/w32api/include" +else + windows_headers=$(cd $($ac_cv_prog_CC -xc /dev/null -E -include windef.h 2>/dev/null | sed -n 's%^# 1 "\([^"]*\)/windef\.h".*$%\1%p' | head -n1) 2>/dev/null && pwd) + if test -z "$windows_headers" -o ! -d "$windows_headers"; then + AC_MSG_ERROR([cannot find windows header files]) + fi +fi +CC=$ac_cv_prog_CC +CXX=$ac_cv_prog_CXX +export CC +export CXX +AC_SUBST(windows_headers) +AC_SUBST(newlib_headers) +AC_SUBST(cygwin_headers) ]) + +AC_DEFUN([AC_CONFIGURE_ARGS], [ +configure_args=X +for f in $ac_configure_args; do + case "$f" in + *--srcdir*) ;; + *) configure_args="$configure_args $f" ;; + esac +done +configure_args=$(/usr/bin/expr "$configure_args" : 'X \(.*\)') +AC_SUBST(configure_args) +]) + +AC_SUBST(target_builddir) +AC_SUBST(winsup_srcdir) |