Dr.Godfried-Willem RAES
Kursus Experimentele Muziek
: Boekdeel 1: Algoritmische KompositieHogeschool Gent : Departement Muziek & Drama
< Terug naar inhoudstafel kursus> |
1601:
Batch-file kompilatie
Hoewel kompileren binnen het QBX environment goed doenbaar is (de 'Make .EXE file' keuze in het RUN-menuvenster), zijn er toch enkele beperkingen aan verbonden. Zo kunnen niet alle kompiler-opties vrij worden ingesteld en is men gebonden aan enkele instellingen die werden ingevoerd in de *.INI file of die meegegeven werden bij het opstarten van de interpreter zelf, zoals bvb. de /AH optie.
Bovendien heeft het individueel kompileren van programmas, wanneer het gaat om een wat groter opgezet programmageheel dat -zoals elk professioneel programma- uit verschillende al dan niet autonome kodemodules bestaat, het grote nadeel dat men er niet steeds zeker van is dat alle gekompileerde files ook werkelijk de laatste versie van de geschreven kode vertegenwoordigen. Om aan deze bezwaren tegemoet te komen, raad ik de studenten dan ook aan de kompilatie van alle uit meerdere modules bestaande programmas via een kort batch-bestand te laten gebeuren. In dat batch bestand kunnen dan de specifieke opties voor alle programmamodules van het gehele projekt individueel worden gespecifieerd.
De mogelijke opties zijn beschreven in de appendices van de Microsoft manuals. Voor QBX zijn er heel wat meer opties dan voor QB4.5. Zij hebben betrekking op het al of niet ondersteunen van de seriele poorten, het al of niet gebruik maken van de rekenprocessor, het al of niet ondersteunen van grafische schermen, van arrays in extended memory, van muiskommandos, van interrupts, van assembler-calls... Door van deze opties gebruik te maken kan heel wat kompaktere kode worden gegenereerd, wat uiteindelijk ook meestal leidt tot een snellere uitvoering ervan.
Hierbij geef ik een voorbeeld van een batch-bestand waarmee alle modules van de gehele software voor mijn 'A Book of Moves' uit 1992/1993 in een keer worden gekompileerd tot *.EXE files. Deze batch file kan alleen worden gebruikt in QBX V7.1.
BOM_COMP.BAT:
CLS
@ECHO "QBX- Batch-file for compilation of code modules for <A Book of Moves>"
bc C:\bc7\bom\bom.bas/O/Ot/G2/Lr/FPi/AH/T/C:128;
bc C:\bc7\bom\bom_func.bas/O/Ot/G2/Lr/FPi/AH/T/C:128;
bc C:\bc7\bom\bom_tst.bas/O/Ot/G2/Lr/FPi/AH/T/C:128;
bc C:\bc7\bom\bom_stat.bas/O/Ot/G2/Lr/FPi/AH/T/C:128;
bc C:\bc7\bom\scope1.bas/O/Ot/G2/Lr/FPi/T/C:128;
bc C:\bc7\bom\scope16.bas/O/Ot/G2/Lr/FPi/T/C:128;
bc C:\bc7\bom\radar.bas/O/Ot/G2/Lr/FPi/T/C:128;
bc C:\bc7\bom\drawstat.bas/O/Ot/G2/Lr/FPi/T/C:128;
bc C:\bc7\bom\mpuuart.bas/O/Ot/G2/Lr/FPi/T/C:128;
bc C:\bc7\bom\bomnoise.bas/O/Ot/G2/Lr/FPi/T/C:128;
bc C:\bc7\bom\bom_A4.bas/O/Ot/G2/Lr/FPi/T/C:128;
@ECHO Linking should be with NOCOM.OBJ (No serial com) and 87.LIB (80487)
link /E/F/NOE bom_A4.obj+ nocom.obj+ nograph.obj, bom_A4.EXE, bom_A4.MAP, BCL71ENR.LIB ;
link /E/F/NOE bomnoise.obj+ nocom.obj+ nograph.obj, bomnoise.EXE, bomnoise.map, BCL71ENR.LIB ;
link /E/F/NOE mpuuart.obj+ nocom.obj+ nograph.obj, mpuuart.EXE, mpuuart.map, BCL71ENR.LIB ;
link /E/F/NOE drawstat.obj+ nocom.obj+ 87.lib, drawstat.EXE, drawstat.map, BCL71ENR.LIB ;
link /E/F/NOE radar.obj+ nocom.obj+ 87.lib, radar.EXE, radar.map, BCL71ENR.LIB ;
link /E/F/NOE scope16.obj+ nocom.obj+ 87.lib, scope16.EXE, scope16.map, BCL71ENR.LIB ;
link /E/F/NOE scope1.obj+ nocom.obj+ 87.lib, scope1.EXE, scope1.map, BCL71ENR.LIB ;
link /E/F/NOE BOM+ BOM_FUNC+ BOM_TST+ BOM_STAT+ nocom.obj+ 87.lib, bom.exe, bom.map, BCL71ENR.LIB ;
Overigens zijn batch-files sowieso erg nuttige dingen. Ikzelf gebruik batch- programmas bvb. ook erg vaak om back-ups te maken van allerlei software- projekten evenals teksten en artikels. Het batch-bestand dan ik gebruik om een back-up bij te houden van deze kursus bvb. ziet eruit alsvolgt:
BAK_KURS.BAT:
ECHO OFF
CLS
ECHO
ECHO *********************************************************************
ECHO * EXPERIMENTAL MUSICS *
ECHO * a collection of lectures and materials *
ECHO * by Dr.Godfried-Willem Raes *
ECHO *********************************************************************
ECHO This batch-programm backs files 0000-3999 up to A:
DEL A:*.*
COPY INHOUD A:
COPY 0* A:
COPY 1* A:
COPY 2* A:
COPY 3* A:
COPY *.BAS A:
ECHO To copy the files 4000-5999 insert second disk in A-drive now...
PAUSE
DEL A:*.*
COPY 4* A:
COPY 5* A:ECHO To copy the files 6000-9999 insert third disk in A-drive now...
PAUSE
DEL A:*.*
COPY 6* A:
COPY 7* A:
COPY 8* A:
COPY 9* A:
COPY BIBLIO A:
ECHO O.K.- all files are copied to 3 disks!
Dat dit ons heel wat vervelend typewerk (en de erbij horende kansen op fouten...) kan besparen zal zo wel duidelijk zijn geworden.
Filedate: 910620
Terug naar inhoudstafel kursus: < Index Kursus> |
Naar homepage dr.Godfried-Willem RAES |