Re: Präprozessor-Frage



Hallo Stefan Reuther,

Mai K. Reiss wrote:
naja, grep alleine reicht nicht, weil es

#if defined(PLARTFORM1)
# include <runtime1.h>
#elif defined(PLARTFORM2)
# if __VARIANTE_A__
# include <runtime2a.h>
# else
# include <runtime2b.h>
# endif
#endif

nicht ausreichend auflösen würde.

Das ist definitiv Geschmackssache. Bei mir bekäme die Datei tatsächlich
eine Abhängigkeit auf runtime1.h, runtime2a.h und runtime2b.h; damit
kann nämlich der gleiche Satz Abhängigkeiten für alle Konfigurationen
verwendet werden.

Für den Fall, an den Du jetzt denkst - klares JA.

Für meinen Fall (an anderer Stelle im selben Tread beschrieben) -
NEIN:
Darum geht es sogar elementar. Ich will ein Make-Taget "build_release"
anlegen, welches mir alle am Projekt beteiligten Files (nicht nur die
.c und .cpp) vom RCS oder SVN refresht, compiliert, linkt und - wenn
alles fehlerfrei lief - im RCS oder SVN als "Released" setzt. Und für
unser firmeninternes Software-Ablage-System noch zippt.

Aufgabe unserer Softwareverwaltung ist es, genau den Code zu
archivieren, der zu _diesem_ binary geführt hat. Ist zwar nicht
schlimm, wenn die Versionsverwaltung auch Labels für alternative
Platformen bekommt und man ein File zu viel mit archiviert, aber ein
Kollege könnte über eine Datei verwirrt sein, die er gar nicht zu
kennen braucht.

Wobei es hier schon wichtig ist, zu wissen daß wir nicht von einem
nahezu identischen Produkt für verschiedene Plattformen reden. ALso
kein Tool, was ich für Linux, OS-X und WIn32 Console bedingt
compiliere.
Mein Einsatzgebiet erzeugt eher "Code, der zu 60% in allen Plattformen
identisch ist". Die Produkte daraus unterscheiden sich
plattformbedingt zu 40%. Stell Dir ein sehr hardwarenahes
Datenübertragungsprogramm vor, das auf DOS, NT Console, WinCE, µC und
Linux jeweils mit anderer Benutzeroberfläche und jeweils mit völlig
verschiedener I/O-Hardware arbeitet (die man aus performance-Gründen
nichtmal sauber kapseln kann sondern mal als Macro, mal als Funktion
und mal als "so ähnliche" Funktion) implementiert hat. Was meinst Du,
was für eine Welle es schieben würde, wenn plötzlich Headerfiles
auftauchen, in denen Funktionen einen "char LaufwerksBuchstabe"
erwarten :-(

Aber ist schon sehr speziell, diese Anforderung. Im Normalfall würde
ich auch zu Deinem Ansatz tendieren. Mangels makedep habe ich es
bisher auch genaus so gehalten, nur geht das nicht mehr so weiter,
weil teile der Sourcen schon wieder woanders weiterverwendet werden
sollen.
Irgendwo kommt dann sicher der Punkt, an dem man überlegt, den Source
einfach zu kopieren und bewußt auseinanderlaufen zu lassen, statt sich
mit Code herumzuqälen, der schon im ersten viertel mehr als 10 #ifdef
enthält.

Aber eine Ideallinie gibt es im echten Leben sowieso nie ;-)


Mai K. R.

--
ich hasse Rassisten!
.



Relevant Pages

  • =?iso-8859-1?Q?Re:_Code_sch=FCtzen?=
    ... Selbst wenn ich das PW verschlüsselt in einer Datei speichere und von meinem Programm auslese, könnte jeder Angreifer auf einfachste Weise sehen, wie ich das PW aus der Datei auslese und es rekonstruieren. ... Um den Quellcode gehts mir jedoch im privaten Bereich. ... Auch interessiert es dann keinen Benutzer, ob der Code jetzt vom Originalautor oder von jemand anders kommt. ... Wenn man auf eine Datenbank zugreift, ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • Re: Erkennen von aufgebrochenem SSL
    ... die zu mehr und komplexerem Code ... Herstellern/Lieferanten Menge von Bibliotheken ... Plattformen unterschiedliche Dinge tut. ... Ich plaediere fuer einstweiliges Erschiessen der betreffenden Hersteller! ...
    (de.comp.security.misc)
  • Re: VBA-Code in zentrale "Server-XLA" auslagern
    ... Der Code der XLT (bzw. ... und müssen natürlich dann von der "Erst-Datei" aufgerufen werden. ... mehrere User können recht problemlos dieselbe Datei geladen haben. ... Laden/Entladen einer zusätzlichen Arbeitsmappe entfällt. ...
    (microsoft.public.de.excel)
  • Re: =?ISO-8859-1?Q?[VBA]_Code_=E4ndern_d?= =?ISO-8859-1?Q?urch_Code_(War:_Mak?= =?IS
    ... warum der Verweis zwingend _eingebunden sein ... etwas passiert - ein Kompilierungsfehler, ... Datei aufgerufen werden müssen. ...
    (microsoft.public.de.excel)
  • Re: VBA: Sheet in Workbook suchen
    ... On Error Resume Next ... ansonsten ist meine Code völlig identisch mit Deinem Code.) ... Die Datei buchhaltung.xls sollte vom Makro also ... wenn dieser Ansatz funktionieren würde. ...
    (microsoft.public.de.excel)