Makefile

Tags:    c++

Hej brugere af udvikleren.

Jeg er begyndt at beskæftige mig med noget simpel microcontroller programmering. Dertil bruger jeg make, for at compile mine programmer samt flashe min chip.

Min makefile kan se sådan ud:

Fold kodeboks ind/udKode 


Mit problem er nu hverken at skrive koden til chippen eller skrive en simpel makefile.

Mit spørgsmål er; hvis jeg nu vil lave en hex af en arbitrær C-fil, uden at skal definere den inde i min makefile, således min makefile bliver mere generisk ved følgende syntaks:

Fold kodeboks ind/udKode 


Kan det lade sig gøre og i så fald hvordan??

HAr kigget lidt på make dokumentationen, men det har ikke lykkes mig at finde det jeg søger.

Håber ikke denne tråd er alt for rodet og indforstået.

På forhånd tak.





7 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Måske noget i stil med:
Fold kodeboks ind/udKode 




Hej til jer begge.

Tak for de foreløbige svar.

Martin << Jeg ved ikke om dit svar er det jeg søger, da jeg kan se mig ud af, at dit forslag benytter sig af PHONY targets og jeg er nød til at overskrive en variabel i selve makefile, altså noget i stil med:

Fold kodeboks ind/udKode 


Den løsning jeg søger er mere noget i retning af:

Fold kodeboks ind/udKode 


hvilken vil give mig objectfilen(arbitrary.elf) og hexfilen(arbitrary.hex).

Robert << Dit forslag til løsningen af min problemstilling ser umiddelbart ud til at være være mere den løsning jeg søger, men da jeg ikke er nogen makefile-haj, har jeg lidt svært ved at gennemskue funktionaliteten af den makefile du har skrevet i det ovenstående.

Til jer begge kan jeg jo lige vedlægge noget "bonus"-info, filen jeg arbejder ud fra ser sådan ud:

Fold kodeboks ind/udKode 


Jeg vil jo gerne opretholde nogenlunde samme konvention, men i stedet for at den kun "æder" main.c filer vil jeg gerne være i stand til at vælge en fuldstændig arbitrær .c fil.

Jeg har nævnt det en gang, men gør det lige igen. Umiddelbart ser Roberts løsning ud til at være den jeg søger, men jeg har svært ved at gennemskue funktionaliteten.

Med Venlig Hilsen



Parametrene til make programmet er de targets som du vil have bygget. Hvis du vil have compilet src/stuff.c så skal du bede om at få bygget target src/stuff.o.

Men meningen er, at make selv finder ud af, hvilke targets som skal opdateres. Hvis du beder om at få bygget 'program' (som det hed i min makefil), og program afhænger af src/stuff.o, så skal src/stuff.o først være up to date. Hvis den ikke er det, så bliver den bygget igen.

Prøv det selv. Kør make, så 'program' bliver bygget. Ændr derefter en C fil og kør make igen. Kun den ændrede C fil bliver recompilet og programmet lænkes til sidst.



Tak for jeres svar.

Ville nu gerne fordele mine point til jer to...

Martin << 10
Robert << 40

Men jeg jeg ved ikke om det bare er kommentarer i har smidt ellers er jeg bare dum og fatter ikke en meter af udviklerens interface.



Indlæg senest redigeret d. 23.01.2011 12:16 af Bruger #13737
Tak for jeres svar.

Ville nu gerne fordele mine point til jer to...

Martin << 10
Robert << 40

Men jeg jeg ved ikke om det bare er kommentarer i har smidt ellers er jeg bare dum og fatter ikke en meter af udviklerens interface.


Jeg bruger ikke points, for jeg får dem ikke brugt, så behold dem bare selv, eller giv dem til Martin.



Du tar dem bare selv.



t