home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC6.DMS / in.adf / tools.lha / Tools / Logfile.DOK < prev    next >
Encoding:
Text File  |  1994-12-31  |  2.8 KB  |  78 lines

  1. ACHTUNG: Diese Programme erfordern Kickstart V37 oder jünger.
  2.  
  3. Autor: Jochen Becher
  4. Copyright: © 1994 MAXON Computer GmbH
  5. Version: 1.0 am 15.6.94
  6.  
  7.  
  8. Eine besondere Stärke des MaxonC++ Compilers ist das "logfile". Dieses File,
  9. das üblicherweise im Verzeichnis "MCPP:lib" sein Dasein fristet, enthält
  10. Einträge über Objektdateien, die in dem gleichen Verzeichnis stehen. Zu
  11. jeder Objektdatei sind Symbole genannt, die diese Objektdatei definiert.
  12.  
  13. Der Vorteil ist ganz klar: Der Linker kann die Logdatei schneller durchsuchen
  14. als eine Bibliothek (z.B. amiga.lib) und damit schneller linken. Außerdem
  15. lassen sich die Objektdateien einfach durch neuere Versionen ersetzen, als
  16. einzelne Objekte einer Bibliothek. Die Frage ist nur, wie bekommt man die
  17. Symbole in die Logdatei? Insbesondere die C++ Symbole sind ja nicht gerade
  18. trivial aufgebaut und erfordern ziemlich viel Arbeit.
  19.  
  20. Hierbei helfen zwei kleine Programme:
  21.  
  22. ****************************************************************
  23.  
  24. delObject <logfile> <objectname>
  25.  
  26. löscht einen Objekteintrag aus der Logdatei, z.B. entfernt
  27.  
  28. delObject MCPP:lib startup.o
  29.  
  30. den (zumindest beim Autor) ersten Eintrag der Logdatei. Aus verständlichen
  31. Gründen sollten Sie dieses Beispiel jetzt nicht ausführen - Sie müssten
  32. sich sonst die Originaldatei wieder installieren. Die Objektdatei selbst 
  33. (im obigen Beispiel als MCPP:lib/startup.o) wird nicht (!) gelöscht.
  34.  
  35. ****************************************************************
  36.  
  37. printSymbols <objektdatei>
  38.  
  39. gibt den Namen der Objektedatei und alle Symbole dieser Objektdatei
  40. auf der Standardausgabe aus, z.B. sollte das Ergebnis von
  41.  
  42. printSymbols MCPP:lib/startup.o
  43.  
  44. ungefähr so aussehen:
  45.  
  46. startup.o
  47.  _EXIT_0__Reply_StartuP_MessAge
  48.  _INIT_0_Get_StartuP_MessAge
  49.  __StartUp
  50.  StartupMessage
  51.  
  52. Wenn man nun die Ausgabe umleitet, kann man diese Symbole direkt an die
  53. Logdatei anhängen:
  54.  
  55. printSymbols MCPP:lib/startup.o >>MCPP:lib/logfile
  56.  
  57. Auch dieses Beispiel sollten Sie besser nicht durchführen, ihre Logdatei
  58. enthielte sonst den Eintrag startup.o mit allen Symbolen doppelt.
  59.  
  60. ****************************************************************
  61.  
  62. Neben diesen beiden Programmen gibt es noch zwei Skripte "log" und "unlog".
  63.  
  64. Das Skript "log" kopiert eine Objektdatei in das Verzeichnis MCPP:lib, löscht
  65. den Eintrag aus dem logfile und hängt die neuen Einträge wieder an. Von
  66. der Logdatei wird vorher noch eine Kopie auf MCPP:lib/logfile.bak gemacht.
  67.  
  68. Mit "log ALL" können sie diesen Vorgang auf ein ganzes Verzeichnis anwenden,
  69. dann wird "log" für alle Objektdateien im aktuellen Verzeichnis ausgeführt.
  70.  
  71. Das Skript "unlog" löscht eine Objektdatei aus dem logfile, aber nicht die
  72. Objektdatei im Verzeichnis MCPP:lib selbst. Auch hier wird vorher eine
  73. Kopie der Logdatei angelegt, allerdings auf MCPP:lib/logfile.bik.
  74.  
  75. Auch hier wird der Vorgang mit "unlog ALL" auf alle Objektdateien des
  76. aktuellen Verzeichnisses durchgeführt.
  77.  
  78.