home *** CD-ROM | disk | FTP | other *** search
- ; Allgemeines Compiler-Script
- ; ---------------------------
- ; Defines, Setting usw. für CPU-Typen: 1-6 = 68k, 7 & 8 PPC / WOS
- ; $C = CPU/FPU für Compiler ($D=defines)
- ; Nicht gesetzte Werte werden ignoriert.
- ; Hier als Beispiel: 6x m68k-Config / 68000 Standardvorgabe
- ; 2x PPC, einmal PowerUP und einmal WarpOS
- ;
- ; Anmerkung: Pmm und alle Pmm-Tools werden ORIGINAL mit diesem Script auf
- ; vbcc 0.6e übersetzt. Ebenso Gateway-5, die gateway.library
- ; und auch meine interne Link-Lib.
- ; <-- (; = Kommentar)
- # <-- Für Make-Fan's (# = Kommentar)
- ;
-
-
-
- ; Leerzeilen sind zulässig!
- ; -------------------------
-
-
-
- ; Allgemeines Compiler-Script
- ;
- ; Defines, Setting usw. für CPU-Typen: 1-6 = 68k, 7 & 8 PPC / WOS
- ; $C = CPU/FPU für Compiler
- ; $D = Defines mit CPU/FPU
- ; $E = Pfad der machinenabhängigen Includes
- ; $F = Pfad zu ebensolchen Link-Libs
- ; Nicht gesetzte Werte werden ignoriert.
- ;
- $C=-cpu=68000
- $D=-DCPU="68000" -DFPU="N/A"
-
- $E=vinclude
- $F=vlib
- ;
- 2%$C=-cpu=68010
- 2%$D=-DCPU="68010" -DFPU="N/A"
- ;
- 3%$C=-cpu=68020 -fpu=68881
- 3%$D=-DCPU="68020" -DFPU="68881"
- ;
- 4%$C=-cpu=68030 -fpu=68882
- 4%$D=-DCPU="68030" -DFPU="68882"
- ;
- 5%$C=-cpu=68040 -fpu=68040
- 5%$D=-DCPU="68040" -DFPU="FPU040"
- ;
- 6%$C=-cpu=68060 -fpu=68060
- 6%$D=-DCPU="68060" -DFPU="FPU060"
- ;
- 7%$C=-cpu=ppc
- 7%$D=-DCPU="PPC" -DFPU="PowerUP"
-
- 7%$E=vincludeppc
- 7%$F=vlibppc
- ;
- 8%$C=-cpu=wos
- 8%$D=-DCPU="PPC" -DFPU="WarpOS"
-
- 8%$E=vincludewos
- 8%$F=vlibwos
-
- $0=000
- 2%$0=010
- 3%$0=020
- 4%$0=030
- 5%$0=040
- 6%$0=060
- 7%$0=PPC
- 8%$0=WOS
- ;
- $7=$F:mieee.lib
- 2%$7=$F:mieee.lib
- 3%$7=$F:m881.lib
- 4%$7=$F:m881.lib
- 5%$7=$F:m040.lib
- 6%$7=$F:m040.lib
- 7%$7=-lm
- 8%$7=-lm
- ;
- $8=.lib
- 7%$8=.a
- ;
- $9=$8
- 5%$9=_$0$8
- 6%$9=_040$8
- 7%$9=_$0$8
- 8%$9=_$0$8
-
- ;
- ; Vorgabewerte, wenn für das Feld nichts gesetzt ist:
- ;
- $1=-no-preprocessor
- 7%$1=-no-preprocessor -elf -no-regnames -no-multiple-ccs
- 8%$1=-no-preprocessor -amiga-align -poweropen -sc -no-multiple-ccs -use-lmw -peephole
-
- $2=-O=991 -maxoptpasses=50
-
- $o=T:PmmObjFileList
- ;
- ; Zu 1%, 2% usw. siehe DOKU!
- ;
-
- ;
- ; Vorgabewerte, wenn für das Feld nichts gesetzt ist:
- ; ------------- VORSICHT! Optimizer auf 3 ist gefährlich (BETA) !!!
- ; Nach meiner Erfahrung läuft der Optimizer ab V0.6e
- ; Bei der Meldung: ">>> VAR <name> is used bevor defined"
- ; sofort auf -O=1 gehen. Sonst ist ein Absturz im Programm
- ; garantiert! Unter mindestens 16 MB freiem Speicher ist das auch
- ; nicht zu empfehlen! Anm. der Autorin
- ;
- ; $1, $2 ... $0 sind einfach Variablen, der Witz ist, das sie hier definiert
- ; werden, aber für jedes Projekt und jedes Programm einzeln
- ; übersteuert werden können.
- ;
- $1=-no-preprocessor
- 7%$1=-no-preprocessor -elf -no-regnames -no-multiple-ccs
- 8%$1=-no-preprocessor -amiga-align -poweropen -sc -no-multiple-ccs -use-lmw -peephole
- ;
- ; Default's:
- ;
- $2=-O=991 -maxoptpasses=50
- $o=T:ObjLinkList
- ;
- ; Für Linker: CPU-Typ wird geprüft
- ;
- $3=$F:startup.o
- 8%$3=$F:warpup.o
- ;
- $4=$7 $F:vc$8 $F:amiga$8 $F:extra$8
- 7%$4=$7 -lamiga -lextra -lvc -lpowerup
- 8%$4=$7 -lamiga -lextra -lvc $F:x.o
- ;
- ; Includes
- ;
- $5=-I$E: -I$I
- ;
- ; Pre-Prozessor
- ;
- P=vcpp_wos $5 -D__STDC__=1 -+ $D $&.c $&.i
- 7%P=vcpp_wos $5 -D__STDC__=1 -+ $D $&.c $&.i
- 8%P=vcpp_wos $5 -D__STDC__=1 -D__VBCC__=1 -D__PPC__=1 -+ $D $&.c $&.i
- ;
- ; C-Compiler:
- ;
- C=vbccm68k_wos $&.i -o= $&.a -quiet $C $1 $2
- 7%C=vbccppc_wos $&.i -o= $&.a -quiet $C $1 $2
- 8%C=vbccppc_wos $&.i -o= $&.a -quiet $C $1 $2
- ;
- ; Scheduler
- ; INAKTIV außer bei WarpOS
- ;
- S=
- 7%S=vscppc_wos -quiet $&.a $&.s
- 8%S=vscppc_wos -quiet $&.a $&.s
- ;
- ; Assembler
- ;
- A=PhxAss noexe quiet opt 3 M=0 $&.a TO $&.o
- 2%A=PhxAss noexe quiet opt 3 M=1 $&.a TO $&.o
- 3%A=PhxAss noexe quiet opt 3 M=2 FPU=1 $&.a TO $&.o
- 4%A=PhxAss noexe quiet opt 3 M=3 FPU=1 $&.a TO $&.o
- 5%A=PhxAss noexe quiet opt 3 M=4 $&.a TO $&.o
- 6%A=PhxAss noexe quiet opt 3 M=6 $&.a TO $&.o
- 7%A=pasm_wos -R -F1 -O65536 $&.s -o $&.o
- 8%A=pasm_wos -F2 -O65536 $&.s -o $&.o
- ;
- ; Linker (PhxLnk: @ übergibt eine Datei in der alle .o-Files gelistet sind!)
- ; (GNU-ld: < dito, aber über Standard-Input)
- ; (vlink: -F für File)
- ;
- ; Beim Start des Linker's mit Optionen, Link-Lib's und Objekten geht ziemlich
- ; schnell der Platz aus. Vor allem, wenn noch Pfadangaben hinzukommen. Das Tool
- ; vc vom vbcc unterscheidet wann eine Datei und wann eine Liste übergeben wird.
- ; Ich habe mich nur gefragt, wieso eigentlich? Wenn ich gleich die Datei ver-
- ; wende habe ich es einheitlich und es funktioniert in jedem Fall, ob ein, 10
- ; oder 100 Objekte. Alle Linker haben die Funktion ohnehin, also habe ich auf
- ; die ÜÜbergabe als Parameterliste verzichtet und übergebe immer die Datei.
- ; Der Dateiname ist per $o definiert.
- ;
- ;
- ;L=PhxLnk $3 @$o $L $4 TO $$
- ;7%L=ppc-amigaos-ld -r -L /$F $3 <$o $4 $L -o $$
- ;
- L=vlink_wos -s -sc -sd -x -dn $3 -F$o $L $4 -o $$
- 7%L=vlink_wos -belf32powerup -s -sc -sd -nostdlib -L$F: $3 -F$o $4 $L -o $$
- 8%L=vlink_wos -bamigaehf -s -sc -sd -nostdlib -L$F: $3 -F$o $L $4 -o $$
- ; CLI-Kommandos ausführen, wenn
- ;
- ; X0-X9 VOR dem ersten Compilerkommando (P, C, S, A) für Versionspflege
- ; oder Sicherungen.
- ;
- ; Y0-Y9 NACH dem Link (wenn erfolgreich), z.B. für Arbeitskopien, Update-
- ; systeme etc.
- ;
- ; R#: Programm starten, Cleanup oder alles andere was passieren soll.
- ; Wird eine Compilerstufe nicht eingesetzt entfallen auch die R-Zeilen!
- ;
- ; R0: VOR P - nur wenn auch P ausgeführt wird
- ; R1: NACH P - nur wenn auch P ausgeführt wird und ein Output-File vorliegt
- ; R2: VOR C - nur wenn auch C ausgeführt wird
- ; R3: NACH C - nur wenn auch C ausgeführt wird und ein Output-File vorliegt
- ; R4: VOR S - nur wenn auch S ausgeführt wird
- ; R5: NACH S - nur wenn auch S ausgeführt wird und ein Output-File vorliegt
- ; R6: VOR A - nur wenn auch A ausgeführt wird
- ; R7: NACH A - nur wenn auch A ausgeführt wird und ein Output-File vorliegt
- ; R8: VOR L - nur wenn auch L ausgeführt wird
- ; R9: NACH L - nur wenn auch L ausgeführt wird und ein Output-File vorliegt
- ;
- ; TIP: Wenn die Zeilen nicht reichen: 'Batches' oder 'Arexx' einsetzen!
- ;
- R7=Delete $&.i $&.a
- 8%R7=Delete $&.i $&.a $&.s
- R9=Delete $o
- ;
- ; Sicher ist sicher! Deshalb UNBEDINGT aufräumen!
- ;
- X0=PmmTool -m obj/$0
- X1=;
- X2=;
- X3=;
- X4=;
- X5=;
- X6=;
- X7=;
- X8=;
- X9=;
-
- Y0=;
- Y1=;
- Y2=;
- Y3=;
- Y4=;
- Y5=;
- Y6=;
- Y7=;
- Y8=;
- Y9=;
-