Forum: Compiler & IDEs Bitte um Hilfe bei meinem ersten Makefile


von ich (Gast)


Lesenswert?

Hallo!

Ich versuche mich gerade das erste mal darin ein Makefile für WinARM zu 
erstellen. Dazu habe ich mir mal ein Makefile aus einem der 
Beispielprogramme genommen und versuche dieses jetzt zu überarbeiten. 
Nur was gehört jetzt wo hin??

Da gibt es ja eine Bereich:
1
# List C source files here. (C dependencies are automatically generated.)
2
# use file-extension c for "c-only"-files
3
SRC = 
4
5
6
Dann noch:
7
# List C source files here which must be compiled in ARM-Mode.
8
# use file-extension c for "c-only"-files
9
SRCARM = 
10
11
weiters:
12
# List C++ source files here.
13
# use file-extension cpp for C++-files (use extension .cpp)
14
CPPSRC = 
15
16
und dann auhc noch:
17
# List C++ source files here which must be compiled in ARM-Mode.
18
# use file-extension cpp for C++-files (use extension .cpp)
19
CPPSRCARM = 
20
21
außerdem:
22
# List Assembler source files here.
23
# Make them always end in a capital .S.  Files ending in a lowercase .s
24
# will not be considered source files but generated files (assembler
25
# output from the compiler), and will be deleted upon "make clean"!
26
# Even though the DOS/Win* filesystem matches both .s and .S the same,
27
# it will preserve the spelling of the filenames, and gcc itself does
28
# care about how the name is spelled on its command-line.
29
ASRC = 
30
31
und zu letzt noch:
32
# List Assembler source files here which must be assembled in ARM-Mode..
33
ASRCARM =
Nur was heißt das jetzt für mich? Was muss im ARM-Mode assembliert bzw. 
compiliert werden, was nicht?
Welche Files müssen überhaupt hier eingetragen werden??
Und wie verhält scih das ganze dann, wenn die Files in 
unterverzeichnissen liegen?

Ich weiß. Viele FRagen und viel Text, aber da ich mit den ganzeh im 
Internet befindlichen Hilfen nicht wirklich weiter komme (ich versuche 
das ganze jetzt schon seit fas 2 Wochen, und bin entsprechend 
frustriert), hoffe ich, dass mir hier jemand weiter helfen kann.

Danke euch!

von Mark .. (mork)


Lesenswert?

Hallo Du,

>Was muss im ARM-Mode assembliert bzw. compiliert werden, was nicht?

im ARM-Mode muss der Code compilliert/assembliert werden, der später im 
ARM-Mode laufen soll (z.b. der Startup-Code). Wenn Du aber Thumb-Code 
haben möchtest, musst Du die entsprechenden Sources unter SRC/CPPSRC und 
'THUMB = -mthumb' im makefile eintragen.

>Welche Files müssen überhaupt hier eingetragen werden??
Alle Quelltexte (.c oder .cpp oder .S) müssen irgendwo eingertagen 
werden.

>Und wie verhält scih das ganze dann, wenn die Files in unterverzeichnissen 
>liegen?
Dann musst Du den Pfad ausgehend von dem Ordner, wo sich das makefile 
befindet eintragen.

Ich hoffe ich konnte Dir helfen.

MfG Mark

von ich (Gast)


Lesenswert?

Hallo!

Ja, hat mir geholfen! Danke!

Aber: Ich habe jetzt mal alle *.c und *.s in mein Makefile eingetragen.
wenn ich jetzt make clean und dann make all eingebe, verschwindet 
allerdinges meine startup.s Datei aus dem Projektverzeichnis.

Gibt es da noch etwas zu beachten, das ich überlesen habe??

*.s und *.S macht keinen Unterschied.

danke eucht!

von ich (Gast)


Lesenswert?

Ich bin echt am verzweifeln!

Kann mir denn niemand helfen??

von mthomas (Gast)


Lesenswert?

Tritt das Verhalten bei make all/make clean bei den mitgelieferten 
Beispielen auch auf? Welche make Version (make --version)?

von kosmonaut pirx (Gast)


Lesenswert?

hallo,
schicke bitte einmal dein komplettes Makefile. Der Aussschnitt von oben 
ist zu wenig.
bye kosmo

von ich (Gast)


Angehängte Dateien:

Lesenswert?

Makefile im Anhang!

make-Version ist 3.81

passiert nur bei make clean.

bei make all bekomme ich folgende Fehermeldung:

make -k all
makefile:443: target `startup.s' doesn't match the target pattern

Die beispiele, welche ich probiert habe funktionieren alle (mit den 
mitgelieferten make-files)

von mthomas (Gast)


Lesenswert?

-ASRCARM = startup.s
+ASRCARM = startup.S

Sicherstellen, dass die Datei startup.S tatsächlich ein großes S als 
File-Extension hat.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.