[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: autoconf and OS/2

From: Tim Van Holder
Subject: Re: autoconf and OS/2
Date: Fri, 15 Jun 2001 17:35:41 +0200

> 1) *.exe files weren't found in $PATH

A known issue - the problem is that testing for .exe is not
enough; we'd also want to find .bat, .com, etc.

Below is a patch that allows that; you will need to set
ac_executable_extensions somewhere (probably

  ac_executable_extensions=".exe .com .bat .pl .sh"

This is what the DJGPP package for 2.50 uses; and once a
clean, portable way is found to determine the list of executable
extensions, this should become part of autoconf itself.

> (autoconf itself does not run with OS/2, but the configure script does)
Hmm - it probably should...  What particular problems are there?

> There is another thing. The configure scripts don't find any executable
> if there are only backslashes instead of forward slahes in $PATH. If
> possible,
> could you add a check either to convert '\\' into '/' or a at least to
> print a warning, if there are no forward slashes at all in $PATH? Then a
> user
> would know, what's the problem.

This is not really autoconf's job; the shell you use should really handle
this (the DJGPP and Cygwin ports of bash both do).  You should submit a
request to the maintainers of the OS/2 bash port to fix this.
They could probably base a lot of the necessary code on the DJGPP port;
basically, $PATH (and a few other variables) should be slash-flipped by
bash, and flipped back when running an external application (which will
probably required backslashes).
You could try doing

  PATH=`echo "$PATH" | tr '\\' '/'`

in your; that may break if configure needs to run applications
that expect PATH to use backslashes.

Index: acgeneral.m4
RCS file: /cvs/autoconf/acgeneral.m4,v
retrieving revision 1.723
diff -u -u -r1.723 acgeneral.m4
--- acgeneral.m4        2001/05/19 17:33:20     1.723
+++ acgeneral.m4        2001/06/15 15:24:21
@@ -2400,16 +2403,30 @@
 [  ac_prog_rejected=no])dnl
-[AS_EXECUTABLE_P("$ac_dir/$ac_word") || continue
+[if AS_EXECUTABLE_P("$ac_dir/$ac_word"); then
 [if test "$ac_dir/$ac_word" = "$6"; then
-echo "$as_me:__oline__: found $ac_dir/$ac_word" >&AS_MESSAGE_LOG_FD
+  ac_cv_prog_$1="$3"
+  echo "$as_me:__oline__: found $ac_dir/$ac_word" >&AS_MESSAGE_LOG_FD
+  break
+elif test -n "$ac_executable_extensions"; then
+  for ac_exec_ext in $ac_executable_extensions; do
+    if AS_EXECUTABLE_P("$ac_dir/$ac_word$ac_exec_ext"); then
+[     if test "$ac_dir/$ac_word" = "$6"; then
+        ac_prog_rejected=yes
+        continue
+      fi])dnl
+      ac_cv_prog_$1="$3"
+      echo "$as_me:__oline__: found $ac_dir/$ac_word$ac_exec_ext"
+      break 2
+    fi
+  done
 [if test $ac_prog_rejected = yes; then
   # We found a bogon in the path, so make sure we never use it.
   set dummy $ac_cv_prog_$1
@@ -4381,9 +4448,14 @@

   # Make a symlink if possible; otherwise try a hard link.
-  ln -s $ac_rel_source $ac_dest 2>/dev/null ||
+  if test "$as_ln_s" = "ln -s"; then
+    ln -s $ac_rel_source $ac_dest 2>/dev/null ||
+      ln $srcdir/$ac_source $ac_dest ||
+        AC_MSG_ERROR([cannot link $ac_dest to $srcdir/$ac_source])
+  else
     ln $srcdir/$ac_source $ac_dest ||
-    AC_MSG_ERROR([cannot link $ac_dest to $srcdir/$ac_source])
+      AC_MSG_ERROR([cannot link $ac_dest to $srcdir/$ac_source])
+  fi
 [  # Run the commands associated with the file.
   case $ac_file in

reply via email to

[Prev in Thread] Current Thread [Next in Thread]