Make

Post Reply
Message
Author
axeljaeger

Make

#1 Post by axeljaeger »

Wenn ich mir ein Linuxprogramm irgendwo herunterlade, bekomme ich es in der Regel im Quelltext. AUßer den cpp datin gibt es da noch ein paar andere Dateien
Makefile.am
makefile.in
configure.guess
configure

usw.

Was soll das?
Ich hab schon rausgekriegt, das ./configure macht einem ein Makefile, und das kann man mit Make + cpp dateien in ein Programm übersetzen. Ich finde diese Lösung ziemlich unpraktisch, Ich könnte auch sagen umständlicher geht es nicht mehr. Ich fange an, selber in C Programme zu schreiben, und mache mir immer ein kleines Shellskript mit dem gcc aufruf + bibliothekenschalter.

Könnt ihr mir sagen:
- Was diese ganzen dateien bringen?
- Wie ich selber dieses System in meinen eigenen Programmen verwende

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: Make

#2 Post by hjb »

Hi,

diese Dateien stammen von GNU autoconf/automake und bringen unabhängigkeit von der Plattform bzw. der Systemkonfiguration. Für Programmierer gibt es zahlreiche Unterschiede zwischen den verschiedenen Unixen, und wenn man die alle in seinen Skripten berücksichtigen wollte, würde man verzweifeln. Selbst Programme, die autoconf/automake nicht verwenden, machen meist etwas Ähnliches (z.B. Perl).

Wo liegen die Unterschiede zwischen den Systemen?
- Compiler (Name, Pfad, Optionen)
- libc (C-Standard-Funktionen sind überall vorhanden, aber was ist mit den Erweiterungen wie snprintf?)
- Systemaufrufe (Unterschiede System V und BSD ...)
- Utilities (Argumente, Einschränkungen)
- Installationspfade
- Wo sind Bibliotheken installiert (/usr, /usr/local, /usr/ucb, /opt...)- Workarounds für systemspezifische Bugs


und wahrscheinlich noch mehr.

Und warum verwendet man Makefiles statt Shellskripten? Weil es wesentlich effizienter ist.

autoconf/automake habe ich noch nie selbst verwendet, aber wenn du eine Entwicklungsumgebung wie KDevelop verwendest, wird das automatisch verwendet und funktioniert, ohne daß du dich drum kümmern mußt.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: Make

#3 Post by bakunin »

Hi!

Unter http://sources.redhat.com/autobook/download.html gibt es ein freies Buch über automake und autoconf. Diese zu verwenden ist für Programmierer wahnsinnig bequem, sobald man sich mal eingearbeitet hat. Ein Script, das alles neu compiliert, mag für sehr kleine Programme ausreichend sein, aber für alles etwas Umfangreichere wäre das eher ungeeignet.

Der größte Vorteil ist aber die Einheitlichkeit, die dadurch erzeugt wird. Heute kann man Dank autoconf/automake bei nahezu jedem Programm die make-Targets verwenden, die in den GNU Coding Standards definiert wurden, d.h. Dinge wie "make distclean" und "make install-strip" funktionieren immer.

Cheers,
GNU/Wolfgang

axeljaeger

Re: Make

#4 Post by axeljaeger »

also, ich hab meine cpp dateien, und wie mache ich jetzt diese ./configure und so?

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: Make

#5 Post by bakunin »

Hi!

Lies das Buch, das ich in meinem Posting erwähnt hatte. Oder lies "info autoconf" und "info automake". Das kann man nicht mal eben erklären.

Cheers,
GNU/Wolfgang

Post Reply