text: make - paralelizace
  AbcLinuxu:/ Poradna / Programovací poradna / make - paralelizace
  Štítky: kompilace, Makefile, problém, smazat
  Dotaz: make - paralelizace
  29.5.2015 22:28 diggit
  Makefile (1014 bytů)
  Ahoj, mám problém s mým Makefile. Nastavil jsem proměnou prostředí MAKEFLAGS="j5". Když zavolám make vše se zkompiluje a slinkuje do binárky jak má. Pokud ale zavolám make clean all aby se vše vyčistilo a rebuildnulo, paralelizace to pokazí. Začne se provádět clean, mezitím se přeskočí kompilace zdrojáků protože jejich .o soubory ještě clean nestihl smazat. Jakmile však dojde na linkování tak už není co linkovat protože clean dodělal svojí práci a všechny .o soubory smazal a make skončí chybou.
  Jde nějak v Makefile vynutit aby se společně s clean nespouštělo nic dalšího?
  29.5.2015 23:11 diggit
  Rozbalit Rozbalit vše Re: make - paralelizace
  Teď jsem našel podobnej problém. Šlo by v hlavním Makefile vynutit sériové zpracovávání pomocí .NOTPARALLEL : a pak z něj volat další Makefile již s paralelním zpracováváním, kde by bylo vše kolem kompilace. Jen jsem myslel, jestli není nějaký elegantnější způsob...
  30.5.2015 00:13 chrono
  Dá sa použiť niečo takéto Parallel makefile require depency ordering, netuším ale, či to je elegantnejšie.
  30.5.2015 07:29 petr_p | skóre: 59 | blog: pb
  Řekl bych, že make neřeší mizení cílů. Určitě ne z paralelně běžících úloh. Takže bych doporučil make clean; make all.