Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2020-10-06 18:22:02 +0300
committerJon Turney <jon.turney@dronecode.org.uk>2020-11-20 18:56:11 +0300
commitdc93f7ef2d93dee6e0a44fb0caf37387f38e8611 (patch)
tree81f988df69374ed3583c69c0c5c5d316bf33bf67 /winsup/configure.ac
parent11c5fd6abde05956f909729289883599392c39a2 (diff)
Cygwin: Remove recursive configure
There's doesn't seem to be much use in independently distributing these subdirectories, so allowing them to be independently configured seems pointless and overcomplicated. The order in which the subdirectories are built is still a little odd, as cygwin is linked with libcygserver, and cygserver is then linked with cygwin. So, we build the cygwin directory first, which invokes a build of libcygserver in the cygserver directory, and then build in the cygserver directory to build the cygserver executable. Drop AC_CONFIGURE_ARGS, since we don't need to recursively call configure with the same arguments anymore. Slightly refine when we build utils: Previously we didn't build any utils if MinGW compiler use was avoided, now we just avoid building those utils which require that compiler. Greatly simplify how winsup_srcdir and target_builddir are set, since we're only configuring from one directory. (These are still kept absolute, since we don't adjust them where used for being used in a subdirectory). Remove configure.cygwin and put it's (greatly reduced) contents inline in the one place it's used now. Remove generated configure and aclocal.m4 in subdirectories.
Diffstat (limited to 'winsup/configure.ac')
-rw-r--r--winsup/configure.ac80
1 files changed, 73 insertions, 7 deletions
diff --git a/winsup/configure.ac b/winsup/configure.ac
index 5b420396d..438e629e7 100644
--- a/winsup/configure.ac
+++ b/winsup/configure.ac
@@ -9,11 +9,22 @@ dnl
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.59])
-AC_INIT([Cygwin toplevel],[0],[cygwin@cygwin.com],[cygwin],[https://cygwin.com])
+AC_INIT([Cygwin],[0],[cygwin@cygwin.com],[cygwin],[https://cygwin.com])
AC_CONFIG_SRCDIR(Makefile.in)
AC_CONFIG_AUX_DIR(..)
-. ${srcdir}/configure.cygwin
+realdirpath() {
+ test -z "$1" && return 1
+ (cd "$1" 2>/dev/null && pwd)
+ if test $? -ne 0; then
+ return 1
+ else
+ return 0
+ fi
+}
+
+winsup_srcdir="$(realdirpath $srcdir)"
+target_builddir="$(realdirpath ..)"
AC_PROG_INSTALL
AC_NO_EXECUTABLES
@@ -23,16 +34,71 @@ AC_PROG_CC
AC_PROG_CXX
AC_PROG_CPP
AC_LANG(C)
-AC_ARG_WITH([cross-bootstrap],[AS_HELP_STRING([--with-cross-bootstrap],[do not build programs using the mingw toolchain or check for mingw libraries (useful for bootstrapping a cross-compiler)])],[],[with_cross_bootstrap=no])
-
AC_LANG(C++)
+AC_ARG_WITH([cross-bootstrap],[AS_HELP_STRING([--with-cross-bootstrap],[do not build programs using the MinGW toolchain or check for MinGW libraries (useful for bootstrapping a cross-compiler)])],[],[with_cross_bootstrap=no])
+
AC_CYGWIN_INCLUDES
-AC_CONFIG_SUBDIRS(cygwin cygserver doc testsuite)
+AC_CONFIG_HEADER(cygwin/config.h)
+
+AC_CHECK_TOOL(AR, ar, ar)
+AC_CHECK_TOOL(AS, as, as)
+AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool)
+AC_CHECK_TOOL(LD, ld, ld)
+AC_CHECK_TOOL(NM, nm, nm)
+AC_CHECK_TOOL(OBJCOPY, objcopy, objcopy)
+AC_CHECK_TOOL(OBJDUMP, objdump, objdump)
+AC_CHECK_TOOL(RANLIB, ranlib, ranlib)
+AC_CHECK_TOOL(STRIP, strip, strip)
+AC_CHECK_TOOL(WINDRES, windres, windres)
+
+AC_ARG_ENABLE(debugging,
+[ --enable-debugging Build a cygwin DLL which has more consistency checking for debugging],
+[case "${enableval}" in
+yes) AC_DEFINE([DEBUGGING],[1],[Define if DEBUGGING support is requested.]) ;;
+no) ;;
+esac
+])
+
+case "$target_cpu" in
+ i?86)
+ DLL_ENTRY="_dll_entry@12"
+ DEF_DLL_ENTRY="dll_entry@12"
+ DIN_FILE="i686.din"
+ TLSOFFSETS_H="tlsoffsets.h"
+ ;;
+ x86_64)
+ DLL_ENTRY="dll_entry"
+ DEF_DLL_ENTRY="dll_entry"
+ DIN_FILE="x86_64.din"
+ TLSOFFSETS_H="tlsoffsets64.h"
+ ;;
+ *) AC_MSG_ERROR([Invalid target processor "$target_cpu"]) ;;
+esac
+
+AC_SUBST(DLL_ENTRY)
+AC_SUBST(DEF_DLL_ENTRY)
+AC_SUBST(DIN_FILE)
+AC_SUBST(TLSOFFSETS_H)
+
+AC_CHECK_PROGS([DOCBOOK2XTEXI], [docbook2x-texi db2x_docbook2texi], [true])
+
if test "x$with_cross_bootstrap" != "xyes"; then
- AC_CONFIG_SUBDIRS([utils])
+ AC_CHECK_PROGS(MINGW_CXX, ${target_cpu}-w64-mingw32-g++)
+ test -n "$MINGW_CXX" || AC_MSG_ERROR([no acceptable MinGW g++ found in \$PATH])
+ AC_CHECK_PROGS(MINGW_CC, ${target_cpu}-w64-mingw32-gcc)
+ test -n "$MINGW_CC" || AC_MSG_ERROR([no acceptable MinGW gcc found in \$PATH])
fi
+AC_EXEEXT
+
+AC_CONFIG_FILES([
+ Makefile
+ cygwin/Makefile
+ cygserver/Makefile
+ doc/Makefile
+ utils/Makefile
+ testsuite/Makefile
+])
-AC_CONFIG_FILES([Makefile])
AC_OUTPUT