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

Re: ein neues buildsystem --> autotools endlich abloesen



* Daniel Leidert <daniel.leidert.spam@gmx.net> schrieb:

<snip>

> > Tja, es gibt aber durchaus Build-Systeme abseits der autotools. KDE wird
> > wohl fuers naechste Major auf CMake umsteigen (scons/bksys hat nicht
> > genug Unterstuetzung).
> > 
> > Ansonsten sollte man vllt. mal ueberlegen: Wenn schon XML-Beschreibungen
> > wieso nicht ant nutzen? Oder maven?...
> 
> Igitt (IMHO). Hast du schon einmal die build.xml eines größeren
> Projektes gesehen? Weißt du, wie viele Verrenkungen man für eine
> einfache 'for i in ...'-Schleife machen muss, damit ant das hinkriegt?

for-Schleife ? Wozu das ?

<snip>

> Die autotools sind kryptisch, aber ant-build-Dateien sind einfach nur
> schlecht, unübersichtlich und aufgrund XML mit einem sehr großen
> Schreibaufwand verbunden (und da waren noch mehr Gründe, warum ich sie
> nicht mag ;))

Man kann ja auch für bestimmte kleinere Aufgaben eine schmalere
Notation wählen, aus der dann der Baum abgeleitet wird. So dürfte
zB. für eine einfach C-Library in eine "flache" Text-DB ausreichen:

    library:		foo
    version:		1.0
    source:		a.c b.c c.d
    public-header:	foo.h
    private-header:	internal.h
    import:		zlib pcre

Damit hatte ich auch erst angefangen, aber für eine generelle 
Modellierung wäre das viel zu kurz gegriffen (man denke da nur
an conditionals/features, etc) - als komprimierte Notation für 
bestimmte Fall-Klassen sicherlich sinnvoll.

<snip>

> Einfaches Beispiel aus dem Anhang des OP
> 
> [..]
> <source name="Attrib.c" />
> <source name="CrBufFrI.c" />
> <source name="CrBufFrP.c" />
> <source name="CrDatFrI.c" />
> <source name="CrDatFrP.c" />
> <source name="CrIFrBuf.c" />
> [..]
> 
> Jedes Element wird einzeln beschrieben. Gegenüber

Das ist auch nicht ganz ohne Absicht so. Es können noch durchaus
Situationen kommen, wo die source-nodes weitere Parameter brauchen.
(zB. Sprache, Compiler-Hints, Precompiler, etc)

> 
> SOURCES = Attrib.c ....

Siehe oben.

<snip> 

> wirkt das viel zu umständlich. Einfacher wäre evtl. ein Element
> <sources> dass so aussehen kann:
> 
> <sources separator=",">Attrib.c, CrBufFrI.c, ...</sources>
> <sources separator=" ">Attrib.c CrBufFrI.c ...</sources>

Okay, sowas könnte man durchaus in den Parser setzen, damit dieser
dann automatisch aus der Liste die einzelnen source-nodes erstellt.

> Aber da XML eben jedes Element beschreibt, kommt viel mehr
> Schreibaufwand als in der Makro-Sprache, die für die autotools 
> benutzt wird, heraus (IMHO). 

Also an dem bissl. Schreibaufwand sollte eine saubere Modellierung
nicht scheitern - im Vergleich zum Programmcode ist das doch 
ohnehin schon verschwindend ...


cu
-- 
---------------------------------------------------------------------
 Enrico Weigelt    ==   metux IT service

  phone:     +49 36207 519931         www:       http://www.metux.de/
  fax:       +49 36207 519932         email:     contact@metux.de
  cellphone: +49 174 7066481
---------------------------------------------------------------------
 -- DSL ab 0 Euro. -- statische IP -- UUCP -- Hosting -- Webshops --
---------------------------------------------------------------------



Reply to: