make
(lo strumento o l'uso diretto tramite un Makefile) non è obsoleto, in particolare per "piccoli progetti personali" come lo si usa per.
Naturalmente, puoi anche usarlo per progetti più grandi, compresi quelli destinati a piattaforme multiple. Con variabili specifiche della destinazione puoi personalizzare facilmente la modalità di creazione per piattaforme diverse. Al giorno d'oggi, le distribuzioni Linux vengono fornite con toolchain di cross-compiling (ad es. mingw-w64 ) in modo da poter creare un software Windows completo pacchetto (con l'installer, se lo desideri) da Linux, tutto gestito dal tuo Makefile.
Strumenti come cmake e qmake può essere utile, ma non sono privi di problemi. Di solito sono perfetti per costruire un'applicazione stessa insieme a qualsiasi libreria (anche se ho sempre avuto problemi con qmake che fa il controllo della dipendenza tra le librerie e i programmi che li usano), ma faccio sempre fatica con i vincoli di quegli strumenti quando faccio il resto del lavoro (creazione di programmi di installazione, generazione / installazione di documentazione o file di traduzione, esecuzione di cose insolite come trasformare un archivio in una libreria condivisa, ecc.). Tutto questo può essere fatto in make
, anche se cose come il monitoraggio delle dipendenze possono richiedere un piccolo sforzo.
Gli IDE come Qt Creator ed Eclipse possono anche importare progetti basati su Makefile, così puoi condividerli con gli sviluppatori di IDE. Penso che l'IDE di Qt Creator sia eccellente come IDE C ++, ma dopo aver trascorso del tempo per diventare più efficace con Emacs, e visto che sto facendo più sviluppo su Ada, mi trovo a preferire Emacs per tutto. Per tornare alla domanda su make
, come passaggio post-link nel mio Makefile, aggiorno il mio file TAGS (per navigazione simbolica in Emacs), caricata con M-x visit-tags-table
:
find $(SRC_DIR) $(TEST_DIR) -regex ".*\.[ch]\(pp\)?" -print | etags -
O per lo sviluppo di Ada:
find $(SRC_DIR) $(TEST_DIR) -name "*.ad?" -print | etags -