CODINGSDCC TUT'S PAR STEPHBB75 ★ Fichier .BAT pour compiler avec SDCC ★

Sdcc - 03 - Fichier Bat Pour Compiler Avec SdccCoding Sdcc Tut's Par Stephbb75

Comme vue dans la première partie "SDCC débuter" pour compiler c'est de la ligne de commande et il faut bien l'avouer c'est bien chiant de toujours ressaisir les lignes de commande.
Pour résoudre cela on peut les mettre dans un fichier .bat ce qui vas déjà nous facilité la vie :

sdcc -mz80 --code-loc 0x1A8 --data-loc 0 --no-std-crt0 crt0_0x170.rel Hello.c
hex2bin Hello.ihx
CPCDiskXP -File Hello.bin -AddAmsdosHeader 170 -AddToNewDsk Hello.dsk

On sauve tout cela dans un fichier comp.bat par exemple. Son utilisation est simple, mais il n'est pas très pratique quand ont a des erreurs...

C'est cool, mais vous allez vite vous apercevoir que c'est quand même pas pratique, il faut changer à chaque fois le nom du fichier Hello quand vous faite un autre code.
On va donc améliorer ce fichier .bat, je cous propose celui que je me suis fait, il fait la compil en lui passant le nom du fichier à compiler (par exemple comp.bat Hello) ce qui est plus pratique quand même. De plus j'efface les fichier généré par SDCC, hex2bin et CPCDiskXP, comme cela s'il y a une erreur quelque par le script s'arrête et donnant l'info.
Il n'est pas encore complet, il faut de temps à autre le modifier, car comme vous pouvez le voire on ne met pas des .rel autre que crt0_0x170.rel, donc si vous en avez besoin d'autre il faut les mettre à la main avant !

cls
@echo off

IF "%1"=="" GOTO AIDE

if not exist %1.c goto NOC

echo ---------------------------------------------------------
echo -- Effacement des fichiers
del %1.asm
del %1.ihx
del %1.lk
del %1.lst
del %1.map
del %1.noi
del %1.rel
del %1.sym
del %1.bin
del %1.dsk

echo ---------------------------------------------------------
echo adresse de base : 0x170
echo il faut le crt0_0x170 !

echo ---------------------------------------------------------
echo --Compilation de %1.c
sdcc -mz80 --code-loc 0x1A8 --data-loc 0 --no-std-crt0 crt0_0x170.rel %1.c

rem -mz80 -> Generate code for the Zilog Z80 family of processo. (Processor Selection Options)
rem --code-loc 0x6038 -> The start location of the code segment. (Linker Options)
rem --data-loc 0 -> The start location of the internal RAM data segment.(Linker Options)
rem --no-std-crt0 -> When linking, skip the standard crt0.rel object file.(Z80 Options)

rem --opt-code-speed -> The compiler will optimize code generation towards fast code
rem --opt-code-size -> The compiler will optimize code generation towards compact code


if not exist %1.ihx goto NOIHX
echo ---------------------------------------------------------
echo --Creation de %1.bin
hex2bin %1.ihx

if not exist %1.bin goto NOBIN
echo ---------------------------------------------------------
echo --Creation de %1.dsk
CPCDiskXP -File %1.bin -AddAmsdosHeader 170 -AddToNewDsk %1.dsk

goto FIN

exit

:AIDE
echo ---------------------------------------------------------
echo Utilisation : comp.bat "non fichier" sans extension !
goto Fin

:NOC
echo ---------------------------------------------------------
echo Le fichier %1.c n'existe pas !
goto Fin

:NOIHX
echo ---------------------------------------------------------
echo Erreur de compilation du C !
goto Fin

:NOBIN
echo ---------------------------------------------------------
echo Erreur de compilation ASM !
goto Fin

:OK
echo ---------------------------------------------------------
echo Compilation de %1.c : OK
echo Creation de %1.bin : OK
echo Creation de %1.dsk : OK

:FIN
echo ---------------------------------------------------------
echo fin...

Voila, avec ce fichier la compilation est un peut plus "simple", il se trouve dans se ZIP.

stephbb75

Page précédente : Sdcc - 02 - Utilisation de Sdcc
★ AMSTRAD CPC ★ DOWNLOAD ★

Other platform tool:
» stephbb75-crtc1DATE: 2013-02-07
DL: 361
TYPE: ZIP
SiZE: 25Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Developper en C pour CPC (Stephbb75)
» Coding » Sdcc - 12 - Put Pixel Tres Rapide
» Coding » Sdcc - 18 - 3D - Fil de Fer
» Coding » Sdcc - 19 - 3D - Optimisation
» Coding » Sdcc - 23 - Slide Show
» Coding » Sdcc - 08 - Swap d'Ecran
Je participe au site:
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 530 millisecondes et consultée 2502 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.