[Dune] Tests für Grape/Albert

Thimo Neubauer thimo at debian.org
Mon Aug 4 16:33:25 CEST 2003


Hallo,

heute habe ich die Tests für Grape/Albert in dune eingecheckt, die
dann vom configure in duneapps verwendet werden. Vermutlich müssen
alle nochmal ./autogen.sh mit --with-dune laufen lassen, dann sollte
alles klappen[1].

Neue Parameter für autogen.sh (bzw. configure) sind jetzt:

 --with-problem-dim=2|3  which dimension of the problem
 --with-world-dim=2|3    which dimension of the world coordinates
 --with-grape=PATH       directory with Grape inside
 --with-albert=PATH      directory with Albert inside

Die Dimensionen sind per default auf 2 gesetzt und sollen gleichzeitig
für Albert und UG genutzt werden (oder könnte es sinnvoll sein, das zu
trennen?).

Für die Unterpakete von Dune habe ich mir folgendes Schema ausgedacht
(hier am Beispiel von Albert): der Test DUNE_PATH_ALBERT setzt die
folgenden Parameter:

  ALBERT_CPPFLAGS     enthält die Defines und die -I-Pfade [2]
  ALBERT_LDFLAGS      enthält die -L-Parameter
  ALBERT_LIBS         enthält die -l-Parameter

Zudem wird noch ein "conditional" ALBERT erzeugt, mit dem man dann
z.B. folgendes in einem Makefile.am machen kann:

if ALBERT
  LDADD = $(ALBERT_LDFLAGS) $(ALBERT_LIBS)
  AM_CPPFLAGS = $(ALBERT_CPPFLAGS)
endif

Als letztes wird noch ein HAVE_ALBERT in config.h definiert. Bei Grape
und den noch folgenden Paketen sind die Variablen dann analog
definiert. Bis jetzt wird (völlig konsequent) auch DUNE_CPPFLAGS
definiert und _nicht_ implizit gesetzt, das werde ich vielleicht noch
ändern...

Häufig möchte man einfach alle Parameter von allen Unterpaketen
zusammen haben, die werden in ALL_PKG_LDFLAGS, ALL_PKG_LIBS und
ALL_PKG_CPPFLAGS abgelegt, damit man auch halbwegs generische
Makefiles schreiben kann.

Das tester/Makefile.am habe ich zu einem kleinen Beispiel
umgeschrieben, works for me(tm)... wenn es Probleme gibt, bitte Mail
an mich oder an die Liste.


Beim Nachdenken über die verschiedenen Make-Variablen ist mir dann
auch wieder ein make-Feature eingefallen, dass eigentlich sehr
praktisch ist. Wenn man eine Optimierung ausprobieren möchte, muss man
nicht gleich das Makefile.am editieren und den ganzen Generierungskram
laufen lassen, ein

  make "CXXFLAGS=-O200 --super-optimize"

ersetzt die vorherigen flags durch die angegebenen, auch über mehrere
Instanzen von make. Durch die Trennung von CXXFLAGS und CPPFLAGS
bleiben die includes und defines erhalten.


So, das sollte es im Groben gewesen sein

  Gruss
      Thimo


[1] autogen verwendet auch den --with-dune-Parameter um aclocal zu
    sagen, wo die m4-Makros zu finden sind.

[2] CFLAGS bleibt so für die wirklichen Compileroptionen reserviert
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20030804/e59da748/attachment.sig>


More information about the Dune mailing list