Forum: Mikrocontroller und Digitale Elektronik Unterschied makefile config.mk


von Sabine (Gast)


Lesenswert?

Hallo Leute,

ich bin seit neu in einer Firma und soll heute schon in einem SW-Projekt 
mitwirken.
Nun habe ich einen Projektordner bekommen. in dem sich ein makefile und 
eine Datei namens config.mk befindet.
Nun ist mir nicht ganz klar was die Dateinen machen.
In beiden dateinen steht in der ersten Zeile so etwas wie "ich bin ein 
makefile"
Kann mir jemand den unterschied erklären? Die genauen files würde ich 
nur sehr ungern posten um mich nicht in der zweiten Woche in der neuen 
Firma zu "outen".
Es geht mir auch nur um die generellen Unterschiede und was die Dateine 
machen und nicht um meine im Speziellen.
Ich danke euch für eure Hilfe.

Lieben Gruß
Bine

von Sabine (Gast)


Lesenswert?

Jungs ich brauche eure Hilfe. Kann mir keiner helfen??? Bin google am 
durchforsten, finde aber nichts brauchbares.

von Hubert G. (hubertg)


Lesenswert?

Ohne die Dateien zu kennen wird es schwierig.
Ich könnte mir nur vorstellen das die config.mk ein makefile erstellt 
oder eine Vorlage dafür ist.

von Hubert G. (hubertg)


Lesenswert?


von cskulkw (Gast)


Lesenswert?

Das Make-file ist eine Steuerungsdatei für Programme, die normalerweise 
in der Shell(Kommandozeilenkonsole) ausgeführt werden, um ein 
Zielprogramm zu erzeugen. Dabei stellt das Ziel dann ein Hex-File dar. 
Es kann für den PC, oder andere Rechnersysteme vorgesehen sein.

Um die Syntax zu verstehen kann ich Dir folgende Link empfehlen:

http://www.gnu.org/software/make/manual/make.html

http://www.ijon.de/comp/tutorials/makefile.html

http://mrbook.org/tutorials/make/

Aber was Du da nun genau machen sollst, ist dann die Kleinarbeit, um die 
man sich bei Deiner Firma offentsichtlich nicht reißt.

Was soll denn dabei raus kommen. Ein PC-Programm?

Offensichltich würde ich eher auf eine Mikrokontroler-Target tippen.

Für welchen ist es denn?

von Björn B. (elmo)


Lesenswert?

Hallo,

ich denke, Du hast da ein Projekt vor Dir, welches mit Autotools 
(Autoconf, Automake etc) arbeitet. Diese generieren Dir Dein Makefile, 
was bedeutet, dass Du dort nicht selber Hand anlegen musst. Dafür 
bearbeitest Du in der Regel Dateien wie configure.ac, Makefile.am oder 
eben config.mk

Such mal in Richtung Autotools weiter, vielleicht hilft das.

Gruß
Björn

von raute (Gast)


Lesenswert?

cskulkw schrieb:
> Das Make-file ist eine Steuerungsdatei für Programme, die normalerweise
> in der Shell(Kommandozeilenkonsole) ausgeführt werden, um ein
> Zielprogramm zu erzeugen. Dabei stellt das Ziel dann ein Hex-File dar.
> Es kann für den PC, oder andere Rechnersysteme vorgesehen sein.
Also es heisst Makefile (oder makefile) und muss auch so geschrieben 
werden, sonst funktioniert es (meist) nicht.
In diesem Fall scheint aber das Makefile automatisiert mittels der 
*.mk-Dateien erzeugt zu werden. Also geht man nicht an das Makefile ran, 
sondern an die *.mk-Dateien.
Das Makefiles nur für die Entwicklung in einer Shell genutzt werden, 
halte ich für ein Gerücht, diverse IDEs nutzen es, aber der Anwendet 
merkt es einfach nur nicht.

Zu deinem Problem, frag doch einfach mal in einem Team nach. Mehrere 
Build-Tools *.mk Dateien nutzen, mal so eben raten bringt da gar nicht.
Mögliche Kandidaten:
-autotools (GNU)
-mk-configure

autoconf:
http://hackage.haskell.org/trac/ghc/wiki/Building/Using

von raute (Gast)


Lesenswert?

raute schrieb:
> autoconf:
> http://hackage.haskell.org/trac/ghc/wiki/Building/Using
Dass das haskell ist, hat nichts mit deinem Problem zutun.

@Björn B. (elmo)
Mist, zu spät. ;-)

von Sabine (Gast)


Lesenswert?

Danke für eure Antworten.

Also es geht um ein rein eingebettetes System mit einem AVR32-Mc.
Was mir jetzt aufgefallen ist, das das makefile nur allegemeine Infos 
enthält und alles was Projetspezifisch ist in der confic.mk steht.

von Bartli (Gast)


Lesenswert?

> und soll heute schon in einem SW-Projekt mitwirken.

Soll vorkommen in der Berufswelt.

> Nun ist mir nicht ganz klar was die Dateinen machen.

Das wird dir auch niemand sagen können ohne den Inhalt der Dateien zu 
sehen.


Das Vorhandensein einer Datei namens config.mk deutet in keinster Weise 
auf autotools hin. Es kann genausogut sein dass dieses config.mk auch 
nur ein normales Makefile ist, und z.B. von einem anderen Makefile 
mittels include eingebunden wird, so etwas sieht man häufig.

Es ist auch üblich, Makefiles welche nicht zur direkten Verwendung 
gedacht sind eben nicht Makefile zu nennen sondern irgendwie anders, um 
sie vor Make zu "tarnen", was dann z.B. den Namen config.mk erkären 
würde.

Weiter können sich Make-Implementationen erheblich voneinander 
unterscheiden, so dass das Manual von GNU Make unter Umständen ziemlich 
nutzlos ist.

von Alter Hase (Gast)


Lesenswert?

Die von Dir genannten Files werden in einem (speziellen)
Umfeld (=vermutlich Entwicklungsumgebung die Deine Firma benutzt)
verwendet. Die können, müssen aber nicht, Sonderfunktionen enthalten.

Ich würde mich nicht scheuen, gerade als "Beginner", nachzufragen.
(Ich habe >25 Jahre Berufserfahrung).
Wird sowas übel genommen, dann sagt das viel über die Firma bzw. das
Arbeitsumfeld dort aus.

Keiner kann (in der 2. Woche) die kleinen Geheimnisse kennen, also
frage ruhig nach.

Böse Leute würden jetzt über "mangelnde Dokumentation" lästern.

von (Gast) Gast (Gast)


Lesenswert?

Ich weiss, dass dieser Beitrag der Fragestellerin nichts mehr bringt, 
aber es hilft sicher anderen Leuten die ueber diesen Thread stolpern.

Ich habe zu den oben erwaehnten Auto Tools zu ergaenzen, dass das 
config.mk ein normales Makefile sein kann, welches nur in ein anderes 
eingebettet wird. In diesem Fall darf man sehr wohl config.mk und das 
Makefile nach Belieben editieren.

von (Gast) Gast (Gast)


Lesenswert?

Sorry fuer den Doppelbeitrag, vergessen diesen Link zu posten:

https://www.gnu.org/software/make/manual/html_node/Include.html

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.