[Dune] Re: [Dune-CVS] CVS (robertk)

Thimo Neubauer thimo at debian.org
Wed Dec 10 17:15:46 CET 2003


Hallo,

On Wed, Dec 10, 2003 at 04:40:53PM +0100, Robert Klöfkorn wrote:
> Modified Files:
> 	Makefile.am dunedisp.cc 
> Log Message:
> New CXXFLAGS in Makefile.am and include sgrid.hh ind dunedisp.cc

Ein Kommentar zu CXXFLAGS (den ich auch mal in die Doku schreiben
werde, bis jetzt aber noch nicht dazu gekommen bin):

Die Makefile.am sollten so weit wie nur möglich compilerunabhängig
sein, sonst handeln wir uns auf die Dauer nur Probleme ein. Zumindest
der gcc und der icc scheinen relativ gleiche Buchstaben zu verwenden,
aber das müssen ja auf die Dauer nicht die einzigen bleiben. Also
würde ich erstmal grösstmögliche Zurückhaltung vorschlagen. Optionen
wie "-march=pentium4" sollten _nie_ fest eingebaut werden! Das gibt
nur Ärger, wenn mal jemand den Kram mal auf einem anderen Rechner
übersetzt!

Der zweite Punkt ist, dass Optionen, die man zum Entwickeln verwendet,
nicht im Makefile stehen müssen, darunter fällt meiner Meinung nach
das "-w", das alle Warnungen abschaltet. Wenn haufenweise Zeilen beim
Bauen vorbeihuschen merkt später kein Mensch mehr, dass in bestimmten
Verzeichnissen die Warnungen deaktiviert sind... Ich habe da mit der
UG-Eigenschaft, bei Fehlern während des make-Laufs nicht abzubrechen
schon sehr hässliche Erfahrungen gemacht...

Daher eine Zusammenfassung, wie sich jeder die Lieblingsoptionen
setzen kann, ohne sie in die Makefile.am einbauen zu müssen:

1. eigene .opts-Datei schreiben: einfach gcc.opts oder icc.opts als
   Vorlage nehmen und ./autogen.sh per --opts=FILE verfüttern (siehe
   auch --help). Damit setzt man die Flags dauerhaft.

2. make die Optionen auf der Kommandozeile verpassen: 

     make CXXFLAGS="-O5 -march=pentium2000"

   Diese Möglichkeit ist auch der Grund, weshalb man im Makefile.am
   die Optionen, die man dem C++-Compiler immer verpassen möchte (wie
   z.B. -DBLA) besser in AM_CXXFLAGS schreiben sollte, die endgültige
   Kommandozeile wird aus beiden Variablen zusammengesetzt. Neuere
   automake-Versionen warnen daher auch, dass CXXFLAGS eine "user
   variable" sei. Diese Möglichkeit ist sehr praktisch, um mal auf die
   schnelle neue Optionen zu verwenden.

3. wenn man die Optionen wirklich im Makefile.am setzen will, bitte
   eine Version dieser Datei ohne die Spezialoptionen
   einchecken. Sonst handeln wir uns zu guter letzt noch
   CVS-collisions ein...


Gruss
    Thimo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20031210/94f7a298/attachment.sig>


More information about the Dune mailing list