Domanda

Quali sono alcune alternative a fare per Linux / FreeBSD?

È stato utile?

Soluzione

Mi piace SCons . E 'costruito in modo tale che ogni script di build (un file SConstruct) è anche un programma Python sintatticamente valido. Così, si può costruire la logica Python arbitrario nel vostro script di build se è necessario.

E 'anche molto più veloce di make e calcola automaticamente molti tipi di dipendenze.

Altri suggerimenti

La mia prima domanda sarebbe, quello che è il pubblico. E 'questo per la costruzione di in-house software che solo la tua squadra costruirà? Se è così, esplorare alcune delle opzioni già presentate. Se questo è qualcosa che gli altri saranno in costruzione, sia attaccare con marca, o utilizzare uno strumento che crea makefile e spedire quelli. Usiamo autoconf e automake per le altre piattaforme UNIX e Linux. A mio parere, è necessario un buon motivo per fare qualcosa di diverso da configurare; rendere; make install. Boost ha il proprio strumento (una versione modificata di Jam), e mi dà fastidio ogni volta che ho bisogno di cercare di farlo per compilare su una macchina insolita.

CMake e imake sono entrambi costruire utilità, anche se imake non è più mantenuto. CMake è anche multi-piattaforma e può essere utilizzato su Windows pure.

Se siete in java, ANT è uno strumento di compilazione orientato a Java (che in realtà non giocare bene con make).

Tech Troll fanno uno strumento chiamato qmake , che usano per costruire QT. Funziona makefiles che generano - Troll aveva bisogno di uno strumento per sostenere un accumulo cross-platform -. Quindi è ancora bisogno di un altro programma di utilità fanno

Automake: p che è comunemente usato in molte distribuzioni Linux app ma dà un po 'più di lavoro di un Makefile, ma i risultati migliori http://www.gnu.org/software/automake/

http://www.openismus.com/documents/linux/automake /automake.shtml <- bella spiegazione su come utilizzare automake e autoconf

Se siete alla ricerca di qualcosa di completamente diverso, non c'è Ant . Non sono così interessato a me stesso, ma offre alcuni vantaggi di portabilità (nessun affidamento sulla shell UNIX, ecc.)

Ho sentito parlare bene di Jam .

Omake è un tool di creazione per C / C ++, OCaml, e LaTeX con la dipendenza automatica analisi. E 'facilmente in grado di costruire progetti su più directory, e si trova cambia in base somma MD5 invece di timestamp. Essa ha anche una modalità in cui può essere eseguito in background, costruendo il progetto ogni volta che un file viene modificato. In generale, ci vuole meno codice per costruire tipi comuni di progetti (C / C ++ o programmi OCaml e librerie) di marca fa. Non ho provato per progetti più grandi.

Si noti che se si desidera programmare in OCaml, questo strumento è davvero utile in quanto il linker OCaml richiede moduli a comparire sulla riga di comando in ordine di dipendenza compilato, e cercare di capire questo ordine ogni volta qualcosa cambia non è banale.

Ho usato CMake per più dei miei progetti, tra cui il porting di alcuni autotools quelli a base e posso dire che fa il suo lavoro molto bene. E 'particolarmente adatta per progetti multi-piattaforma C / C ++.

Il progetto su cui sto lavorando ereditato un codice che utilizza Cons invece di Make (da non confondere con SCons nella risposta di Greg Hewgill).

Cons è scritto in Perl, molto simile a SCons è scritto in Python. Gestisce le dipendenze automaticamente, ed è possibile utilizzare qualsiasi codice Perl all'interno dello script di build per gestire le sequenze di costruire complesse.

Lo svantaggio principale (e la ragione principale mi dispiace il mio progetto lo usa) è che Cons non fa parallelamente costruisce nello stile di make -j. Se si sta compilando una serie di file che non dipendono l'uno dall'altro Cons compilerà uno alla volta, mentre make -j li compilerà in parallelo, che è grande se si dispone di più core e thread sulla macchina.

Un altro fare per il cross-platform costruisce è kmake (una parte del kbuild, nelle sue stesse parole:. kbuild è un framework per la scrittura di makefile makefile semplici per compiti complessi ). Si tratta di una versione migliorata del GNU make. È sviluppato dalla gente di VirtualBox. L'usano per costruire la loro VirtualBox del prodotto per Windows, Linux, MacOS e Solaris. Abbastanza portatile!

Per ulteriori informazioni, vedere http://svn.netlabs.org/kbuild .

WAF è un'alternativa interessante. Scritto in Python che permette di scrivere la logica di generazione in Python pianura. Parallelo costruisce + semi-auto-magic basata su firme dipendenza lavoro di monitoraggio ragionevolmente bene. E 'presumibilmente cross-platform (cioè sa fare si basa su Windows), ma non ho provato.

E 'ottenuto una curva di apprendimento piuttosto ripida, ma si tratta anche con "Il WAF libro " per aiutare con il processo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top