Microchip använder gcc till PIC32.
Jag vill, efter kompilering och länkning automatiskt kopiera hex-filen till en annan folder på datorn.
Jag vill samtidigt att den får ett namn som motsvarar projektet och versionsnummer, versionsnummret finns i en h-fil i projektet, ligger som en konstant.
Alternativt får man tillverka ett litet program som gör detta, som startas av GCC med platsen för hex-filen som argument.
SVNRevNo låter som ett versionshanteringsystem nummer? Borde man inte automatiskt hämta de numrena med så man inte glömmer uppdatera?
(Jag skulle nog satt en parameter i makefilen till rätt SVN version, sen skickat med den till gcc commandline som en define (-D), som används för att initiera din SVNrevNo och sen gjort kopieringen med samma parameter i makefilen)
Du ska väl inte be GCC göra det där.
Antingen om du anropar ett script från make eller från den utvecklingsmiljö du använder.
Eclipse-baserade miljöer jag har testat brukar ha möjlighet att göra saker först och sist i en byggprocess. Praktiskt.
För att verkligen veta vad din version är i binären, inte vad du önskar att den är, skulle jag titta i de kompilerade filerna och extrahera ut strängarna du söker.
Kolla objdump och dess kompisar. De kan lista det du behöver.
Men sen gäller det ju att din makefil är rätt och att rätt c filer byggs om som är beroende av din versions h fil...
Men jag gissar att du gör någon GUI baserad miljö med automatiserad generering av makefiler, då är det väl bara att hålla tummarna att den gör rätt...
Det låter som att detta bör göras med ett externt program eller skript. I ren windowsmiljö är det nog lite svårt, men med t. ex. Cygwin så borde det gå att göra ett shellscript som med lite grep och annat löser detta. Sen anropar du detta som ett post-build-steg ifrån MPLAB.
Går du in där jag beskrev står det:
Kryss ruta: "Post-Build Step"
sedan:
"Enter a command line to be executed after the successful completion of a build"
"command line" borde referera till en valfri kommando rad.