Tutti quelli che tra voi sviluppano software per GNU/Linux si saranno spesso trovati ad avere a che fare con automake, il sistema che permette di generare MakeFiles e header dinamicamente, ovvero il classico ./configure && make && make install che il più delle volte bisogna digitare per compilare un programma da sorgente.
Tuttavia, automake non è sicuramente facile da utilizzare, e richiede tempo per poterne sfruttare le grandi potenzialità. Sono state sviluppate altre alternative decisamente interessanti al classico sistema di Build, che spesso facilitano molto il lavoro allo sviluppatore, e aggiungono anche nuove potenzialità. Uno di questi è CMake, salito agli onori della cronaca per essere il make system ufficiale di KDE4.
Le ragioni per cui la scelta è ricaduta su CMake sono molteplici, prima tra tutte il fatto che è un compilatore cross-platform, e che quindi può compilare codice su tutti i sistemi operativi (a patto che il codice stesso sia in grado di funzionare sul sistema operativo per il quale si compila).
Inoltre, CMake è estremamente modulare, il che consente di scrivere veri e propri "plugin" che possono essere riutilizzati in qualunque progetto basato su CMake. Per finire, l´unica cosa che deve scrivere il programmatore è un file chiamato CMakeLists.txt, che è un insieme di macro tramite il quale si definisce tutto il sistema di compilazione.
CMake è un sistema complesso, adatto quindi a progetti abbastanza grossi: dato il suo potenziale sarebbe inutile utilizzarlo per progetti di piccola portata, per i quali utilizzare automake è più produttivo e forse anche più facile. Tuttavia può essere di grande aiuto, soprattutto quando è necessario compiere delle operazioni significative a tempo di build.
Sicuramente non è un´alternativa facile e immediata, ma può rendere la vita molto più facile a molti: personalmente sto utilizzando CMake per un mio progetto e ne sono molto soddisfatto da tutti i punti di vista, anche perché a mio avviso la sintassi è più intuitiva di quella di automake.