configure! (was: Re: [linux-l] Datum in Script verwenden)

Steffen Dettmer steffen at dett.de
So Apr 22 17:13:47 CEST 2007


* Volker Grabsch wrote on Thu, Apr 12, 2007 at 01:15 +0200:
> On Thu, Apr 12, 2007 at 12:06:37AM +0200, Steffen Dettmer wrote:
> > * Volker Grabsch wrote on Mon, Apr 09, 2007 at 14:11 +0200:
> > > Ein "configure"-Script, wie es autoconf produziert, ist natürlich von
> > > der Qualität und Portabilität viel höher, sodass es sich sein #!/bin/sh
> > > redlich verdient hat. ;-)
> > 
> > Ja, ist es das? Meine configure's bestimmt nicht so... Ich bin mir
> > sicher, ohne ausgedehnte Testcompilefarm kriegt man das nicht hin. Da
> > schreibt man "test x$var = x ; " und so, weils mit Glück richtig und
> > portabel ist, aber irgendwo vebrhaut man sich dann aber doch
> > garantiert... 
> 
> Wieso schreibst du sowas in deine configure.ac?

Dafür ist's doch da?!

> Ich bin bisher immer ohne ausgekommen. 

Ohne Tests? Brauchst Du dann autoconf überhaupt?

> Und das, was autoconf produziert, ist ja ziemlich sauber und auf 'zig
> Plattformen getestet.

Versteh ich nicht. Wenn das configure.ac nix weiter testet? Wie sieht
das aus? Wenigstens ein Compilertest oder so?

Meiner (bescheidenen, laienhaften) autoconf Erfahrung nach funktioniert
defaultmässig erstmal gar nix, wenn man gcc-linux verlässt. Da hat man
andere Compiler, mindestens ein Switch und dependency tracking
funktioniert nicht. Auf Windows/Cygwin gibts paar nette LF Problemchens,
Leerzeichen in Dateinamen sind superspassig (C:\Program Files\...),
CL.EXE (Microsoftcompiler) erfordert mindestens viel Handarbeit, vom DLL
Linkspezifika ganz zu schweigen (aber ich kenn das libtool auch nicht,
sollte man hier wohl nehmen). Möchte man mingw, darf man kein /option
sonst muss -option (geht bei Win auch eigentlich immer), aber das weiss
das autoconf/automake auch alles nicht von alleine. Dann heissen die
libs natürlich auch immer schön anders (libmylib.a oder mylib.lib usw),
man muss c++ libs explizit linken (weil man nur .c Files hat, die aber
intern C++ Funktionen indirekt aufrufen) und für eine Platform möchte
(darf) ich die std libc nicht linken - da rechnet das autoconf scheinbar
auch nicht mit :)

Aber mit autoconf haben wir es immerhin bisher immer irgendwie
hingekriegt. Daher ist autoconf/automake toll. 

   Bei anderen Tools (meintwegen Ant oder sowas, ganz zu schweigen von
   IDEs, da ist das meiner Meinung nach heute einfach UNMLÖGLICH,
   irgendwas in der Richtung von portabel zu kriegen, selbst mit Java
   übrigens, aber anderes Thema) scheiterts garantiert viel früher :)

Mit "auf 'zig Plattformen getestet" hast Du mich jetzt verwirrt. Mache
ich etwas grundsätlich falsch? Oder sind meine Plattformen einfach zu
"exotisch"?

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.





Mehr Informationen über die Mailingliste linux-l