diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2020-10-06 18:22:02 +0300 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2020-11-20 18:56:11 +0300 |
commit | dc93f7ef2d93dee6e0a44fb0caf37387f38e8611 (patch) | |
tree | 81f988df69374ed3583c69c0c5c5d316bf33bf67 /winsup/configure.ac | |
parent | 11c5fd6abde05956f909729289883599392c39a2 (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.ac | 80 |
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 |