giovedì 4 aprile 2013

make love, not war

Adoro la cultura Unix!
E adoro la possibilita' di inserire degli "easter egg" nei programmi, ovvero delle piccole sorprese, il piu' delle volte mirate a far sorridere l'utente o il sysadmin.

Ecco allora che il super-comando make, se invocato con il target speciale "love", risponde con il classico slogan. La versione GNU dei sistemi Linux e' invece piu' seria e rigorosa, e risponde con un messaggio di errore poiche' il target "love" non esiste...




Se si controlla il sorgente del make Unix, in particolare in job.c, si trova il seguente pezzo di codice che, ovviamente, spiega il funzionamento:

#ifndef WITHOUT_OLD_JOKE
                    if (strcmp(gn->name,"love") == 0)
                               (*abortProc)("Not war.");
                     else
#endif

Nessun commento: