linux-l: configure und libtool

Winfried Winkler willi at Hobbit.IN-Berlin.De
Do Okt 28 23:14:14 CEST 1999


Hallo, Jens !

JSC wrote:
> bin langsam am verzweifeln. warum bedeutet free software
> haeufig: "ich kann aller welt zeigen, wie toll ich schwer
> lesbare shell-scripte bauen kann." ?
...und mich damit perfekt selber abschiessen kann ?
JA - kenne ich :-(

> diesmal nicht redhat's initlog, sondern libtool sonstwas.

Ja, das Ding hat mich mit identischen Macken mehrfach beim
selber compilieren einiger libs erwischt -- jedesmal derselbe
Error wie bei Dir, nur ein anderes directory in der Meldung...

> hat irgendjemand irgendeinen tip ?
Mit dem 4. Programmteil des "ltconfig" Skriptes bauen die
irgendwo voellig Mist, war mir auch viel zu komplex...
(1.Welche Shell, 2. Welcher PATH Separator, 3.Welche Laenge
kann Shell als String max., 4. Was kann "echo")
Diesen 4. Teil "Was kann mein "echo" builtin/program habe ich
einfach komplett geloescht und durch den funktionierenden,
simpleren einer kleineren Versionsnummer ersetzt :-)

Diese Masche, libtool lieber mit 1000 Shellskripten zu Fuß
nachzubilden anstatt es einfach zu benutzen, es IST ja hier
bei mir installiert -- und dann noch auf so hochkomplizierte
Art Mist zu bauen dabei, dass man den Fehler nicht wirklich
findet, fand ich auch ziemlich.... KRANK

Im Anhang zur Sicherheit die funktionierende "alte"
Version des betreffenden Skript-TEILes, die ich ersetzt habe.
Falls es das nicht war, neue email...

##############################################################################
# BEGIN: ORIGINAL NON-WORKING CODE REMOVED, REVERTED BACK TO OLDER
VERSION !!!

if test "X`($echo '\t') 2>/dev/null`" != 'X\t'; then
  # The Solaris, AIX, and Digital Unix default echo programs unquote
  # backslashes.  This makes it impossible to quote backslashes using
  #   echo "$something" | sed 's/\\/\\\\/g'
  #
  # So, first we look for a working echo in the user's PATH.
  IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
  for dir in $PATH /usr/ucb; do
    if test -f $dir/echo && test "X`($dir/echo '\t') 2>/dev/null`" =
'X\t'; then      echo="$dir/echo"
      break
    fi
  done
  IFS="$save_ifs"

  if test "X$echo" = Xecho; then
    # We didn't find a better echo, so look for alternatives.
    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t'; then
      # This shell has a builtin print -r that does the trick.
      echo='print -r'
    elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then
      # If we have ksh, try running ltconfig again with it.
      CONFIG_SHELL=/bin/ksh
      export CONFIG_SHELL
      exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
    else
      # Try using printf.
      echo='printf %s\n'
      if test "X`($echo '\t') 2>/dev/null`" != 'X\t'; then
        # Oops.  We lost completely, so just stick with echo.
        echo=echo
      fi
    fi
  fi
fi

# END: ORIGINAL NON-WORKING CODE REMOVED, REVERTED BACK TO OLDER VERSION
!!!
##############################################################################

Diesen Teil etwa ab Zeile 80 in dem "ltconfig" Skript statt dessen
nehmen
Achtung -- der neue zu ersetzende Teil ist wesentlich laenger, aber gut
zu identifizieren :-)

Viel Erfolg !

Winfried



Mehr Informationen über die Mailingliste linux-l