Il GNU Build System, comunemente noto come Autotools, è una suite di strumenti di programmazione progettata per assistere nel rendere i pacchetti di codice sorgente portabili su molti sistemi Unix-like. L'estensione di file .am si riferisce specificamente ai file Automake, che fungono da modelli per la generazione di Makefile portabili. Questi file sono scritti in una sintassi di alto livello che descrive la struttura del progetto, inclusi file sorgente, header ed eseguibili o librerie di destinazione. Quando lo strumento 'automake' viene eseguito, elabora questi file .am per creare i file Makefile.in. Successivamente, uno script 'configure'—generato da Autoconf—utilizza questi file Makefile.in per produrre il Makefile finale adattato all'ambiente specifico del sistema dell'utente. Questo processo a più stadi assicura che il software possa essere compilato e installato in modo coerente attraverso diverse architetture hardware e distribuzioni di sistemi operativi. Autotools gestisce compiti complessi come il tracciamento delle dipendenze, la compilazione incrociata (cross-compilation) e i percorsi di installazione, che altrimenti richiederebbero uno sforzo manuale significativo e conoscenze specifiche della piattaforma da parte dello sviluppatore. Rimane uno standard nella comunità open-source per i progetti in C e C++.