Kan man få GCC att göra så här:

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Kan man få GCC att göra så här:

Inlägg av TomasL »

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.

Kod: Markera allt

char *SVNRevNo			= "696";
char *SVNRevDate		= "2017 05 19";
char *SVNRevTime		= "16 18 49";
Användarvisningsbild
AndLi
Inlägg: 17045
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Kan man få GCC att göra så här:

Inlägg av AndLi »

Är inte make filen rätt ställe att göra det?

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)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Kan man få GCC att göra så här:

Inlägg av TomasL »

filen svnrev.h som jag postade uppdateras varje gång man gör en commit eller en update.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Kan man få GCC att göra så här:

Inlägg av lillahuset »

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.
gkar
Inlägg: 1453
Blev medlem: 31 oktober 2011, 15:28:29
Ort: Linköping

Re: Kan man få GCC att göra så här:

Inlägg av gkar »

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.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Kan man få GCC att göra så här:

Inlägg av TomasL »

Nja, SVN fixar detta per automatik, och skriver högsta versionsnumret till rev-filen.
Användarvisningsbild
AndLi
Inlägg: 17045
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Kan man få GCC att göra så här:

Inlägg av AndLi »

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...
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Kan man få GCC att göra så här:

Inlägg av TomasL »

MPLAB, gamla versionen, och ja den verkar fixa det.
gkar
Inlägg: 1453
Blev medlem: 31 oktober 2011, 15:28:29
Ort: Linköping

Re: Kan man få GCC att göra så här:

Inlägg av gkar »

Jag missförstod vad du ville göra.
Jag trodde att det var åt andra hållet...
Polyene
Inlägg: 20
Blev medlem: 29 juli 2018, 09:31:40

Re: Kan man få GCC att göra så här:

Inlägg av Polyene »

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.
Användarvisningsbild
maDa
Inlägg: 4073
Blev medlem: 11 november 2005, 22:13:16
Ort: Malmö
Kontakt:

Re: Kan man få GCC att göra så här:

Inlägg av maDa »

I princip samtliga utvecklingsmijöer/versionshanteringssystem har väll post-hooks, det ska väll inte behöva göras av kompilatorn.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Kan man få GCC att göra så här:

Inlägg av TomasL »

Förvisso, men de är globala, och går inte att styra mot specifika projekt, tyvärr.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1339
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Re: Kan man få GCC att göra så här:

Inlägg av baron3d »

I MPLAB, (ikon: grönt med ett gult kugghjul) "Build Options" ->"Custom Build", går det att skriva in valfri kommandorad.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Kan man få GCC att göra så här:

Inlägg av TomasL »

Nej det går det inte, enbart "kompilatordirektiv" men det kanske finns kompilatorfunktioner för att starta externa händelser.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1339
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Re: Kan man få GCC att göra så här:

Inlägg av baron3d »

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.
Skriv svar