2009-02-11 10 views
9

Per il mio processo di compilazione C++, sto utilizzando Bakefile, un simpatico generatore di Makefile, che consente di specificare i target di build in XML e può generare vari Makefile o file di progetto da esso. Funziona bene e lo uso per generare gli script di autotools GNU.Generatori di makefile: premake vs bakefile?

Ora ho sentito parlare di Premake, che sembra avere una funzionalità simile. Si specificano i target in Lua e di conseguenza vengono generati Makefile.

Qualcuno conosce le differenze tra Bakefile e Premake? Qualcuno ha esperienza con entrambi? Premake sembra più recente e con uno sviluppo più attivo?

Il parser XML ticpp utilizza Premake, ma richiede di scaricare premake prima di creare ticpp. Non possono semplicemente pre-generare Makefile per vari sistemi in modo da non dover scaricare e installare prima premake?

Nota: So che ci sono diverse discussioni SO su ciò che il miglior strumento di build è, e di solito la risposta è CMake, SCons o Jam. Tuttavia, sono interessato a qualcosa che i miei utenti non dovranno scaricare prima di costruire il mio progetto.

+0

> Tuttavia, sono interessato a qualcosa che i miei utenti non dovranno scaricare prima di costruire il mio progetto. Scons e Cmake (non sono sicuro di Jam) generano anche Makefile. –

+0

Ma, generano tutto il disordine degli autotools? Basta generare un Makefile non è abbastanza. Inoltre, penso che con CMake e gli amici è possibile generare un Makefile per un determinato sistema solo se si è su un tale sistema. – Frank

+0

waf http://code.google.com/p/waf/ è progettato per essere abbastanza piccolo da aggiungerlo al tuo ptoject, quindi non un download separato. – Mark

risposta

8

Sì, Premake consente di generare un Makefile (o una soluzione di Visual Studio o ...) che è possibile distribuire, se lo si desidera. Premake stesso include i makefile pre-generati nei suoi pacchetti sorgente.

Il download e l'esecuzione di Premake sul computer di destinazione consente di personalizzare il makefile, mediante l'analisi automatizzata del sistema o manualmente tramite i flag della riga di comando. Per alcuni progetti è un valido compromesso, ma non è necessario.

9

Non è esattamente una risposta, ma consiglio con tutto il cuore premake4, è fantastico.

+1

Mi stavo sottoponendo al dolore di CMake, ma poi ho visto premake4 e la mia vita era di nuovo buona. – Skurmedel

1

Dopo aver utilizzato sia Premake 4 che new version of Bakefile, sembra che abbiano come target casi d'uso diversi.

  • Bakefile è orientato verso ciò che si desidera: generare i file di build localmente e quindi distribuire il progetto con essi. Ho avuto una grande esperienza con questo strumento.
  • Premake è più simile a CMake: generazione di makefile locale. A volte, hai un sacco di fantasiose configurazioni che devono essere eseguite sulla macchina di destinazione. Bakefile ti permette di realizzare questo usando i plugin, ma può diventare molto veloce. Tuttavia, è possibile aggiungere al file.

Per l'utilizzo, consiglio Bakefile. Sembra che tu non abbia bisogno di niente di speciale.