Question

Quelles sont les alternatives à faire pour Linux / FreeBSD?

Était-ce utile?

La solution

J'aime SCons . Il est construit de telle sorte que chaque script de compilation (un fichier SConstruct) est un programme Python syntaxiquement valide. Ainsi, vous pouvez construire une logique de Python arbitraire dans votre script de compilation si vous avez besoin.

Il est également beaucoup plus rapide que make et calcule de nombreux types de dépendances automatiquement.

Autres conseils

Ma première question serait, quel est le public. Est-ce pour la construction de logiciels en interne que seule votre équipe va construire? Si oui, explorer quelques-unes des options déjà présentées. Si cela est quelque chose que les autres seront la construction, soit en tenir à faire, ou utiliser un outil qui crée makefile et expédier ceux-ci. Nous utilisons autoconf et automake pour Linux et d'autres plates-formes unix. À mon avis, vous avez besoin d'une très bonne raison de faire autre chose que configurer; faire; make install. Boost a son propre outil (une version modifiée de Jam), et ça me énerve chaque fois que je dois essayer de le compiler sur une machine hors du commun.

CMake et imake sont à la fois construire des services publics, bien que imake ne soit plus maintenue. CMake est également multi-plateforme et peut être utilisé sous Windows ainsi.

Si vous êtes en java, ANT est un outil de construction orientée vers Java (qui ne joue pas vraiment bien avec Make).

Troll Tech font un outil appelé qmake , qu'ils utilisent pour construire l'intervalle QT. Il fonctionne en génération de Makefile - Troll avait besoin d'un outil pour soutenir une construction multi-plateforme -. Si vous avez besoin encore une autre utilitaire make

Automake: p qui est couramment utilisé dans la plupart des distributions d'applications linux mais il donne un peu plus de travail qu'un Makefile mais de meilleurs résultats http://www.gnu.org/software/automake/

http://www.openismus.com/documents/linux/automake /automake.shtml <- bonne explication sur la façon d'utiliser automake et autoconf

Si vous cherchez quelque chose de complètement différent, il y a Ant . Je ne suis pas intéressé par moi-même, mais il offre quelques avantages de la portabilité (pas de dépendance envers le shell unix, etc.)

Je l'ai entendu de bonnes choses à propos de Jam .

omake est un outil de construction pour C / C ++, OCaml et latex avec dépendance automatique une analyse. Il peut facilement construire des projets sur plusieurs répertoires, et il trouve des changements basés sur la somme MD5 plutôt que l'horodatage. Il dispose également d'un mode où il peut être exécuté en arrière-plan, la construction de votre projet chaque fois qu'un fichier est modifié. En général, il faut moins de code pour construire types communs de projets (C / C ++ ou programmes et bibliothèques OCaml) que faire ne. Je ne l'ai pas essayé pour les grands projets.

Notez que si vous souhaitez programmer en OCaml, cet outil est vraiment utile car l'éditeur de liens OCaml nécessite compilé des modules à apparaître sur la ligne de commande afin de dépendance, et déterminer cet ordre chaque fois que quelque chose change est non trivial.

Je l'ai utilisé CMake pour plus de mes projets, y compris le portage des autotools base et ceux que je peux dire qu'il fait très bien son travail. Il est surtout adapté à des projets multiplateformes de C / C.

Le projet que je travaille sur un code hérité qui utilise Cons au lieu de Make (ne pas confondre avec SCons dans la réponse de Greg Hewgill).

Cons est écrit en Perl, un peu comme SCons est écrit en Python. Il gère automatiquement les dépendances, et vous pouvez utiliser un code Perl dans le script de compilation pour gérer des séquences de construction complexes.

Le principal inconvénient (et la principale raison pour laquelle je suis désolé mon projet utilise) est que Cons ne fait pas parallèle construit dans le style de make -j. Si vous compilez un certain nombre de fichiers qui ne dépendent pas les uns des autres Cons leur compiler un à la fois, alors que make -j leur compilation en parallèle, ce qui est génial si vous avez plusieurs noyaux et les fils sur votre machine.

Une autre pour faire multiplateforme construit est kmake (une partie de kbuild, dans ses propres mots:. kbuild est un cadre de makefile pour écrire makefiles simples pour des tâches complexes ). Il est une version améliorée de make GNU. Il est développé par les gens VirtualBox. Ils l'utilisent pour construire leur VirtualBox produit pour Windows, Linux, MacOS et Solaris. portable Jolie!

Voir http://svn.netlabs.org/kbuild pour plus de détails.

WAF est une alternative intéressante. Écrit en python, il vous permet d'écrire votre logique de construction en Python ordinaire. Parallèle construit + semi-auto-signature magique basée sur le travail de suivi des dépendances assez bien. Il est censé être multi-plateforme (à savoir sait comment faire construit sur Windows), mais je n'ai pas essayé.

Il a une courbe d'apprentissage assez raide, mais il est également livré avec "Le WAF livre " pour aider le processus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top