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

configure.in « cygwin « winsup - cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 3934992a7e62356e60d80459b98263a6e009db85 (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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
dnl Autoconf configure script for Cygwin.
dnl Copyright 1996, 1997, 1998, 2000, 2001 Red Hat, Inc.
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.12)dnl
AC_INIT(init.cc)
AC_CONFIG_HEADER(config.h)

AC_PROG_INSTALL

dnl FIXME: We temporarily define our own version of AC_PROG_CC.  This is
dnl copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS.  We
dnl are probably using a cross compiler, which will not be able to fully
dnl link an executable.  This should really be fixed in autoconf
dnl itself.

AC_DEFUN(LIB_AC_PROG_CC,
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
AC_CHECK_TOOL(CC, gcc, gcc)
if test -z "$CC"; then
  AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
  test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
fi

AC_PROG_CC_GNU

if test $ac_cv_prog_gcc = yes; then
  GCC=yes
dnl Check whether -g works, even if CFLAGS is set, in case the package
dnl plays around with CFLAGS (such as to build both debugging and
dnl normal versions of a library), tasteless as that idea is.
  ac_test_CFLAGS="${CFLAGS+set}"
  ac_save_CFLAGS="$CFLAGS"
  CFLAGS=
  AC_PROG_CC_G
  if test "$ac_test_CFLAGS" = set; then
    CFLAGS="$ac_save_CFLAGS"
  elif test $ac_cv_prog_cc_g = yes; then
    CFLAGS="-gstabs+ -O2"
  else
    CFLAGS="-O2"
  fi
else
  GCC=
  test "${CFLAGS+set}" = set || CFLAGS="-g"
fi
])

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_PROG(CXX, c++, c++, , , )
  test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
fi

CXXFLAGS='$(CFLAGS)'
])

AC_CANONICAL_SYSTEM

LIB_AC_PROG_CC
LIB_AC_PROG_CXX

case "$with_cross_host" in
  ""|*cygwin*)
    all_host="all_host"
    install_host="install_host"
    ;;
  *)
    all_host=
    install_host=
    ;;
esac

AC_SUBST(all_host)
AC_SUBST(install_host)

AC_CHECK_TOOL(AR, ar, ar)
dnl AC_SUBST(AR)
AC_CHECK_TOOL(AS, as, as)
dnl C_SUBST(AS)
AC_CHECK_TOOL(RANLIB, ranlib, ranlib)
dnl C_SUBST(RANLIB)
AC_CHECK_TOOL(LD, ld, ld)
dnl C_SUBST(LD)
AC_CHECK_TOOL(NM, nm, nm)
dnl C_SUBST(NM)
AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool)
dnl C_SUBST(DLLTOOL)
AC_CHECK_TOOL(WINDRES, windres, windres)
dnl C_SUBST(WINDRES)

AC_ALLOCA
AC_PROG_MAKE_SET

dnl check whether gcc supports __builtin_memset.
# Test for builtin mem* functions.
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([
#include <string.h>
void foo(char *s, int c, size_t n)
{
  __builtin_memset(s, c, n);
}
], [ ],
use_builtin_memset=yes, use_builtin_memset=no)
if test $use_builtin_memset = "yes"; then
  AC_DEFINE(HAVE_BUILTIN_MEMSET)
fi
AC_LANG_RESTORE

dnl set default mt safeness and then process the options.
mt_safe_val=1
MT_SAFE=yes

AC_ARG_ENABLE(threadsafe,
[ --enable-threadsafe=[runtime]	Build a cygwin DLL which is thread safe],
[case "${enableval}" in
yes)
  dnl default.
  ;;
runtime)
  mt_safe_val=2
  MT_SAFE=yes
  ;;
no)
  mt_safe_val=0
  MT_SAFE=no
  ;;
esac
])

