home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / programming / c / pmm / pmmanager.lha / PMM / Doku / DemoConfig / Pmm.Cfg < prev    next >
Encoding:
Text File  |  1999-03-08  |  5.7 KB  |  172 lines

  1. ; Allgemeines Compiler-Script
  2. ; ---------------------------
  3. ; Defines, Setting usw. für CPU-Typen: 1-6 = 68k, 7 & 8 PPC / WOS
  4. ; $C = CPU/FPU für Compiler ($D=defines)
  5. ; Nicht gesetzte Werte werden ignoriert.
  6. ; Hier als Beispiel: 6x  m68k-Config / 68000 Standardvorgabe
  7. ;                    2x  PPC, einmal PowerUP und einmal WarpOS
  8. ; Anmerkung: Pmm und alle Pmm-Tools werden ORIGINAL mit diesem Script auf
  9. ;            vbcc 0.7 übersetzt. Ebenso Gateway-5, die gateway.library
  10. ;            und auch meine interne Link-Lib.
  11. ; <-- (; = Kommentar)
  12. # <-- Für Make-Fan's      (# = Kommentar)
  13. ;
  14. ; ACHTUNG! Von vbcc 0.6 nach 0.7 wird der Linker gewechselt! Statt PhxLnk
  15. ;          wird ab dieser Version nur noch vlink benutzt! Die 'alten'
  16. ;          Zeilen sind als Kommentar erhalten!
  17. ;
  18.  
  19.  
  20. ; Leerzeilen sind zulässig!
  21. ; -------------------------
  22.  
  23. $C=-cpu=68000
  24. $D=-DCPU="68000" -DFPU="N/A"
  25. ;
  26. 2%$C=-cpu=68010
  27. 2%$D=-DCPU="68010" -DFPU="N/A"
  28. ;
  29. 3%$C=-cpu=68020 -fpu=68881
  30. 3%$D=-DCPU="68020" -DFPU="68881"
  31. ;
  32. 4%$C=-cpu=68030 -fpu=68882
  33. 4%$D=-DCPU="68030" -DFPU="68882"
  34. ;
  35. 5%$C=-cpu=68040 -fpu=68040
  36. 5%$D=-DCPU="68040" -DFPU="68040"
  37. ;
  38. 6%$C=-cpu=68060 -fpu=68060
  39. 6%$D=-DCPU="68060" -DFPU="68060"
  40. ;
  41. 7%$C=-cpu=ppc
  42. 7%$D=-DCPU="PPC" -DFPU="PowerUP"
  43. ;
  44. 8%$C=-cpu=wos
  45. 8%$D=-DCPU="PPC" -DFPU="WarpOS"
  46.  
  47. $o=T:LinkerObjListe
  48. ;
  49. ; Zu 1%, 2% usw. siehe DOKU!
  50. ;
  51.  
  52. ;
  53. ; Vorgabewerte, wenn für das Feld nichts gesetzt ist:
  54. ; ------------- VORSICHT! Optimizer auf 3 ist gefährlich (BETA) !!!
  55. ;               Nach meiner Erfahrung läuft der Optimizer ab V0.6e
  56. ; Bei der Meldung: ">>> VAR <name> is used bevor defined"
  57. ; sofort auf -O=1 gehen. Sonst ist ein Absturz im Programm
  58. ; garantiert! Unter mindestens 16 MB freiem Speicher ist das auch
  59. ; nicht zu empfehlen!                            Anm. der Autorin
  60. ; $1, $2 ... $0 sind einfach Variablen, der Witz ist, das sie hier definiert
  61. ;         werden, aber für jedes Projekt und jedes Programm einzeln
  62. ;         übersteuert werden können.
  63. ;
  64. $1=-no-preprocessor
  65. 7%$1=-no-preprocessor -elf -no-regnames -no-multiple-ccs
  66. 8%$1=-no-preprocessor -poweropen -sc -no-multiple-ccs -use-lmw -peephole
  67.  
  68. $2=-O=65535 -maxoptpasses=50
  69. ;
  70. ; Für Linker: CPU-Typ wird geprüft
  71. ;
  72. $3=vlib:startup.o
  73. 7%$3=vlibppc:startup.o
  74. 8%$3=-nostdlib -Lvlibwos: vlibwos:warpup.o
  75. ;
  76. ; vbcc 0.6:
  77. ;
  78. ;$3=SC SD ND vlib:startup.o
  79. ;7%$3=vlibppc:startup.o
  80. ;8%$3=-nostdlib -Lvlibwos: vlibwos:warpup.o
  81. ;
  82. $4=vlib:vc.lib vlib:amiga.lib vlib:extra.lib
  83. 7%$4=vlibppc:libvc.a vlibppc:libm.a vlibppc:libvc.a vlibppc:libamiga.a vlibppc:libextra.a
  84. 8%$4=vlibwos:vc.lib vlibwos:x.o TO
  85. ;
  86. ; Includes, vekürzt $I = Programm-Pfad (Quellen)
  87. ; --------- hier müssen die eigenen Standardpfade rein.         
  88. ;
  89. $5=-Ivinclude: -IInclude: -IProj:Library/Include -IProj:Library/Init -I$I
  90. 7%$5=-Ivincludeppc: -IInclude: -IProj:Library/Include -IProj:Library/Init -I$I
  91. 8%$5=-Ivincludewos: -IInclude: -IProj:Library/Include -IProj:Library/Init -I$I
  92. ;
  93. ; Start des Pre-Prozessor's
  94. ;
  95. P=vcpp $5 -D__STDC__=1 -+ $D $&.c $&.i
  96. 7%P=vcpp $5 -D__STDC__=1 -+ $D $&.c $&.i
  97. 8%P=vcpp $5 -D__STDC__=1 -D__VBCC__=1 -D__PPC__=1 -+ $D $&.c $&.i
  98. ;
  99. ; Start des C-Compiler's
  100. ;
  101. C=ppcrun vbccppc://bin/vbccm68k_ppc $&.i -o=$&.a -quiet $C $1 $2
  102. 7%C=ppcrun vbccppc://bin/vbccppc_ppc $&.i -o=$&.a -quiet $C $1 $2
  103. 8%C=vbccppc $&.i -o=$&.a -quiet $C $1 $2"
  104. ;
  105. ; Scheduler
  106. ;
  107. ;7%S=vscppc -quiet $&.a $&.s
  108. 8%S=vscppc -quiet $&.a $&.s
  109. ;
  110. ; Assembler
  111. ;
  112. A=PhxAss noexe quiet opt NRQBTLPSM $&.a TO $&.o
  113. 7%A=pasm -R -F1 -O65536 $&.a -o $&.o
  114. 8%A=pasm -F2 -O65536 $&.s -o $&.o
  115. ;
  116. ; Linker (PhxLnk: @ übergibt eine Datei in der alle .o-Files gelistet sind!)
  117. ;        (GNU-ld: < dito, aber über Standard-Input)
  118. ;        (vlink: -F für File)
  119. ;
  120. ; Beim Start des Linker's mit Optionen, Link-Lib's und Objekten geht ziemlich
  121. ; schnell der Platz aus. Vor allem, wenn noch Pfadangaben hinzukommen. Das Tool
  122. ; vc vom vbcc unterscheidet wann eine Datei und wann eine Liste übergeben wird.
  123. ; Ich habe mich nur gefragt, wieso eigentlich? Wenn ich gleich die Datei ver-
  124. ; wende habe ich es einheitlich und es funktioniert in jedem Fall, ob ein, 10
  125. ; oder 100 Objekte. Alle Linker haben die Funktion ohnehin, also habe ich auf
  126. ; die Übergabe als Parameterliste verzichtet und übergebe immer die Datei.
  127. ; Der Dateiname ist per $o definiert.
  128. ;
  129. L=vlink -s -x -dn $3 -F$o $L $4 -o $$
  130. 7%L=vlink -belf32powerup -nostdlib -Lvlibppc: $3 -F$o $L $4 -lpowerup -o $$
  131. 8%L=vlink -bamigaehf -s -x $3 -F$o $L $4 -o $$
  132. ;
  133. ; vbcc 0.6:
  134. ;
  135. ;L=PhxLnk $3 @$o $L $4 TO $$
  136. ;7%L=ppc-amigaos-ld -r -L /vlibppc $3 <$o $L $4 TO $$
  137. ;8%L=vlink -bamigaehf -s -x $3 -F$o $L $4 TO $$
  138. ;
  139. ; CLI-Kommandos ausführen, wenn
  140. ;
  141. ; X0-X9 VOR dem ersten Compilerkommando (P, C, S, A) für Versionspflege
  142. ;       oder Sicherungen.
  143. ;
  144. ; Y0-Y9 NACH dem Link (wenn erfolgreich), z.B. für Arbeitskopien, Update-
  145. ;       systeme etc.
  146. ;
  147. ; R#: Programm starten, Cleanup oder alles andere was passieren soll.
  148. ;     Wird eine Compilerstufe nicht eingesetzt entfallen auch die R-Zeilen!
  149. ;
  150. ; R0:  VOR P - nur wenn auch P ausgeführt wird
  151. ; R1: NACH P - nur wenn auch P ausgeführt wird und ein Output-File vorliegt
  152. ; R2:  VOR C - nur wenn auch C ausgeführt wird
  153. ; R3: NACH C - nur wenn auch C ausgeführt wird und ein Output-File vorliegt
  154. ; R4:  VOR S - nur wenn auch S ausgeführt wird
  155. ; R5: NACH S - nur wenn auch S ausgeführt wird und ein Output-File vorliegt
  156. ; R6:  VOR A - nur wenn auch A ausgeführt wird
  157. ; R7: NACH A - nur wenn auch A ausgeführt wird und ein Output-File vorliegt
  158. ; R8:  VOR L - nur wenn auch L ausgeführt wird
  159. ; R9: NACH L - nur wenn auch L ausgeführt wird und ein Output-File vorliegt
  160. ; TIP: Wenn die Zeilen nicht reichen: 'Batches' oder 'Arexx' einsetzen!
  161. ;
  162. R7=Delete $&.i $&.a
  163. 8%R7=Delete $&.i $&.a $&.s
  164. R9=Delete $o
  165. ;
  166. ; Sicher ist sicher! 
  167. ;
  168. X0=MakeDir >Nil: obj obj/000 obj/010 obj/020 obj/030 obj/040 obj/060 obj/ppc obj/wos
  169.