source: rtems/aclocal.m4 @ 5c84407

4.104.114.84.95
Last change on this file since 5c84407 was d53130be, checked in by Joel Sherrill <joel.sherrill@…>, on 03/23/98 at 19:54:35

Updated now that the phony crt0.c in newlib defines all odd symbols
that gcc automatically generates references to.

  • Property mode set to 100644
File size: 8.6 KB
Line 
1dnl aclocal.m4 generated automatically by aclocal 1.2
2
3dnl $Id$
4
5dnl macro to detect mkdir
6AC_DEFUN(RTEMS_PATH_MKDIR,
7[AC_PATH_PROG(MKDIR,mkdir)
8])
9
10dnl macro to check for mkdir -p
11AC_DEFUN(RTEMS_PROG_MKDIR_P,
12[
13AC_REQUIRE([RTEMS_PATH_MKDIR])
14AC_MSG_CHECKING([for working $MKDIR -p])
15AC_CACHE_VAL(rtems_cv_prog_mkdir_p,
16[rm -rf conftestdata
17if $MKDIR -p conftestdata 2>/dev/null ;then
18rtems_cv_prog_MKDIR_P="yes"
19else
20rtems_cv_prog_MKDIR_P="no"
21fi])dnl
22rm -rf conftestdata
23AC_MSG_RESULT($rtems_cv_prog_MKDIR_P)
24])
25
26dnl macro to check for mkdir -m 0755
27AC_DEFUN(RTEMS_PROG_MKDIR_M,
28[
29AC_REQUIRE([RTEMS_PATH_MKDIR])
30AC_MSG_CHECKING([for working $MKDIR -m 0755])
31AC_CACHE_VAL(rtems_cv_prog_MKDIR_P,
32[rm -rf conftestdata
33if $MKDIR -m 0775 conftestdata 2>/dev/null; then
34rtems_cv_prog_MKDIR_M="yes"
35else
36rtems_cv_prog_MKDIR_M="no"
37fi])dnl
38rm -rf conftestdata
39AC_MSG_RESULT($rtems_cv_prog_MKDIR_M)
40])
41
42
43dnl $Id$
44
45dnl canonicalize target name
46dnl NOTE: Most rtems targets do not fullfil autoconf's
47dnl target naming conventions "processor-vendor-os"
48dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
49dnl and we have to fix it for rtems ourselves
50
51AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
52[AC_MSG_CHECKING(rtems target cpu)
53changequote(<<, >>)dnl
54target_cpu=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
55changequote([, ])dnl
56AC_MSG_RESULT($target_cpu)
57])
58
59dnl
60dnl $Id$
61dnl
62dnl Check for target gcc
63dnl
64dnl Adaptation of autoconf-2.12's AC_PROG_CC to rtems
65dnl
66dnl 98/02/10 Ralf Corsepius     (corsepiu@faw.uni-ulm.de)
67dnl
68
69AC_DEFUN(RTEMS_PROG_CC,
70[
71AC_BEFORE([$0], [AC_PROG_CPP])dnl
72AC_BEFORE([$0], [AC_PROG_CC])dnl
73AC_CHECK_PROG(CC, gcc, gcc)
74if test -z "$CC"; then
75  AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
76  test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
77fi
78
79RTEMS_PROG_CC_WORKS
80AC_PROG_CC_GNU
81
82if test $ac_cv_prog_gcc = yes; then
83  GCC=yes
84dnl Check whether -g works, even if CFLAGS is set, in case the package
85dnl plays around with CFLAGS (such as to build both debugging and
86dnl normal versions of a library), tasteless as that idea is.
87  ac_test_CFLAGS="${CFLAGS+set}"
88  ac_save_CFLAGS="$CFLAGS"
89  CFLAGS=
90  AC_PROG_CC_G
91  if test "$ac_test_CFLAGS" = set; then
92    CFLAGS="$ac_save_CFLAGS"
93  elif test $ac_cv_prog_cc_g = yes; then
94    CFLAGS="-g -O2"
95  else
96    CFLAGS="-O2"
97  fi
98else
99  GCC=
100  test "${CFLAGS+set}" = set || CFLAGS="-g"
101fi
102
103CC_FOR_TARGET=$CC
104rtems_cv_prog_gcc=$ac_cv_prog_gcc
105rtems_cv_prog_cc_g=$ac_cv_prog_cc_g
106
107dnl restore initial values
108unset CC
109unset ac_cv_prog_gcc
110unset ac_cv_prog_cc_g
111unset ac_cv_prog_CC
112])
113
114
115dnl Almost identical to AC_PROG_CC_WORKS
116dnl added malloc to program fragment, because rtems has its own malloc
117dnl which is not available while bootstrapping rtems
118
119AC_DEFUN(RTEMS_PROG_CC_WORKS,
120[AC_MSG_CHECKING([whether the target C compiler ($CC $CFLAGS $LDFLAGS) works])
121AC_LANG_SAVE
122AC_LANG_C
123AC_TRY_COMPILER(
124[main(){return(0);}],
125rtems_cv_prog_cc_works, rtems_cv_prog_cc_cross)
126AC_LANG_RESTORE
127AC_MSG_RESULT($rtems_cv_prog_cc_works)
128if test $rtems_cv_prog_cc_works = no; then
129  AC_MSG_ERROR([installation or configuration problem: target C compiler cannot create executables.])
130fi
131AC_MSG_CHECKING([whether the target C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler])
132AC_MSG_RESULT($rtems_cv_prog_cc_cross)
133])
134
135dnl
136dnl $Id$
137dnl
138dnl Check whether the target compiler accepts -specs
139dnl
140dnl 98/02/11 Ralf Corsepius     corsepiu@faw.uni-ulm.de
141dnl
142
143AC_DEFUN(RTEMS_GCC_SPECS,
144[AC_REQUIRE([RTEMS_PROG_CC])
145AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts -specs,rtems_cv_gcc_specs,
146[touch confspec
147echo 'void f(){}' >conftest.c
148if test -z "`${CC_FOR_TARGET} -specs confspec -c conftest.c 2>&1`";then
149  rtems_cv_gcc_specs=yes
150else
151  rtems_cv_gcc_specs=no
152fi
153rm -f confspec conftest*
154])])
155
156dnl
157dnl $Id$
158dnl
159dnl Check whether the target compiler accepts -pipe
160dnl
161dnl 98/02/11 Ralf Corsepius     corsepiu@faw.uni-ulm.de
162dnl
163
164AC_DEFUN(RTEMS_GCC_PIPE,
165[AC_REQUIRE([RTEMS_PROG_CC])
166AC_REQUIRE([AC_CANONICAL_HOST])
167AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts --pipe,rtems_cv_gcc_pipe,
168[
169case "$host_os" in
170  cygwin32*)
171    rtems_cv_gcc_pipe=no
172    ;;
173  *)
174    echo 'void f(){}' >conftest.c
175    if test -z "`${CC_FOR_TARGET} --pipe -c conftest.c 2>&1`";then
176      rtems_cv_gcc_pipe=yes
177    else
178      rtems_cv_gcc_pipe=no
179    fi
180    rm -f conftest*
181    ;;
182esac
183])
184])
185
186dnl
187dnl $Id$
188dnl
189dnl Check for target g++
190dnl
191dnl Adaptation of autoconf-2.12's AC_PROG_CXX to rtems
192dnl
193dnl 98/02/10 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
194dnl
195 
196AC_DEFUN(RTEMS_PROG_CXX,
197[
198AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
199AC_BEFORE([$0], [AC_PROG_CXX])dnl
200AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
201
202RTEMS_PROG_CXX_WORKS
203AC_PROG_CXX_GNU
204
205if test $ac_cv_prog_gxx = yes; then
206  GXX=yes
207dnl Check whether -g works, even if CXXFLAGS is set, in case the package
208dnl plays around with CXXFLAGS (such as to build both debugging and
209dnl normal versions of a library), tasteless as that idea is.
210  ac_test_CXXFLAGS="${CXXFLAGS+set}"
211  ac_save_CXXFLAGS="$CXXFLAGS"
212  CXXFLAGS=
213  AC_PROG_CXX_G
214  if test "$ac_test_CXXFLAGS" = set; then
215    CXXFLAGS="$ac_save_CXXFLAGS"
216  elif test $ac_cv_prog_cxx_g = yes; then
217    CXXFLAGS="-g -O2"
218  else
219    CXXFLAGS="-O2"
220  fi
221else
222  GXX=
223  test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
224fi
225CXX_FOR_TARGET=$CXX
226
227dnl restore initial values
228unset CXX
229unset ac_cv_prog_gxx
230])
231
232
233dnl Almost identical to AC_PROG_CXX_WORKS
234dnl Additional handling of malloc
235dnl NOTE: using newlib with a native compiler is cross-compiling, indeed.
236AC_DEFUN(RTEMS_PROG_CXX_WORKS,
237[AC_MSG_CHECKING([whether the target C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works])
238AC_LANG_SAVE
239AC_LANG_CPLUSPLUS
240
241dnl this fails if rtems uses newlib, because rtems has its own malloc which
242dnl is not available at bootstrap
243AC_TRY_COMPILER(
244  [main(){return(0);}],
245  rtems_cv_prog_cxx_works, rtems_cv_prog_cxx_cross)
246if test "$rtems_cv_prog_cxx_works" = "no"; then
247  dnl now retry with our own version of malloc
248  AC_TRY_COMPILER(
249    [ main(){return(0);}],
250    rtems_cv_prog_cxx_works, rtems_cv_prog_cxx_cross)
251fi
252AC_LANG_RESTORE
253AC_MSG_RESULT($rtems_cv_prog_cxx_works)
254if test $rtems_cv_prog_cxx_works = no; then
255  AC_MSG_ERROR([installation or configuration problem: target C++ compiler cannot create executables.])
256fi
257AC_MSG_CHECKING([whether the target C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
258AC_MSG_RESULT($rtems_cv_prog_cxx_cross)
259])
260
261dnl $Id$
262dnl
263dnl Set target tools
264dnl
265dnl 98/02/12 Ralf Corsepius     (corsepiu@faw.uni-ulm.de)
266dnl
267
268AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
269[AC_REQUIRE([RTEMS_PROG_CC])dnl
270if test "$rtems_cv_prog_gcc" = "yes" ; then
271  dnl We are using gcc, now ask it about its tools
272  dnl Necessary if gcc was configured to use the target's native tools
273  dnl or uses prefixes for gnutools (e.g. gas instead of as)
274  AR_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=ar`
275  AS_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=as`
276  LD_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=ld`
277  NM_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=nm`
278  RANLIB_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=ranlib`
279fi
280
281dnl check whether the tools exist
282dnl FIXME: What shall be done if they don't exist?
283
284dnl NOTE: CC_FOR_TARGET should always be valid at this point,
285dnl       cf. RTEMS_PROG_CC 
286AC_PATH_PROG(CC_FOR_TARGET,"$program_prefix"gcc,no)
287
288dnl FIXME: This may fail if the compiler has not been recognized as gcc
289dnl       and uses tools with different names
290AC_PATH_PROG(AR_FOR_TARGET,"$program_prefix"ar,no)
291AC_PATH_PROG(AS_FOR_TARGET,"$program_prefix"as,no)
292AC_PATH_PROG(NM_FOR_TARGET,"$program_prefix"nm,no)
293AC_PATH_PROG(LD_FOR_TARGET,"$program_prefix"ld,no)
294
295dnl NOTE: This is doubtful, but should not disturb all current rtems'
296dnl       targets (remark: solaris fakes ranlib!!)
297AC_PATH_PROG(RANLIB_FOR_TARGET,"$program_prefix"ranlib,no)
298
299dnl NOTE: These may not be available, if not using gnutools
300AC_PATH_PROG(OBJCOPY_FOR_TARGET,"$program_prefix"objcopy,no)
301AC_PATH_PROG(SIZE_FOR_TARGET,"$program_prefix"size,no)
302])
303
304dnl $Id$
305
306dnl RTEMS_CHECK_MAKEFILE(path)
307dnl Search for Makefile.in's within the directory starting
308dnl at path and append an entry for Makefile to global variable
309dnl "makefiles" (from configure.in) for each Makefile.in found
310dnl
311AC_DEFUN(RTEMS_CHECK_MAKEFILE,
312[RTEMS_CHECK_FILES_IN($1,Makefile,makefiles)
313])
314
315dnl $Id$
316
317dnl RTEMS_CHECK_FILES_IN(path,file,var)
318dnl path .. path relative to srcdir, where to start searching for files
319dnl file .. name of the files to search for
320dnl var  .. shell variable to append files found
321AC_DEFUN(RTEMS_CHECK_FILES_IN,
322[
323AC_MSG_CHECKING(for $2.in in $1)
324if test -d $srcdir/$1; then
325  rtems_av_save_dir=`pwd`;
326  cd $srcdir;
327  rtems_av_tmp=`find $1 -name "$2.in" -print | sed "s/$2\.in/%/" | sort | sed "s/%/$2/"`
328  $3="$$3 $rtems_av_tmp";
329  cd $rtems_av_save_dir;
330  AC_MSG_RESULT(done)
331else
332  AC_MSG_RESULT(no)
333fi
334])
335
336
Note: See TracBrowser for help on using the repository browser.