make dep is unnecessary now

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
fluid
Beiträge: 494
Registriert: 14.11.2003 21:52:49

make dep is unnecessary now

Beitrag von fluid » 09.01.2004 18:18:58

Hi,

ich benutze beim Kernelbauen immer `make dep` (Nein, nicht nach Debian-Way). Nun kommt immer die Meldung, dass es nicht nötig sei, `make dep` auszuführen. Bisher dachte ich, mein Verzeichnis wäre halt so weit aufgeräumt, dass es nicht nötig sei. Ich habe mir aber gerade mal im Makefile angeschaut, was `make dep` machen soll, und die obige Meldung ist fest drin, kommt also immer. Kann ich davon ausgehen, dass der Befehl nicht mehr aktuell ist und in Zukunft weggelassen werden kann?

Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Beitrag von fred19726 » 09.01.2004 18:27:08

dass der Befehl nicht mehr aktuell ist und in Zukunft weggelassen werden kann?
seit dem 2.6er kernel ist das der fall da fällt auch make modules und make bzImage weg 8)
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein

Benutzeravatar
pil
Beiträge: 629
Registriert: 30.04.2002 15:47:27

Beitrag von pil » 09.01.2004 19:57:00

fred19726 hat geschrieben: seit dem 2.6er kernel ist das der fall da fällt auch make modules und make bzImage weg 8)
Leider. So toll finde ich das nicht, dass mögliche Differenzierungen durch die Rasenmähermethode ersetzt werden.

Beispiel: Mit make modules konnte man bisher die Module alleine kompilieren (nur Änderungen in menuconfig an irgendwelchen Modulen vorausgesetzt.)

Ab 2.6. muss man stattdessen das gesamte make [all] (inkl. Kompilierung des gesamtes Kernels) durchführen. :x

Benutzeravatar
se8i
Beiträge: 1017
Registriert: 08.11.2002 17:02:20
Wohnort: nähe Karlsruhe
Kontaktdaten:

Beitrag von se8i » 09.01.2004 20:00:25

blöde frage: was ist dann der vorteil daran?

Indy500
Beiträge: 380
Registriert: 18.04.2003 05:03:40

Beitrag von Indy500 » 09.01.2004 20:14:13

Ab 2.6. muss man stattdessen das gesamte make [all] (inkl. Kompilierung des gesamtes Kernels) durchführen
Dummfug. Wenn man ein Modul hinzufügt oder vorher einkompilliertes zum Modul macht, wird auch nur das Modul gebaut. Es ist auch nicht nötig "make all" einzugeben, ein simples "make" reicht um ALLES zu bauen.

Da ich "all" noch nicht benutzt habe, liegt es wohl genau daran das ALLES gebaut wird auch wenn mann nur ein Modul hinzufügt/ändert.

Benutzeravatar
pil
Beiträge: 629
Registriert: 30.04.2002 15:47:27

Beitrag von pil » 09.01.2004 20:45:42

Indy500 hat geschrieben: Dummfug.
Kein Dummfug, ich bin selber schon über diese Rasenmäherfalle gestolpert.

make = make all

Und wenn nur eine Moduleinstellung geändert wird, sorgt make dafür, dass alles durchläuft. Dann musste halt abwarten.

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 09.01.2004 20:48:26

Ist nicht der Sinn eines Makefile das nur die nötigen (aghängigen) Teile bei einer Änderung neu übersetzt werden? Oder ist das bei Änderungen an der konfig nicht so? (Ich übersetze eher selten Kernels und wenn dann auf die Debian-Art)
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Beitrag von fred19726 » 09.01.2004 21:02:10

das man make modules nich mehr machen muss heißt nicht das es nicht mehr geht:

"make help" sagt folgendes:

Code: Alles auswählen

...

Other generic targets:
  all             - Build all targets marked with [*]
* vmlinux         - Build the bare kernel
* modules         - Build all modules
  modules_install - Install all modules
  dir/            - Build all files in dir and below
  dir/file.[ois]  - Build specified target only
  rpm             - Build a kernel as an RPM package
  tags/TAGS       - Generate tags file for editors

Documentation targets:
  Linux kernel internal documentation in different formats:
  sgmldocs (SGML), psdocs (Postscript), pdfdocs (PDF)
  htmldocs (HTML), mandocs (man pages, use installmandocs to install)

Architecture specific targets (i386):
* bzImage       - Compressed kernel image (arch/i386/boot/bzImage)
  install       - Install kernel using
                   (your) ~/bin/installkernel or
                   (distribution) /sbin/installkernel or
                   install to $(INSTALL_PATH) and run lilo
  bzdisk       - Create a boot floppy in /dev/fd0
  fdimage      - Create a boot floppy image

  make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
  make O=dir [targets] Locate all output files in "dir", including .config
  make C=1   [targets] Check all c source with checker tool

Execute "make" or "make all" to build all targets marked with [*] 
For further info see the ./README file
was bedeutet das wenn du make (all) machst automatisch auch make modules aufgerufen, aber du kannst trozdem wenn es dir beliebt z.b. wenn du nur an den modulen was verändert hast make modules machen und musst den Kernel nich mehr komplett neu kompilieren.

also: don't panic 8)
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein

Indy500
Beiträge: 380
Registriert: 18.04.2003 05:03:40

Beitrag von Indy500 » 09.01.2004 21:19:53

Und wenn nur eine Moduleinstellung geändert wird, sorgt make dafür, dass alles durchläuft. Dann musste halt abwarten.
Das ist definitiv falsch. Ich kompilliere mehrmals die Woche bzw. ändere Module oder füge hinzu und bei mir hat der noch NIE den kompletten Kernel neu gemacht. Es werden immer nur die Module kompilliert und ggf. einige Dateien die damit in Beziehung stehen.

Antworten