Both sides previous revision
Previous revision
|
Next revision
Both sides next revision
|
user:zeman:rizeni-pokusu-pomoci-makefilu [2009/03/26 12:00] zeman .SECONDARY |
user:zeman:rizeni-pokusu-pomoci-makefilu [2009/03/26 12:05] zeman .DELETE_ON_ERROR |
| |
Zdá se tedy, že je ideální rozdělit zpracování dat na dvě části (a zřejmě dva různě koncipované Makefily). V té první se provedou jazykově závislé operace (pro každý jazyk jiné explicitní pravidlo) a data se zkopírují ze zdrojové složky do pracovní. Druhou část tvoří již uniformní posloupnost operací s daty popsaná šablonovými pravidly. | Zdá se tedy, že je ideální rozdělit zpracování dat na dvě části (a zřejmě dva různě koncipované Makefily). V té první se provedou jazykově závislé operace (pro každý jazyk jiné explicitní pravidlo) a data se zkopírují ze zdrojové složky do pracovní. Druhou část tvoří již uniformní posloupnost operací s daty popsaná šablonovými pravidly. |
| |
| |
| |
Je také dobré si nagenerovat cíle pro úklid zejména prázdných souborů, které vzniknou, když nějaký cíl volá příkaz, který píše na standardní výstup, standardní výstup je přesměrován do souboru a zpracování příkazu skončí nějakou chybou. Dá se také nastavit v Makefilu, aby dílčí cíle po chybě mazal. Jinak tam bude soubor, který nemá správný obsah, ale bude mít dost čerstvou časovou nálepku, takže ho make po odstranění chyby nebude chtít přepracovat. Pak je těžké v tom udržet pořádek. | Je také dobré si nagenerovat cíle pro úklid zejména prázdných souborů, které vzniknou, když nějaký cíl volá příkaz, který píše na standardní výstup, standardní výstup je přesměrován do souboru a zpracování příkazu skončí nějakou chybou. Dá se také nastavit v Makefilu, aby dílčí cíle po chybě mazal. Jinak tam bude soubor, který nemá správný obsah, ale bude mít dost čerstvou časovou nálepku, takže ho make po odstranění chyby nebude chtít přepracovat. Pak je těžké v tom udržet pořádek. |
| |
Pokud Makefile obsahuje zvláštní cíl ''.SECONDARY'' bez prerekvizit, znamená to, že make nemaže soubory, které považuje za přechodné. | Pokud Makefile obsahuje zvláštní cíl ''**.SECONDARY**'' bez prerekvizit, znamená to, že make nemaže soubory, které považuje za přechodné. |
| |
| Pokud Makefile obsahuje zvláštní cíl ''**.DELETE_ON_ERROR**'' bez prerekvizit, make smaže cíle, které se změnily, ale některý příkaz v jejich pravidle skončil chybou. Je velmi vhodné tuto "volbu" zapnout. Většinu nástrojů volám tak, že píšou na ''STDOUT'', který mám přesměrovaný do souboru. Pokud nástroj skončí chybou, je většinou cílový soubor už vytvořen, byť má nulovou velikost. Má ale čerstvý údaj o čase vzniku, takže až chybu opravím a pustím make znova, make si bude myslet, že už tento soubor nemá předělávat. |
| |
===== Výpočty na clusteru ===== | ===== Výpočty na clusteru ===== |