source: rtems/aclocal.m4 @ 2d7d605

4.104.114.84.95
Last change on this file since 2d7d605 was 2d7d605, checked in by Joel Sherrill <joel.sherrill@…>, on 08/19/98 at 14:41:23

Patch from Aleksey <qqi@…>:

It fixes netboot build problem, KA9Q configuration
for pc386, some compiler wardning, it also removed some stuff
ifdef'ed with '#if 0'.

  • Property mode set to 100644
File size: 13.7 KB
RevLine 
[e81ef51]1dnl aclocal.m4 generated automatically by aclocal 1.2
2
3dnl $Id$
[b5ddb74]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])
[1670eede]41
[e81ef51]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
[fe2401b2]59dnl Set program_prefix
60dnl
61dnl 98/05/20 Ralf Corsepius     (corsepiu@faw.uni-ulm.de)
62dnl                             Extracted from configure
63
64AC_DEFUN(RTEMS_TOOL_PREFIX,
65[AC_REQUIRE([AC_CANONICAL_TARGET])dnl
66AC_REQUIRE([AC_CANONICAL_BUILD])dnl
67
68if [[ "${program_prefix}" = "NONE" ]] ; then
69  if [[ "${target}" = "${host}" ]] ; then
70    program_prefix=
71  else
72    program_prefix=${target}-
73  fi
74fi
75])
76
[e81ef51]77dnl
78dnl $Id$
79dnl
80dnl Check for target gcc
81dnl
[fe2401b2]82dnl 98/05/20 Ralf Corsepius     (corsepiu@faw.uni-ulm.de)
83dnl                             Completely reworked
[e81ef51]84
85AC_DEFUN(RTEMS_PROG_CC,
86[
87AC_BEFORE([$0], [AC_PROG_CPP])dnl
88AC_BEFORE([$0], [AC_PROG_CC])dnl
[fe2401b2]89AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
90
91dnl Only accept gcc and cc
92dnl NOTE: This might be too restrictive for native compilation
93AC_PATH_PROGS(CC_FOR_TARGET, "$program_prefix"gcc "$program_prefix"cc )
94test -z "$CC_FOR_TARGET" \
95  && AC_MSG_ERROR([no acceptable cc found in \$PATH])
96
97dnl backup
98rtems_save_CC=$CC
99rtems_save_CFLAGS=$CFLAGS
[e81ef51]100
[fe2401b2]101dnl temporarily set CC
102CC=$CC_FOR_TARGET
103
104AC_PROG_CC_WORKS
[e81ef51]105AC_PROG_CC_GNU
106
107if test $ac_cv_prog_gcc = yes; then
108  GCC=yes
109dnl Check whether -g works, even if CFLAGS is set, in case the package
110dnl plays around with CFLAGS (such as to build both debugging and
111dnl normal versions of a library), tasteless as that idea is.
112  ac_test_CFLAGS="${CFLAGS+set}"
113  ac_save_CFLAGS="$CFLAGS"
114  CFLAGS=
115  AC_PROG_CC_G
116  if test "$ac_test_CFLAGS" = set; then
117    CFLAGS="$ac_save_CFLAGS"
118  elif test $ac_cv_prog_cc_g = yes; then
119    CFLAGS="-g -O2"
120  else
121    CFLAGS="-O2"
122  fi
123else
124  GCC=
125  test "${CFLAGS+set}" = set || CFLAGS="-g"
126fi
127
128rtems_cv_prog_gcc=$ac_cv_prog_gcc
129rtems_cv_prog_cc_g=$ac_cv_prog_cc_g
[fe2401b2]130rtems_cv_prog_cc_works=$ac_cv_prog_cc_works
131rtems_cv_prog_cc_cross=$ac_cv_prog_cc_cross
[e81ef51]132
133dnl restore initial values
[fe2401b2]134CC=$rtems_save_CC
135CFLAGS=$rtems_save_CFLAGS
136
[e81ef51]137unset ac_cv_prog_gcc
138unset ac_cv_prog_cc_g
[fe2401b2]139unset ac_cv_prog_cc_works
140unset ac_cv_prog_cc_cross
[e81ef51]141])
142
143dnl
144dnl $Id$
145dnl
146dnl Check whether the target compiler accepts -specs
147dnl
148dnl 98/02/11 Ralf Corsepius     corsepiu@faw.uni-ulm.de
149dnl
150
151AC_DEFUN(RTEMS_GCC_SPECS,
152[AC_REQUIRE([RTEMS_PROG_CC])
153AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts -specs,rtems_cv_gcc_specs,
[98100d2]154[
155rtems_cv_gcc_specs=no
156if test "$rtems_cv_prog_gcc" = "yes"; then
157  touch confspec
158  echo 'void f(){}' >conftest.c
159  if test -z "`${CC_FOR_TARGET} -specs confspec -c conftest.c 2>&1`";then
160    rtems_cv_gcc_specs=yes
161  fi
[e81ef51]162fi
163rm -f confspec conftest*
164])])
165
166dnl
167dnl $Id$
168dnl
169dnl Check whether the target compiler accepts -pipe
170dnl
171dnl 98/02/11 Ralf Corsepius     corsepiu@faw.uni-ulm.de
172dnl
173
174AC_DEFUN(RTEMS_GCC_PIPE,
[a7a08713]175[AC_REQUIRE([RTEMS_PROG_CC])
176AC_REQUIRE([AC_CANONICAL_HOST])
[e81ef51]177AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts --pipe,rtems_cv_gcc_pipe,
178[
[98100d2]179rtems_cv_gcc_pipe=no
180if test "$rtems_cv_prog_gcc" = "yes"; then
[a7a08713]181case "$host_os" in
182  cygwin32*)
183    ;;
184  *)
185    echo 'void f(){}' >conftest.c
186    if test -z "`${CC_FOR_TARGET} --pipe -c conftest.c 2>&1`";then
187      rtems_cv_gcc_pipe=yes
188    fi
189    rm -f conftest*
190    ;;
191esac
[98100d2]192fi
[a7a08713]193])
194])
[e81ef51]195
196dnl
197dnl $Id$
198dnl
199dnl Check for target g++
200dnl
[fe2401b2]201dnl 98/05/20 Ralf Corsepius     (corsepiu@faw.uni-ulm.de)
202dnl                             Completely reworked
203
[e81ef51]204AC_DEFUN(RTEMS_PROG_CXX,
205[
206AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
207AC_BEFORE([$0], [AC_PROG_CXX])dnl
[fe2401b2]208AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
209
210dnl Only accept g++ and c++
211dnl NOTE: This might be too restrictive for native compilation
212AC_PATH_PROGS(CXX_FOR_TARGET, "$program_prefix"g++ "$program_prefix"c++)
213test -z "$CXX_FOR_TARGET" \
214  && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
215
216dnl backup
217rtems_save_CXX=$CXX
218rtems_save_CXXFLAGS=$CXXFLAGS
219
220dnl temporarily set CXX
221CXX=$CXX_FOR_TARGET
[e81ef51]222
[fe2401b2]223AC_PROG_CXX_WORKS
[e81ef51]224AC_PROG_CXX_GNU
225
226if test $ac_cv_prog_gxx = yes; then
227  GXX=yes
228dnl Check whether -g works, even if CXXFLAGS is set, in case the package
229dnl plays around with CXXFLAGS (such as to build both debugging and
230dnl normal versions of a library), tasteless as that idea is.
231  ac_test_CXXFLAGS="${CXXFLAGS+set}"
232  ac_save_CXXFLAGS="$CXXFLAGS"
233  CXXFLAGS=
234  AC_PROG_CXX_G
235  if test "$ac_test_CXXFLAGS" = set; then
236    CXXFLAGS="$ac_save_CXXFLAGS"
237  elif test $ac_cv_prog_cxx_g = yes; then
238    CXXFLAGS="-g -O2"
239  else
240    CXXFLAGS="-O2"
241  fi
242else
243  GXX=
244  test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
245fi
246
[fe2401b2]247rtems_cv_prog_gxx=$ac_cv_prog_gxx
248rtems_cv_prog_cxx_g=$ac_cv_prog_cxx_g
249rtems_cv_prog_cxx_works=$ac_cv_prog_cxx_works
250rtems_cv_prog_cxx_cross=$ac_cv_prog_cxx_cross
[e81ef51]251
[fe2401b2]252CXX=$rtems_save_CXX
253CXXFLAGS=$rtems_save_CXXFLAGS
[e81ef51]254
[fe2401b2]255dnl restore initial values
256unset ac_cv_prog_gxx
257unset ac_cv_prog_cc_g
258unset ac_cv_prog_cxx_works
259unset ac_cv_prog_cxx_cross
[e81ef51]260])
261
262dnl $Id$
263dnl
264dnl Set target tools
265dnl
[98100d2]266dnl 98/06/23 Ralf Corsepius     (corsepiu@faw.uni-ulm.de)
267dnl             fixing cache/environment variable handling
268dnl             adding checks for cygwin/egcs '\\'-bug
269dnl             adding checks for ranlib/ar -s problem
270dnl
[e81ef51]271dnl 98/02/12 Ralf Corsepius     (corsepiu@faw.uni-ulm.de)
272dnl
273
[98100d2]274AC_DEFUN(RTEMS_GCC_PRINT,
275[ case $host_os in
276  *cygwin32*)
277    dnl FIXME: Hack for cygwin/egcs reporting mixed '\\' and '/'
278    dnl        Should be removed once cygwin/egcs reports '/' only
[32067a30]279    $1=`$CC_FOR_TARGET --print-prog-name=$2 | sed -e 's%\\\\%/%g' `
[98100d2]280    ;;
281  *)
282    $1=`$CC_FOR_TARGET --print-prog-name=$2`
283    ;;
284  esac
285])
286
287AC_DEFUN(RTEMS_PATH_TOOL,
288[
289AC_MSG_CHECKING([target's $2])
290AC_CACHE_VAL(ac_cv_path_$1,:)
291AC_MSG_RESULT([$ac_cv_path_$1])
292
293if test -n "$ac_cv_path_$1"; then
294  dnl retrieve the value from the cache
295  $1=$ac_cv_path_$1
296else
297  dnl the cache was not set
298  if test -z "[$]$1" ; then
299    if test "$rtems_cv_prog_gcc" = "yes"; then
300      # We are using gcc, ask it about its tool
301      # NOTE: Necessary if gcc was configured to use the target's
302      # native tools or uses prefixes for gnutools (e.g. gas instead of as)
303      RTEMS_GCC_PRINT($1,$2)
304    fi
305  else
306    # The user set an environment variable.
307    # Check whether it is an absolute path, otherwise AC_PATH_PROG
308    # will override the environment variable, which isn't what the user
309    # intends
310    AC_MSG_CHECKING([whether environment variable $1 is an absolute path])
311    case "[$]$1" in
312    /*) # valid
313      AC_MSG_RESULT("yes")
314    ;;
315    *)  # invalid for AC_PATH_PROG
316      AC_MSG_RESULT("no")
317      AC_MSG_ERROR([***]
318        [Environment variable $1 should ether]
319        [be unset (preferred) or contain an absolute path])
320    ;;
321    esac
322  fi
323
324  AC_PATH_PROG($1,"$program_prefix"$2,$3)
325fi
326])
327
[e81ef51]328AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
329[AC_REQUIRE([RTEMS_PROG_CC])dnl
[98100d2]330
331dnl FIXME: What shall be done if these tools are not available?
332  RTEMS_PATH_TOOL(AR_FOR_TARGET,ar,no)
333  RTEMS_PATH_TOOL(AS_FOR_TARGET,as,no)
334  RTEMS_PATH_TOOL(LD_FOR_TARGET,ld,no)
335  RTEMS_PATH_TOOL(NM_FOR_TARGET,nm,no)
336
337dnl special treatment of ranlib
338  RTEMS_PATH_TOOL(RANLIB_FOR_TARGET,ranlib,no)
339  if test "$RANLIB_FOR_TARGET" = "no"; then
340    # ranlib wasn't found; check if ar -s is available
341    RTEMS_AR_FOR_TARGET_S
342    if test $rtems_cv_AR_FOR_TARGET_S = "yes" ; then
343      dnl override RANLIB_FOR_TARGET's cache
344      ac_cv_path_RANLIB_FOR_TARGET="$AR_FOR_TARGET -s"
345      RANLIB_FOR_TARGET=$ac_cv_path_RANLIB_FOR_TARGET
346    else
347      AC_MSG_ERROR([***]
348        [Can't figure out how to build a library index]
349        [Nether ranlib nor ar -s seem to be available] )
350    fi
351  fi
352
353dnl NOTE: These may not be available if not using gnutools
354  RTEMS_PATH_TOOL(OBJCOPY_FOR_TARGET,objcopy,no)
355  RTEMS_PATH_TOOL(SIZE_FOR_TARGET,size,no)
356])
357
358AC_DEFUN(RTEMS_AR_FOR_TARGET_S,
359[
360AC_CACHE_CHECK(whether $AR_FOR_TARGET -s works,
361rtems_cv_AR_FOR_TARGET_S,
362[
363cat > conftest.$ac_ext <<EOF
364int foo( int b )
365{ return b; }
366EOF
367if AC_TRY_COMMAND($CC_FOR_TARGET -o conftest.o -c conftest.$ac_ext) \
368  && AC_TRY_COMMAND($AR_FOR_TARGET -sr conftest.a conftest.o) \
369  && test -s conftest.a ; \
370then
371  rtems_cv_AR_FOR_TARGET_S="yes"
372else
373  rtems_cv_AR_FOR_TARGET_S="no"
[e81ef51]374fi
[98100d2]375  rm -f conftest*
376])
377])
[e81ef51]378
379
[98100d2]380dnl Detect the Cygwin32 environment (unix under Win32)
381dnl
382dnl 98/06/16 David Fiddes       (D.J.Fiddes@hw.ac.uk)
383dnl                             Hacked from automake-1.3
[e81ef51]384
[98100d2]385# Check to see if we're running under Cygwin32, without using
386# AC_CANONICAL_*.  If so, set output variable CYGWIN32 to "yes".
387# Otherwise set it to "no".
388
389dnl RTEMS_CYGWIN32()
390AC_DEFUN(RTEMS_CYGWIN32,
391[AC_CACHE_CHECK(for Cygwin32 environment, rtems_cv_cygwin32,
392[AC_TRY_COMPILE(,[return __CYGWIN32__;],
393rtems_cv_cygwin32=yes, rtems_cv_cygwin32=no)
394rm -f conftest*])
395CYGWIN32=
396test "$rtems_cv_cygwin32" = yes && CYGWIN32=yes])
397
398
399dnl Set the EXE extension
400dnl
401dnl 98/06/16 David Fiddes       (D.J.Fiddes@hw.ac.uk)
402dnl                             Hacked from automake-1.3
403
404# Check to see if we're running under Win32, without using
405# AC_CANONICAL_*.  If so, set output variable EXEEXT to ".exe".
406# Otherwise set it to "".
407
408dnl RTEMS_EXEEXT()
409dnl This knows we add .exe if we're building in the Cygwin32
410dnl environment. But if we're not, then it compiles a test program
411dnl to see if there is a suffix for executables.
412AC_DEFUN(RTEMS_EXEEXT,
413[AC_REQUIRE([RTEMS_CYGWIN32])
414AC_MSG_CHECKING([for executable suffix])
415AC_CACHE_VAL(rtems_cv_exeext,
416[if test "$CYGWIN32" = yes; then
417rtems_cv_exeext=.exe
418else
419cat > rtems_c_test.c << 'EOF'
420int main() {
421/* Nothing needed here */
422}
423EOF
424${CC-cc} -o rtems_c_test $CFLAGS $CPPFLAGS $LDFLAGS rtems_c_test.c $LIBS 1>&5
425rtems_cv_exeext=`echo rtems_c_test.* | grep -v rtems_c_test.c | sed -e s/rtems_c_test//`
426rm -f rtems_c_test*])
427test x"${rtems_cv_exeext}" = x && rtems_cv_exeext=no
428fi
429EXEEXT=""
430test x"${rtems_cv_exeext}" != xno && EXEEXT=${rtems_cv_exeext}
431AC_MSG_RESULT(${rtems_cv_exeext})
432AC_SUBST(EXEEXT)])
[e81ef51]433
434
[613ab62]435dnl
436dnl $Id$
437dnl
438dnl Check for System V IPC calls used by Unix simulators
439dnl
440dnl 98/07/17 Dario Alcocer     alcocer@netcom.com
441dnl          Ralf Corsepius    corsepiu@faw.uni-ulm.de
442dnl
443dnl Note: $host_os should probably *not* ever be used here to
444dnl determine if host supports System V IPC calls, since some
445dnl (e.g. FreeBSD 2.x) are configured by default to include only
446dnl a subset of the System V IPC calls.  Therefore, to make sure
447dnl all of the required calls are found, test for each call explicitly.
448dnl
449dnl All of the calls use IPC_PRIVATE, so tests will not unintentionally
450dnl modify any existing key sets.  See the man pages for semget, shmget,
451dnl msgget, semctl, shmctl and msgctl for details.
452
453AC_DEFUN(RTEMS_SYSV_SEM,
454[AC_REQUIRE([RTEMS_PROG_CC])
455AC_REQUIRE([AC_CANONICAL_HOST])
456AC_CACHE_CHECK(whether $RTEMS_HOST supports System V semaphores,
457rtems_cv_sysv_sem,
458[
459AC_TRY_RUN([
460#include <sys/types.h>
461#include <sys/ipc.h>
462#include <sys/sem.h>
463int main () {
[2d7d605]464#if !defined(sun)
465  union semun arg ;
[06fa582]466#else
467  union semun {
468    int val;
469    struct semid_ds *buf;
470    ushort *array;
471  } arg;
472#endif
[613ab62]473  int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400);
474  if (id == -1)
475    exit(1);
476  arg.val = 0; /* avoid implicit type cast to union */
477  if (semctl(id, 0, IPC_RMID, arg) == -1)
478    exit(1);
479  exit(0);
480}
481],
482rtems_cv_sysv_sem="yes", rtems_cv_sysv_sem="no", :)
483])
484])
485
486AC_DEFUN(RTEMS_SYSV_SHM,
487[AC_REQUIRE([RTEMS_PROG_CC])
488AC_REQUIRE([AC_CANONICAL_HOST])
489AC_CACHE_CHECK(whether $RTEMS_HOST supports System V shared memory,
490rtems_cv_sysv_shm,
491[
492AC_TRY_RUN([
493#include <sys/types.h>
494#include <sys/ipc.h>
495#include <sys/shm.h>
496int main () {
497  int id=shmget(IPC_PRIVATE,1,IPC_CREAT|0400);
498  if (id == -1)
499    exit(1);
500  if (shmctl(id, IPC_RMID, 0) == -1)
501    exit(1);
502  exit(0);
503}
504],
505rtems_cv_sysv_shm="yes", rtems_cv_sysv_shm="no", :)
506])
507])
508
509AC_DEFUN(RTEMS_SYSV_MSG,
510[AC_REQUIRE([RTEMS_PROG_CC])
511AC_REQUIRE([AC_CANONICAL_HOST])
512AC_CACHE_CHECK(whether $RTEMS_HOST supports System V messages,
513rtems_cv_sysv_msg,
514[
515AC_TRY_RUN([
516#include <sys/types.h>
517#include <sys/ipc.h>
518#include <sys/msg.h>
519int main () {
520  int id=msgget(IPC_PRIVATE,IPC_CREAT|0400);
521  if (id == -1)
522    exit(1);
523  if (msgctl(id, IPC_RMID, 0) == -1)
524    exit(1);
525  exit(0);
526}
527],
528rtems_cv_sysv_msg="yes", rtems_cv_sysv_msg="no", :)
529])
530])
531
[e81ef51]532dnl $Id$
533
534dnl RTEMS_CHECK_MAKEFILE(path)
535dnl Search for Makefile.in's within the directory starting
536dnl at path and append an entry for Makefile to global variable
537dnl "makefiles" (from configure.in) for each Makefile.in found
538dnl
539AC_DEFUN(RTEMS_CHECK_MAKEFILE,
540[RTEMS_CHECK_FILES_IN($1,Makefile,makefiles)
541])
542
543dnl $Id$
544
[37717818]545dnl RTEMS_CHECK_FILES_IN(path,file,var)
546dnl path .. path relative to srcdir, where to start searching for files
547dnl file .. name of the files to search for
[e81ef51]548dnl var  .. shell variable to append files found
[37717818]549AC_DEFUN(RTEMS_CHECK_FILES_IN,
550[
[2f03a608]551AC_MSG_CHECKING(for $2.in in $1)
[37717818]552if test -d $srcdir/$1; then
553  rtems_av_save_dir=`pwd`;
554  cd $srcdir;
[2f03a608]555  rtems_av_tmp=`find $1 -name "$2.in" -print | sed "s/$2\.in/%/" | sort | sed "s/%/$2/"`
[37717818]556  $3="$$3 $rtems_av_tmp";
557  cd $rtems_av_save_dir;
558  AC_MSG_RESULT(done)
559else
560  AC_MSG_RESULT(no)
561fi
[1670eede]562])
563
564
Note: See TracBrowser for help on using the repository browser.