AC_ARG_ENABLE(extra-threadsafe-checking,
[ --enable-extra-threadsafe-checking	Build a cygwin DLL which is thread safe with extra consistency checking],
[case "${enableval}" in
yes)
  mt_safe_val=1
  MT_SAFE=yes
  AC_DEFINE(_CYG_THREAD_FAILSAFE)
  ;;
no)
  dnl Don't do anything here to avoid overriding --enable-threadsafe.
  ;;
esac
])

if test "$MT_SAFE" = "yes"; then
  AC_DEFINE_UNQUOTED(_MT_SAFE,$mt_safe_val)
fi

dnl Makefile uses MT_SAFE, so we subst as well as defining it.
AC_SUBST(MT_SAFE)

AC_ARG_ENABLE(debugging,
[ --enable-debugging		Build a cygwin DLL which has more consistency checking for debugging],
[case "${enableval}" in
yes)	 AC_DEFINE(DEBUGGING) ;;
no)	 ;;
esac
])

MALLOC_OFILES=
AC_ARG_ENABLE(malloc-debugging,
[ --enable-malloc-debugging		Build a cygwin DLL with heap sanity checking (this is very slow, use only if you have heap corruption problems)],
[case "${enableval}" in
yes)	 AC_DEFINE(MALLOC_DEBUG)
	 MALLOC_OFILES=dlmalloc.o
	 ;;
no)	 ;;
esac
])

AC_ARG_ENABLE(vfork,
[ --enable-vfork		Build a cygwin DLL which uses experimental vfork code],
vfork="${enableval}"
])

case "$vfork" in
no)	 ;;
yes|*)	 AC_DEFINE_UNQUOTED(NEWVFORK) ;;
esac

dnl The only time we might want to transform the install names
dnl is for unix x cygwin.  Otherwise we don't.  For now we don't
dnl transform names.

dnl if test "x$cross_compiling" = "xno" -a ; then
dnl   if test "x$program_transform_name" = "xs,x,x,"; then
dnl     program_transform_name=""
dnl   fi
dnl   if test "x$program_transform_name" = "x"; then
dnl     program_transform_name="s,^,$target_alias-,"
dnl   else
dnl     program_transform_name="$program_transform_name -e s,^,$target_alias-,"
dnl   fi
dnl fi

dnl
dnl If newlib is part of build tree, always set EXE_LDFLAGS to point to
dnl it; this is important in cases where the installed newlib is perhaps
dnl not compatible. Check and warn for installed newlib only if it's not
dnl part of the build tree.
dnl

AC_MSG_CHECKING([if newlib is part of the build tree])

EXE_LDFLAGS=
if test -d ../newlib
then
  AC_MSG_RESULT(yes)
  EXE_LDFLAGS="-B../../newlib/ -B../"
else
  AC_MSG_RESULT(no)
fi
 AC_SUBST(EXE_LDFLAGS)

if test x"$EXE_LDFLAGS" = x
then
  AC_MSG_CHECKING([if installed newlib needed])
  AC_TRY_LINK(,
    [/* main already defined */]
    ,
    AC_MSG_RESULT(no)
    ,
    AC_MSG_RESULT(yes)
    AC_MSG_WARN(newlib not found - utility .exe's may not link))
fi
AC_SUBST(EXE_LDFLAGS)

case "$target_cpu" in
   i386|i486|i586|i686) DLL_ENTRY="_dll_entry@12"
		DEF_DLL_ENTRY="dll_entry@12"
		ALLOCA="_alloca"
		CONFIG_DIR="i386"  ;;
   powerpc*)	DLL_ENTRY="dll_entry"
		DEF_DLL_ENTRY="dll_entry"
		ALLOCA=" __allocate_stack"
		CONFIG_DIR="ppc"  ;;
   *)		AC_MSG_ERROR(Invalid target processor \"$target_cpu\") ;;
esac

AC_SUBST(MALLOC_OFILES)
AC_SUBST(DLL_ENTRY)
AC_SUBST(DEF_DLL_ENTRY)
AC_SUBST(ALLOCA)
AC_SUBST(CONFIG_DIR)
AC_OUTPUT(Makefile cygwin.def:cygwin.din)