| dnl acinclude.m4. Change *this* file to add new or change macros. |
| dnl When changes have been made, delete aclocal.m4 and run |
| dnl "aclocal". |
| dnl |
| dnl DO NOT change aclocal.m4 ! |
| dnl |
| |
| dnl * LA_SEARCH_FILE(variable, filename, PATH) |
| dnl * Search "filename" in the specified "PATH", "variable" will |
| dnl * contain the full pathname or the empty string |
| dnl * PATH is space-separated list of directories. |
| dnl * by Florian Bomers |
| |
| AC_DEFUN([LA_SEARCH_FILE],[ |
| $1= |
| dnl hack: eliminate line feeds in $2 |
| for FILE in $2; do |
| for DIR in $3; do |
| dnl use PATH in order |
| if test ".$1"="." && test -f "$DIR/$FILE"; then |
| $1=$DIR |
| fi |
| done |
| done |
| ]) |
| |
| dnl * LA_SEARCH_LIB(lib-variable, include-variable, lib-filename, header-filename, prefix) |
| dnl * looks for "lib-filename" and "header-filename" in the area of "prefix". |
| dnl * if found, "lib-variable" and "include-variable" are set to the |
| dnl * respective paths. |
| dnl * prefix is a single path |
| dnl * libs are searched in prefix, prefix/lib, prefix/.., prefix/../lib |
| dnl * headers are searched in prefix, prefix/include, prefix/.., prefix/../include |
| dnl * |
| dnl * If one of them is not found, both "lib-variable", "include-variable" are |
| dnl * set to the empty string. |
| dnl * |
| dnl * TODO: assert function call to verify lib |
| dnl * |
| dnl * by Florian Bomers |
| |
| AC_DEFUN([LA_SEARCH_LIB],[ |
| dnl look for lib |
| LA_SEARCH_FILE($1, $3, $5 $5/lib $5/.. $5/../lib) |
| dnl look for header. |
| LA_SEARCH_FILE($2, $4, $5 $5/include $5/.. $5/../include) |
| if test ".$1" = "." || test ".$2" = "."; then |
| $1= |
| $2= |
| fi |
| ]) |
| |
| |
| |
| |
| # alex_IEEE854_FLOAT80 |
| # ------------ |
| AC_DEFUN([alex_IEEE854_FLOAT80], |
| [AC_CACHE_CHECK(for IEEE854 compliant 80 bit floats, alex_cv_ieee854_float80, |
| [AC_TRY_RUN([ |
| int float2long_IEEE_compliance ( void ) |
| { |
| struct { |
| long padding; /* to prevent unaligned access */ |
| float f; |
| } s; |
| s.f = 12582912.; if ( *(long*)(&s.f) != 1262485504l ) return 0; |
| s.f = 12615679.; if ( *(long*)(&s.f) != 1262518271l ) return 0; |
| s.f = 13582912.; if ( *(long*)(&s.f) != 1263485504l ) return 0; |
| s.f = 12550145.; if ( *(long*)(&s.f) != 1262452737l ) return 0; |
| s.f = 11582912.; if ( *(long*)(&s.f) != 1261485504l ) return 0; |
| return 1; |
| } |
| |
| int main(void) |
| { |
| int retval; |
| |
| retval = float2long_IEEE_compliance(); |
| |
| /* no error return -> success */ |
| return !retval; |
| } |
| ], alex_cv_ieee854_float80=yes, alex_cv_ieee854_float80=no, |
| [AC_MSG_WARN(can't check for IEEE854 compliant 80 bit floats)] |
| )])]) # alex_IEEE854_FLOAT80 |
| |
| |