aboutsummaryrefslogtreecommitdiff
path: root/winsup/configure.ac
blob: 9b9b59dbcb571b26bb8e816f12ccb8793d6c09af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
dnl Autoconf configure script for Cygwin.
dnl
dnl This file is part of Cygwin.
dnl
dnl This software is a copyrighted work licensed under the terms of the
dnl Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
dnl details.
dnl
dnl Process this file with autoconf to produce a configure script.

AC_PREREQ([2.59])
AC_INIT([Cygwin],[0],[cygwin@cygwin.com],[cygwin],[https://cygwin.com])
AC_CONFIG_AUX_DIR(..)
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([foreign no-define no-dist subdir-objects -Wall -Wno-portability -Wno-extra-portability])
AM_SILENT_RULES([yes])

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_NO_EXECUTABLES

AC_PROG_INSTALL
AC_PROG_MKDIR_P
AC_PROG_CC
AC_PROG_CXX
AC_PROG_CPP
AM_PROG_AS

AC_LANG(C)
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_HEADERS([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,
[AS_HELP_STRING([--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
])

DLL_ENTRY="dll_entry"

case "$target_cpu" in
   x86_64)	;;
   *)		AC_MSG_ERROR([Invalid target processor "$target_cpu"]) ;;
esac

AC_SUBST(DLL_ENTRY)

AM_CONDITIONAL(TARGET_X86_64, [test $target_cpu = "x86_64"])

AC_ARG_ENABLE(doc,
	      [AS_HELP_STRING([--disable-doc], [do not build documentation])],,
	      enable_doc=yes)
AM_CONDITIONAL(BUILD_DOC, [test $enable_doc != "no"])

AC_CHECK_PROGS([DOCBOOK2XTEXI], [docbook2x-texi db2x_docbook2texi])
if test -z "$DOCBOOK2XTEXI" ; then
    if test "x$enable_doc" != "xno"; then
        AC_MSG_ERROR([docbook2texi is required to build documentation])
    else
        unset DOCBOOK2XTEXI
        AM_MISSING_PROG([DOCBOOK2XTEXI], [docbook2texi])
    fi
fi

AC_CHECK_PROGS([XMLTO], [xmlto])
if test -z "$XMLTO"; then
    if test "x$enable_doc" != "xno"; then
        AC_MSG_ERROR([xmlto is required to build documentation])
    else
        unset XMLTO
        AM_MISSING_PROG([XMLTO], [xmlto])
    fi
fi

if test "x$with_cross_bootstrap" != "xyes"; then
    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
AM_CONDITIONAL(CROSS_BOOTSTRAP, [test "x$with_cross_bootstrap" != "xyes"])

AC_EXEEXT

AC_ARG_ENABLE([dumper],
	      [AS_HELP_STRING([--disable-dumper], [do not build the 'dumper' utility])],
	      [build_dumper=$enableval],
	      [build_dumper=yes])

AM_CONDITIONAL(BUILD_DUMPER, [test "x$build_dumper" = "xyes"])

# libbfd.a doesn't have a pkgconfig file, so we guess what it's dependencies
# are, based on what's present in the build environment
BFD_LIBS="-lintl -liconv -liberty -lz"
AC_CHECK_LIB([sframe], [sframe_decode], [BFD_LIBS="${BFD_LIBS} -lsframe"])
AC_CHECK_LIB([zstd], [ZSTD_isError], [BFD_LIBS="${BFD_LIBS} -lzstd"])
AC_SUBST([BFD_LIBS])

AC_CONFIG_FILES([
    Makefile
    cygwin/Makefile
    cygserver/Makefile
    doc/Makefile
    utils/Makefile
    utils/mingw/Makefile
    testsuite/Makefile
    testsuite/mingw/Makefile
])

AC_OUTPUT