[e81ef51] | 1 | dnl aclocal.m4 generated automatically by aclocal 1.2 |
---|
| 2 | |
---|
| 3 | dnl $Id$ |
---|
[b5ddb74] | 4 | |
---|
| 5 | dnl macro to detect mkdir |
---|
| 6 | AC_DEFUN(RTEMS_PATH_MKDIR, |
---|
| 7 | [AC_PATH_PROG(MKDIR,mkdir) |
---|
| 8 | ]) |
---|
| 9 | |
---|
| 10 | dnl macro to check for mkdir -p |
---|
| 11 | AC_DEFUN(RTEMS_PROG_MKDIR_P, |
---|
| 12 | [ |
---|
| 13 | AC_REQUIRE([RTEMS_PATH_MKDIR]) |
---|
| 14 | AC_MSG_CHECKING([for working $MKDIR -p]) |
---|
| 15 | AC_CACHE_VAL(rtems_cv_prog_mkdir_p, |
---|
| 16 | [rm -rf conftestdata |
---|
| 17 | if $MKDIR -p conftestdata 2>/dev/null ;then |
---|
| 18 | rtems_cv_prog_MKDIR_P="yes" |
---|
| 19 | else |
---|
| 20 | rtems_cv_prog_MKDIR_P="no" |
---|
| 21 | fi])dnl |
---|
| 22 | rm -rf conftestdata |
---|
| 23 | AC_MSG_RESULT($rtems_cv_prog_MKDIR_P) |
---|
| 24 | ]) |
---|
| 25 | |
---|
| 26 | dnl macro to check for mkdir -m 0755 |
---|
| 27 | AC_DEFUN(RTEMS_PROG_MKDIR_M, |
---|
| 28 | [ |
---|
| 29 | AC_REQUIRE([RTEMS_PATH_MKDIR]) |
---|
| 30 | AC_MSG_CHECKING([for working $MKDIR -m 0755]) |
---|
| 31 | AC_CACHE_VAL(rtems_cv_prog_MKDIR_P, |
---|
| 32 | [rm -rf conftestdata |
---|
| 33 | if $MKDIR -m 0775 conftestdata 2>/dev/null; then |
---|
| 34 | rtems_cv_prog_MKDIR_M="yes" |
---|
| 35 | else |
---|
| 36 | rtems_cv_prog_MKDIR_M="no" |
---|
| 37 | fi])dnl |
---|
| 38 | rm -rf conftestdata |
---|
| 39 | AC_MSG_RESULT($rtems_cv_prog_MKDIR_M) |
---|
| 40 | ]) |
---|
[1670eede] | 41 | |
---|
[e81ef51] | 42 | |
---|
| 43 | dnl $Id$ |
---|
| 44 | |
---|
| 45 | dnl canonicalize target name |
---|
| 46 | dnl NOTE: Most rtems targets do not fullfil autoconf's |
---|
| 47 | dnl target naming conventions "processor-vendor-os" |
---|
| 48 | dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them |
---|
| 49 | dnl and we have to fix it for rtems ourselves |
---|
| 50 | |
---|
| 51 | AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU, |
---|
| 52 | [AC_MSG_CHECKING(rtems target cpu) |
---|
| 53 | changequote(<<, >>)dnl |
---|
| 54 | target_cpu=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'` |
---|
| 55 | changequote([, ])dnl |
---|
| 56 | AC_MSG_RESULT($target_cpu) |
---|
| 57 | ]) |
---|
| 58 | |
---|
[fe2401b2] | 59 | dnl Set program_prefix |
---|
| 60 | dnl |
---|
| 61 | dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de) |
---|
| 62 | dnl Extracted from configure |
---|
| 63 | |
---|
| 64 | AC_DEFUN(RTEMS_TOOL_PREFIX, |
---|
| 65 | [AC_REQUIRE([AC_CANONICAL_TARGET])dnl |
---|
| 66 | AC_REQUIRE([AC_CANONICAL_BUILD])dnl |
---|
| 67 | |
---|
| 68 | if [[ "${program_prefix}" = "NONE" ]] ; then |
---|
| 69 | if [[ "${target}" = "${host}" ]] ; then |
---|
| 70 | program_prefix= |
---|
| 71 | else |
---|
| 72 | program_prefix=${target}- |
---|
| 73 | fi |
---|
| 74 | fi |
---|
| 75 | ]) |
---|
| 76 | |
---|
[e81ef51] | 77 | dnl |
---|
| 78 | dnl $Id$ |
---|
| 79 | dnl |
---|
| 80 | dnl Check for target gcc |
---|
| 81 | dnl |
---|
[fe2401b2] | 82 | dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de) |
---|
| 83 | dnl Completely reworked |
---|
[e81ef51] | 84 | |
---|
| 85 | AC_DEFUN(RTEMS_PROG_CC, |
---|
| 86 | [ |
---|
| 87 | AC_BEFORE([$0], [AC_PROG_CPP])dnl |
---|
| 88 | AC_BEFORE([$0], [AC_PROG_CC])dnl |
---|
[fe2401b2] | 89 | AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl |
---|
| 90 | |
---|
| 91 | dnl Only accept gcc and cc |
---|
| 92 | dnl NOTE: This might be too restrictive for native compilation |
---|
| 93 | AC_PATH_PROGS(CC_FOR_TARGET, "$program_prefix"gcc "$program_prefix"cc ) |
---|
| 94 | test -z "$CC_FOR_TARGET" \ |
---|
| 95 | && AC_MSG_ERROR([no acceptable cc found in \$PATH]) |
---|
| 96 | |
---|
| 97 | dnl backup |
---|
| 98 | rtems_save_CC=$CC |
---|
| 99 | rtems_save_CFLAGS=$CFLAGS |
---|
[e81ef51] | 100 | |
---|
[fe2401b2] | 101 | dnl temporarily set CC |
---|
| 102 | CC=$CC_FOR_TARGET |
---|
| 103 | |
---|
| 104 | AC_PROG_CC_WORKS |
---|
[e81ef51] | 105 | AC_PROG_CC_GNU |
---|
| 106 | |
---|
| 107 | if test $ac_cv_prog_gcc = yes; then |
---|
| 108 | GCC=yes |
---|
| 109 | dnl Check whether -g works, even if CFLAGS is set, in case the package |
---|
| 110 | dnl plays around with CFLAGS (such as to build both debugging and |
---|
| 111 | dnl 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 |
---|
| 123 | else |
---|
| 124 | GCC= |
---|
| 125 | test "${CFLAGS+set}" = set || CFLAGS="-g" |
---|
| 126 | fi |
---|
| 127 | |
---|
| 128 | rtems_cv_prog_gcc=$ac_cv_prog_gcc |
---|
| 129 | rtems_cv_prog_cc_g=$ac_cv_prog_cc_g |
---|
[fe2401b2] | 130 | rtems_cv_prog_cc_works=$ac_cv_prog_cc_works |
---|
| 131 | rtems_cv_prog_cc_cross=$ac_cv_prog_cc_cross |
---|
[e81ef51] | 132 | |
---|
| 133 | dnl restore initial values |
---|
[fe2401b2] | 134 | CC=$rtems_save_CC |
---|
| 135 | CFLAGS=$rtems_save_CFLAGS |
---|
| 136 | |
---|
[e81ef51] | 137 | unset ac_cv_prog_gcc |
---|
| 138 | unset ac_cv_prog_cc_g |
---|
[fe2401b2] | 139 | unset ac_cv_prog_cc_works |
---|
| 140 | unset ac_cv_prog_cc_cross |
---|
[e81ef51] | 141 | ]) |
---|
| 142 | |
---|
| 143 | dnl |
---|
| 144 | dnl $Id$ |
---|
| 145 | dnl |
---|
| 146 | dnl Check whether the target compiler accepts -specs |
---|
| 147 | dnl |
---|
| 148 | dnl 98/02/11 Ralf Corsepius corsepiu@faw.uni-ulm.de |
---|
| 149 | dnl |
---|
| 150 | |
---|
| 151 | AC_DEFUN(RTEMS_GCC_SPECS, |
---|
| 152 | [AC_REQUIRE([RTEMS_PROG_CC]) |
---|
| 153 | AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts -specs,rtems_cv_gcc_specs, |
---|
[98100d2] | 154 | [ |
---|
| 155 | rtems_cv_gcc_specs=no |
---|
| 156 | if 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] | 162 | fi |
---|
| 163 | rm -f confspec conftest* |
---|
| 164 | ])]) |
---|
| 165 | |
---|
| 166 | dnl |
---|
| 167 | dnl $Id$ |
---|
| 168 | dnl |
---|
| 169 | dnl Check whether the target compiler accepts -pipe |
---|
| 170 | dnl |
---|
| 171 | dnl 98/02/11 Ralf Corsepius corsepiu@faw.uni-ulm.de |
---|
| 172 | dnl |
---|
| 173 | |
---|
| 174 | AC_DEFUN(RTEMS_GCC_PIPE, |
---|
[a7a08713] | 175 | [AC_REQUIRE([RTEMS_PROG_CC]) |
---|
| 176 | AC_REQUIRE([AC_CANONICAL_HOST]) |
---|
[e81ef51] | 177 | AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts --pipe,rtems_cv_gcc_pipe, |
---|
| 178 | [ |
---|
[98100d2] | 179 | rtems_cv_gcc_pipe=no |
---|
| 180 | if test "$rtems_cv_prog_gcc" = "yes"; then |
---|
[a7a08713] | 181 | case "$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 | ;; |
---|
| 191 | esac |
---|
[98100d2] | 192 | fi |
---|
[a7a08713] | 193 | ]) |
---|
| 194 | ]) |
---|
[e81ef51] | 195 | |
---|
| 196 | dnl |
---|
| 197 | dnl $Id$ |
---|
| 198 | dnl |
---|
| 199 | dnl Check for target g++ |
---|
| 200 | dnl |
---|
[fe2401b2] | 201 | dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de) |
---|
| 202 | dnl Completely reworked |
---|
| 203 | |
---|
[e81ef51] | 204 | AC_DEFUN(RTEMS_PROG_CXX, |
---|
| 205 | [ |
---|
| 206 | AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl |
---|
| 207 | AC_BEFORE([$0], [AC_PROG_CXX])dnl |
---|
[fe2401b2] | 208 | AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl |
---|
| 209 | |
---|
| 210 | dnl Only accept g++ and c++ |
---|
| 211 | dnl NOTE: This might be too restrictive for native compilation |
---|
| 212 | AC_PATH_PROGS(CXX_FOR_TARGET, "$program_prefix"g++ "$program_prefix"c++) |
---|
| 213 | test -z "$CXX_FOR_TARGET" \ |
---|
| 214 | && AC_MSG_ERROR([no acceptable c++ found in \$PATH]) |
---|
| 215 | |
---|
| 216 | dnl backup |
---|
| 217 | rtems_save_CXX=$CXX |
---|
| 218 | rtems_save_CXXFLAGS=$CXXFLAGS |
---|
| 219 | |
---|
| 220 | dnl temporarily set CXX |
---|
| 221 | CXX=$CXX_FOR_TARGET |
---|
[e81ef51] | 222 | |
---|
[fe2401b2] | 223 | AC_PROG_CXX_WORKS |
---|
[e81ef51] | 224 | AC_PROG_CXX_GNU |
---|
| 225 | |
---|
| 226 | if test $ac_cv_prog_gxx = yes; then |
---|
| 227 | GXX=yes |
---|
| 228 | dnl Check whether -g works, even if CXXFLAGS is set, in case the package |
---|
| 229 | dnl plays around with CXXFLAGS (such as to build both debugging and |
---|
| 230 | dnl 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 |
---|
| 242 | else |
---|
| 243 | GXX= |
---|
| 244 | test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" |
---|
| 245 | fi |
---|
| 246 | |
---|
[fe2401b2] | 247 | rtems_cv_prog_gxx=$ac_cv_prog_gxx |
---|
| 248 | rtems_cv_prog_cxx_g=$ac_cv_prog_cxx_g |
---|
| 249 | rtems_cv_prog_cxx_works=$ac_cv_prog_cxx_works |
---|
| 250 | rtems_cv_prog_cxx_cross=$ac_cv_prog_cxx_cross |
---|
[e81ef51] | 251 | |
---|
[fe2401b2] | 252 | CXX=$rtems_save_CXX |
---|
| 253 | CXXFLAGS=$rtems_save_CXXFLAGS |
---|
[e81ef51] | 254 | |
---|
[fe2401b2] | 255 | dnl restore initial values |
---|
| 256 | unset ac_cv_prog_gxx |
---|
| 257 | unset ac_cv_prog_cc_g |
---|
| 258 | unset ac_cv_prog_cxx_works |
---|
| 259 | unset ac_cv_prog_cxx_cross |
---|
[e81ef51] | 260 | ]) |
---|
| 261 | |
---|
| 262 | dnl $Id$ |
---|
| 263 | dnl |
---|
| 264 | dnl Set target tools |
---|
| 265 | dnl |
---|
[98100d2] | 266 | dnl 98/06/23 Ralf Corsepius (corsepiu@faw.uni-ulm.de) |
---|
| 267 | dnl fixing cache/environment variable handling |
---|
| 268 | dnl adding checks for cygwin/egcs '\\'-bug |
---|
| 269 | dnl adding checks for ranlib/ar -s problem |
---|
| 270 | dnl |
---|
[e81ef51] | 271 | dnl 98/02/12 Ralf Corsepius (corsepiu@faw.uni-ulm.de) |
---|
| 272 | dnl |
---|
| 273 | |
---|
[98100d2] | 274 | AC_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 | |
---|
| 287 | AC_DEFUN(RTEMS_PATH_TOOL, |
---|
| 288 | [ |
---|
| 289 | AC_MSG_CHECKING([target's $2]) |
---|
| 290 | AC_CACHE_VAL(ac_cv_path_$1,:) |
---|
| 291 | AC_MSG_RESULT([$ac_cv_path_$1]) |
---|
| 292 | |
---|
| 293 | if test -n "$ac_cv_path_$1"; then |
---|
| 294 | dnl retrieve the value from the cache |
---|
| 295 | $1=$ac_cv_path_$1 |
---|
| 296 | else |
---|
| 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) |
---|
| 325 | fi |
---|
| 326 | ]) |
---|
| 327 | |
---|
[e81ef51] | 328 | AC_DEFUN(RTEMS_CANONICALIZE_TOOLS, |
---|
| 329 | [AC_REQUIRE([RTEMS_PROG_CC])dnl |
---|
[98100d2] | 330 | |
---|
| 331 | dnl 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 | |
---|
| 337 | dnl 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 | |
---|
| 353 | dnl 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 | |
---|
| 358 | AC_DEFUN(RTEMS_AR_FOR_TARGET_S, |
---|
| 359 | [ |
---|
| 360 | AC_CACHE_CHECK(whether $AR_FOR_TARGET -s works, |
---|
| 361 | rtems_cv_AR_FOR_TARGET_S, |
---|
| 362 | [ |
---|
| 363 | cat > conftest.$ac_ext <<EOF |
---|
| 364 | int foo( int b ) |
---|
| 365 | { return b; } |
---|
| 366 | EOF |
---|
| 367 | if 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 ; \ |
---|
| 370 | then |
---|
| 371 | rtems_cv_AR_FOR_TARGET_S="yes" |
---|
| 372 | else |
---|
| 373 | rtems_cv_AR_FOR_TARGET_S="no" |
---|
[e81ef51] | 374 | fi |
---|
[98100d2] | 375 | rm -f conftest* |
---|
| 376 | ]) |
---|
| 377 | ]) |
---|
[e81ef51] | 378 | |
---|
| 379 | |
---|
[98100d2] | 380 | dnl Detect the Cygwin32 environment (unix under Win32) |
---|
| 381 | dnl |
---|
| 382 | dnl 98/06/16 David Fiddes (D.J.Fiddes@hw.ac.uk) |
---|
| 383 | dnl 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 | |
---|
| 389 | dnl RTEMS_CYGWIN32() |
---|
| 390 | AC_DEFUN(RTEMS_CYGWIN32, |
---|
| 391 | [AC_CACHE_CHECK(for Cygwin32 environment, rtems_cv_cygwin32, |
---|
| 392 | [AC_TRY_COMPILE(,[return __CYGWIN32__;], |
---|
| 393 | rtems_cv_cygwin32=yes, rtems_cv_cygwin32=no) |
---|
| 394 | rm -f conftest*]) |
---|
| 395 | CYGWIN32= |
---|
| 396 | test "$rtems_cv_cygwin32" = yes && CYGWIN32=yes]) |
---|
| 397 | |
---|
| 398 | |
---|
| 399 | dnl Set the EXE extension |
---|
| 400 | dnl |
---|
| 401 | dnl 98/06/16 David Fiddes (D.J.Fiddes@hw.ac.uk) |
---|
| 402 | dnl 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 | |
---|
| 408 | dnl RTEMS_EXEEXT() |
---|
| 409 | dnl This knows we add .exe if we're building in the Cygwin32 |
---|
| 410 | dnl environment. But if we're not, then it compiles a test program |
---|
| 411 | dnl to see if there is a suffix for executables. |
---|
| 412 | AC_DEFUN(RTEMS_EXEEXT, |
---|
| 413 | [AC_REQUIRE([RTEMS_CYGWIN32]) |
---|
| 414 | AC_MSG_CHECKING([for executable suffix]) |
---|
| 415 | AC_CACHE_VAL(rtems_cv_exeext, |
---|
| 416 | [if test "$CYGWIN32" = yes; then |
---|
| 417 | rtems_cv_exeext=.exe |
---|
| 418 | else |
---|
| 419 | cat > rtems_c_test.c << 'EOF' |
---|
| 420 | int main() { |
---|
| 421 | /* Nothing needed here */ |
---|
| 422 | } |
---|
| 423 | EOF |
---|
| 424 | ${CC-cc} -o rtems_c_test $CFLAGS $CPPFLAGS $LDFLAGS rtems_c_test.c $LIBS 1>&5 |
---|
| 425 | rtems_cv_exeext=`echo rtems_c_test.* | grep -v rtems_c_test.c | sed -e s/rtems_c_test//` |
---|
| 426 | rm -f rtems_c_test*]) |
---|
| 427 | test x"${rtems_cv_exeext}" = x && rtems_cv_exeext=no |
---|
| 428 | fi |
---|
| 429 | EXEEXT="" |
---|
| 430 | test x"${rtems_cv_exeext}" != xno && EXEEXT=${rtems_cv_exeext} |
---|
| 431 | AC_MSG_RESULT(${rtems_cv_exeext}) |
---|
| 432 | AC_SUBST(EXEEXT)]) |
---|
[e81ef51] | 433 | |
---|
| 434 | |
---|
[613ab62] | 435 | dnl |
---|
| 436 | dnl $Id$ |
---|
| 437 | dnl |
---|
| 438 | dnl Check for System V IPC calls used by Unix simulators |
---|
| 439 | dnl |
---|
| 440 | dnl 98/07/17 Dario Alcocer alcocer@netcom.com |
---|
| 441 | dnl Ralf Corsepius corsepiu@faw.uni-ulm.de |
---|
| 442 | dnl |
---|
| 443 | dnl Note: $host_os should probably *not* ever be used here to |
---|
| 444 | dnl determine if host supports System V IPC calls, since some |
---|
| 445 | dnl (e.g. FreeBSD 2.x) are configured by default to include only |
---|
| 446 | dnl a subset of the System V IPC calls. Therefore, to make sure |
---|
| 447 | dnl all of the required calls are found, test for each call explicitly. |
---|
| 448 | dnl |
---|
| 449 | dnl All of the calls use IPC_PRIVATE, so tests will not unintentionally |
---|
| 450 | dnl modify any existing key sets. See the man pages for semget, shmget, |
---|
| 451 | dnl msgget, semctl, shmctl and msgctl for details. |
---|
| 452 | |
---|
| 453 | AC_DEFUN(RTEMS_SYSV_SEM, |
---|
| 454 | [AC_REQUIRE([RTEMS_PROG_CC]) |
---|
| 455 | AC_REQUIRE([AC_CANONICAL_HOST]) |
---|
| 456 | AC_CACHE_CHECK(whether $RTEMS_HOST supports System V semaphores, |
---|
| 457 | rtems_cv_sysv_sem, |
---|
| 458 | [ |
---|
| 459 | AC_TRY_RUN([ |
---|
| 460 | #include <sys/types.h> |
---|
| 461 | #include <sys/ipc.h> |
---|
| 462 | #include <sys/sem.h> |
---|
| 463 | int 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 | ], |
---|
| 482 | rtems_cv_sysv_sem="yes", rtems_cv_sysv_sem="no", :) |
---|
| 483 | ]) |
---|
| 484 | ]) |
---|
| 485 | |
---|
| 486 | AC_DEFUN(RTEMS_SYSV_SHM, |
---|
| 487 | [AC_REQUIRE([RTEMS_PROG_CC]) |
---|
| 488 | AC_REQUIRE([AC_CANONICAL_HOST]) |
---|
| 489 | AC_CACHE_CHECK(whether $RTEMS_HOST supports System V shared memory, |
---|
| 490 | rtems_cv_sysv_shm, |
---|
| 491 | [ |
---|
| 492 | AC_TRY_RUN([ |
---|
| 493 | #include <sys/types.h> |
---|
| 494 | #include <sys/ipc.h> |
---|
| 495 | #include <sys/shm.h> |
---|
| 496 | int 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 | ], |
---|
| 505 | rtems_cv_sysv_shm="yes", rtems_cv_sysv_shm="no", :) |
---|
| 506 | ]) |
---|
| 507 | ]) |
---|
| 508 | |
---|
| 509 | AC_DEFUN(RTEMS_SYSV_MSG, |
---|
| 510 | [AC_REQUIRE([RTEMS_PROG_CC]) |
---|
| 511 | AC_REQUIRE([AC_CANONICAL_HOST]) |
---|
| 512 | AC_CACHE_CHECK(whether $RTEMS_HOST supports System V messages, |
---|
| 513 | rtems_cv_sysv_msg, |
---|
| 514 | [ |
---|
| 515 | AC_TRY_RUN([ |
---|
| 516 | #include <sys/types.h> |
---|
| 517 | #include <sys/ipc.h> |
---|
| 518 | #include <sys/msg.h> |
---|
| 519 | int 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 | ], |
---|
| 528 | rtems_cv_sysv_msg="yes", rtems_cv_sysv_msg="no", :) |
---|
| 529 | ]) |
---|
| 530 | ]) |
---|
| 531 | |
---|
[e81ef51] | 532 | dnl $Id$ |
---|
| 533 | |
---|
| 534 | dnl RTEMS_CHECK_MAKEFILE(path) |
---|
| 535 | dnl Search for Makefile.in's within the directory starting |
---|
| 536 | dnl at path and append an entry for Makefile to global variable |
---|
| 537 | dnl "makefiles" (from configure.in) for each Makefile.in found |
---|
| 538 | dnl |
---|
| 539 | AC_DEFUN(RTEMS_CHECK_MAKEFILE, |
---|
| 540 | [RTEMS_CHECK_FILES_IN($1,Makefile,makefiles) |
---|
| 541 | ]) |
---|
| 542 | |
---|
| 543 | dnl $Id$ |
---|
| 544 | |
---|
[37717818] | 545 | dnl RTEMS_CHECK_FILES_IN(path,file,var) |
---|
| 546 | dnl path .. path relative to srcdir, where to start searching for files |
---|
| 547 | dnl file .. name of the files to search for |
---|
[e81ef51] | 548 | dnl var .. shell variable to append files found |
---|
[37717818] | 549 | AC_DEFUN(RTEMS_CHECK_FILES_IN, |
---|
| 550 | [ |
---|
[2f03a608] | 551 | AC_MSG_CHECKING(for $2.in in $1) |
---|
[37717818] | 552 | if 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) |
---|
| 559 | else |
---|
| 560 | AC_MSG_RESULT(no) |
---|
| 561 | fi |
---|
[1670eede] | 562 | ]) |
---|
| 563 | |
---|
| 564 | |
---|