Il s'agit de la commande makepp_release_notes qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
makepp_release_notes -- Changements majeurs dans chaque version de makepp
DESCRIPTION
Version 2.1 (Sous développement)
· Builtin &template mini-documentation en langue réécrite. Il dispose désormais d'un
"@comprendre(nom de fichier)@" macro.
· C Scanner prend désormais en compte les variables de chemin spécifiques au compilateur telles que
"C_INCLUDE_PATH" ou "LIB".
· Les parenthèses s'emboîtent désormais comme dans GNU make ou Shell : "$(name ...()...)"
· Nouvelle variable d'environnement "MAKEPP_DEBUG".
· Les paramètres d'installation par défaut pour html-doc et man ont légèrement changé.
· La nouvelle option "--loop" est le successeur de "--stop-after-loading", qu'elle améliore
pour avoir une longueur d'avance pour chaque cycle de compilation d'édition dans une boucle sans fin.
· Les instructions "include" et les fonctions "find-first-upwards" et "find-upwards"
ne cherchera plus plus haut qu'un Fichier RootMakepp, s'il y en a un.
· Le style gmake de mettre la règle pour créer un fichier d'inclusion après l'inclusion
L'instruction n'est pas recommandée, mais maintenant prise en charge. Ainsi l'option "--defer-include"
a été retiré.
· Toutes les fonctionnalités antérieures à la version 2.0 qui émettaient des avertissements obsolètes sont éliminées, de même que
$Mpp::Makefile::legacy_functions et $MAKEPP_INSTALL_OLD_MODULES.
· Vous pouvez utiliser la nouvelle option makeppinfo, mppi "--unremembered" pour repérer qui n'est plus nécessaire
fichiers.
· Vous pouvez utiliser le nouveau makeppreplay, option mppr "--sed" pour rejouer une commande différemment,
par exemple pour arrêter après le prétraitement ou pour ajouter des options de débogage à l'éditeur de liens.
· Il y avait une fonctionnalité non documentée (et légèrement boguée) par laquelle faire .makepp/log
unwritable supprimerait la journalisation. Maintenant, à la place, il revient à "--verbose", donc vous
devez passer "--no-log" si vous le souhaitez. Cette option et quelques autres étaient déjà
disponible pour makeppreplay, mppr, mais non documenté.
· Au moins Perl 5.8 est requis.
Version 2.0 (Mars (2012)
Les articles sont grossièrement classés par âge croissant, vous n'avez donc besoin de lire que les premières parties
si vous avez utilisé des instantanés plus récents que 1.40.
· L'instruction de signature ne remplace plus la méthode trouvée par les analyseurs de commandes -- maintenant
vous devez fournir le mot-clé "override" si vous le souhaitez. Il y a une nouvelle signature
méthodes "xml" et "xml-space". La signature "c_compilation_md5" peut désormais également être
invoqué en tant que "C" (car les signatures concernent des fichiers, pas des actions). Il (et son
sous-classes) peuvent maintenant être facilement étendus à d'autres suffixes comme dans "C.ipp,tpp" signifiant
qu'outre les suffixes intégrés, il s'appliquera également aux fichiers se terminant par .ipp or .tpp.
Grâce à ce makeppreplay et Embedded SQL/C fonctionne désormais de manière plus fiable. Il faut se méfier: ceci.
is pas compris by plus versions. So ne le font pas Appelez-nous an plus député on des choses construit avec
ceci. version, qui inclut grâce au a dépôt vous construit dans.
· Le mot clé "global" peut précéder les "build_cache", "build_check" et "signature"
instructions et l'instruction « define » qui permet désormais également « exporter ». Donc s_
les sous-marins obtiennent maintenant un 4ème paramètre, une référence de hachage avec les mots-clés rencontrés comme clés.
· Les Makefiles sont maintenant analysés avec la même priorité que dans gmake. D'où « inclure : » ou
"include =" sont maintenant des instructions (pas d'espace : encore une règle ou une affectation.) Cela signifie que
"perl {qualified::name }" ne disparaît plus mystérieusement (c'était un
règle.) Désormais, les noms de variables peuvent contenir des espaces. Cela signifie que "&preprocess
--assignment" traitera à peu près n'importe quel signe égal comme une affectation (remplacez-les par
$E du devoir amusant "E==".)
· Si vous avez un cache de build fédéré sur plusieurs disques et que certains d'entre eux sont
préféré, vous devez modifier leur build_cache_options.pl et remplacer PREFERRED par
xPRÉFÉRÉ. (Cela reflète un changement général dans les noms où nous préfixons maintenant par 'x' tous
xATTRIBUTES qui sont vrais s'ils existent).
· La variable "VPATH" et l'instruction "vpath" sont maintenant émulées.
· Les fonctions Makefile ("sub f_...") peuvent maintenant obtenir leur 1er paramètre sous forme de chaîne
référence. Dans ce cas, vous êtes responsable de développer vos arguments. Utilisez le
les fonctions d'accès &arg ou "args" décrites dans les extensions makepp. Jusqu'à ce que tu fasses le tour
pour mettre à jour vos fonctions, vous pouvez désactiver cela en définissant
"$Mpp::Makefile::legacy_functions = 1" soit dans votre makefile (un par système de build
suffit, car il s'agit d'une variable Perl) ou corrigez-la dans votre nouvelle installation makepp. Si
vous voulez que vos fonctions mises à jour fonctionnent à la fois avec votre ancien et ce nouveau makepp, utilisez
"ref $_[0] ? &arg : $_[0]" ou "ref $_[0] ? args(...) : $_[0]" dans la phase de transition.
Dans "$(call)", les variables spéciales "$0, $1, ..., $(11), ..." sont maintenant développées
comme toute autre variable make. Cela provoque de légères différences par rapport au travail précédent
environ. Le résultat est plus proche de gmake, du moins si "makepp_simple_concaténation=1" est
défini.
· Les makefiles générés par CMake ne conduisent plus à une récursion profonde.
· Le nouveau scanner "esql_compilation" pour SQL C intégré, couvre désormais toutes les bases de données. Vous devez
fournir les règles, cependant.
· Nouvelle option --hybrid-recursive-make (suivez chaque lien d'option, pour voir des formulaires plus courts) comme
une alternative plus intelligente à --traditional-recursive-make.
La nouvelle option --stop-after-loading donne à makepp une longueur d'avance pendant que vous êtes encore en train d'éditer.
Nouvelles options --rm-stale, --sandbox et --dont-read, pour le contrôle du sandbox lors de l'exécution
plusieurs commandes makepp concurrentes (éventuellement distribuées).
Makepp recherchera désormais également des options dans les fichiers appelés .makepprc. L'option
--args-file est désormais disponible de manière cohérente sur toutes les commandes.
La variable d'environnement MAKEPP_CASE_SENSITIVE_FILENAMES remplace les options
--case-sensitive-filenames et --no-case-sensitive-filenames.
Suppression de l'option "--keep-repository-links", dont le comportement est désormais celui par défaut.
Tous les utilitaires interrogent désormais également une variable d'environnement pour les options de préréglage. Chacun
est appelé comme l'utilitaire en majuscules, avec FLAGS ajoutés, par exemple $MAKEPPCLEANFLAGS ou
$MAKEPPLOGFLAGS.
Les options de ligne de commande courtes peuvent maintenant être regroupées à la manière d'Unix, donc "-k -j 4" peut être
donné comme "-kj4". Dans toutes les options longues, le tiret entre les mots peut désormais être systématiquement
omis ou remplacé par un trait de soulignement, de sorte que "--no-log" peut être "--nolog" ou
"--no_log". Les options inconnues provoquent maintenant une erreur.
· A l'origine "makeppclean" "-l" signifiait "--leave-src-info", mais maintenant les options ont été
étendu et celui-ci a été remplacé par "-k|--keep-src-info".
· La terminologie de numérisation a été nettoyée (et la page réécrite) pour enfin correspondre à un
refonte qui a eu lieu il y a quelques années. Il y a maintenant 3 termes distincts, le lexer
(dont les utilisateurs n'ont pas à s'inquiéter), les parseurs (de commande) et le (fichier)
scanneurs.
Pour les utilisateurs avancés : La nouvelle interface se compose du "register_parser" ou
les instructions "register_command_parser", l'option de règle ":parser" et l'analyseur "p_*"
les fonctions d'usine qui sont aliasées à leur classe d'analyseur en tant que "usine". Le mal nommé
instruction "register_scanner", option de règle ":scanner" et ":scanner_*" ou ":parser_*"
les fonctions sont obsolètes.
· Nouvelle variable MAKEPP_VERSION.
· Toutes les classes internes ont été déplacées vers le nouveau package "Mpp ::" afin de respecter le CPAN
règles, et pour éviter une collision potentielle avec tout module que vous pourriez charger dans votre
makefiles. Ceci est transparent pour les utilisateurs occasionnels de makepp.
Au cas où vous auriez fait de la programmation Perl pour vos makefiles et que vous ayez utilisé certains
internes, cela casserait votre build. Il y a donc un retour temporaire
fonctionnalité de compatibilité, à supprimer à l'avenir, que vous pouvez activer pendant
installation. La nouvelle variable d'environnement $MAKEPP_INSTALL_OLD_MODULES est vérifiée
une liste des anciens modules que vous souhaitez créer comme enveloppes autour des nouveaux. en outre
si vous avez des makefiles, vous ne pouvez pas changer rapidement, car ces éléments sont
disponible sans instruction "use", vous devez préfixer ces modules avec un "+", pour obtenir
les préchargés :
MAKEPP_INSTALL_OLD_MODULES='+Règle globale +MakeEvent'
· Nouveau makeppreplay, utilitaire mppr pour répéter très rapidement certaines actions de makepp. Nouveau
makepplog, utilitaire mppl pour voir les données du journal de manière lisible, nécessaire en raison d'un fichier modifié
format. Nouveau makeppgraph, utilitaire mppg pour analyser graphiquement les dépendances, comprend
et en partie les raisons d'une reconstruction. Nouveau makeppinfo, utilitaire mppi pour voir un peu
de manière cryptique ce que makepp sait à propos d'un fichier.
· Porté sur les services système IBM z/OS Unix. Seul le make récursif intelligent ne fonctionne pas.
· Makepp est devenu sensiblement plus rapide.
· Abolir le renommage fantaisiste non documenté de seulement '.' à '_dot_' dans la variable et
noms de fonction.
· Nouvelle variable $/ pour le séparateur de répertoire portable. De nombreux correctifs Windows, y compris
"-j" (compilations parallèles) pour Cygwin et MinGW et les versions récursives intelligentes sur Cygwin.
· Installez également des abréviations composées de « mpp » plus la première lettre de chaque
mot suivant, par exemple 'mppc' pour makeppclean.
· Nouveau `:build_check only_action' pour les commandes qui ne dépendent pas du contenu de leur
dépendances, comme la création de lien symbolique, où il est utilisé automatiquement.
· Suppression de "--norc-substitution" et "--percent-subdirs" et "$(rc_substitution)" et
"percent_subdirs". Ils doivent maintenant être donnés n'importe où à partir d'une affectation spécifique à la cible
à la ligne de commande ou aux variables d'environnement "makepp_simple_concaténation" et
"makepp_percent_subdirs".
· Nouvelle syntaxe d'action "&perl_function 'arg 1' arg2 ..." et "&external-perl-script 'arg 1'
arg2 ..." Nouvelle fonction Perl "run".
Il existe les commandes intégrées suivantes : &chmod, &cp, &cut, &echo, &expr, &grep,
&installer, &ln, &mkdir, &mv, &perl, &prétraiter, &printf, &rm, &sed, &trier, &modèle,
&touch, &uninstall, &uniq et &yes, qui peuvent remplacer les commandes Unix du même nom,
et plus ou moins aussi les suivants : "awk", "chgrp", "chown", "head", "m4", "rmdir",
"queue" et "tr". Ils sont également disponibles de manière autonome auprès de Shell. Ils peuvent aussi
être utilisé en tant que fonctions, par exemple "$(&cat file)", ou en tant qu'instructions, ou autonome.
Notez que, contrairement aux versions précédentes de CVS, "&cut -f", "&grep -v" et "&sort -r" maintenant
se comporter comme sous Unix. Notez que dans les versions antérieures de CVS de &template "@@" était traité
avant "@", mais maintenant les lignes sont systématiquement traitées d'avant en arrière.
· Ajout d'une déclaration « globale » pour le partage des variables à travers les makefiles. La tâche
La variante de "export" fonctionne maintenant comme une affectation normale, vous devrez donc peut-être passer à
":=". Ajout du modificateur "override" aux devoirs. L'instruction "define var :="
permet désormais facultativement de spécifier le type d'affectation. Et les formulaires avec immédiate
évaluation conserve les nouvelles lignes dans "$(shell ...)" ou "$(&command)". il y a du nouveau
opérateurs d'affectation "&=" pour le préfixe, et ";=" qui est un "=" lorsqu'il est défini, mais
se transforme automatiquement en ":=" lors de la première utilisation.
· Un makefile est désormais également trouvé s'il s'appelle "Makeppfile.mk".
· Il y a deux nouveaux noms de fichiers possibles pour les makefiles : "RootMakeppfile" ou équivalent
"RootMakeppfile.mk". La présence de l'un ou l'autre donne à votre arbre de construction un aspect formel
root, accessible via la nouvelle variable "$(ROOT)". L'avantage est que ce fichier
est toujours chargé en premier, s'il est présent, ce qui vous permet de créer plus facilement un système de construction
où makepp peut être appelé de n'importe où, sans lui dire quel makefile démarrer
à.
La racine du système de fichiers est alors automatiquement marquée pour "--dont-build", de sorte que
makepp n'entre pas dans les autres répertoires que vous incluez ou utilisez les bibliothèques, juste
car ils ont un Makefile ou des sources.
Cela signifie généralement que la racine de votre système de construction est marquée pour "--do-build".
Si, cependant, vous dites "--do-build" pour quelque chose sous la racine de votre système de construction, ce qui
n'hérite pas de "--dont-build", alors à la place, la racine de votre système de construction est marquée pour
"--ne-construisez pas".
· Suppression de la commande "makeppclient" car nous n'avons jamais réussi à laisser les builds démarrer
nettement plus rapide. L'option "--stop-after-loading" est plus avantageuse.
· Les fichiers de définition d'interface pour SWIG (fichiers .i) sont maintenant analysés pour les inclusions. Makepp
comprend maintenant les invocations de swig. (SWIG signifie Simplified Wrapper and Interface
Générateur. Il génère automatiquement toutes les fonctions wrapper pour lier votre C ou C++
code à une variété d'autres langages tels que Perl, Python, Tcl, Ruby, OCaml, C#, etc.
See http://www.swig.org/.)
· GNU Emacs 22 a maintenant un makefile-makepp-mode standard, qui est la valeur par défaut lorsque
visite Makeppfile.
· $[VARIABLE] ou $[function ...] est évalué lors de la lecture d'une ligne de makefile, donc le
La variable peut contenir la syntaxe makepp.
· $( ...) est désormais toujours une liste en substitution de style rc, de sorte que "-I$( $(DIRLIST))"
ne laissez aucune option solitaire lorsque DIRLIST est vide.
· Vous pouvez désormais doubler les fonctions de parenté et les listes multilignes, permettant des choses comme
"$((perl if( $a < 5 ) { ... }))".
· Nouvelle signature "c_compilation_md5", qui permet également d'ajouter des espaces là où il y avait
aucun et inversement. Il ignore également les espaces et les commentaires après le dernier jeton.
Ceci est utile pour empêcher une reconstruction inutile si votre VC ajoute des lignes à un "$""Log$"
tag lors de l'enregistrement.
· Mettre en œuvre $? exactement comme le fait GNU make. Nouveau nom long "$(changed_inputs)" pour cela.
· Implémentez "$(error ...)" et "$(warning ...)" comme dans GNU make.
· Nouvelle méthode " : build_check ignore_action" pour ignorer les modifications apportées à la chaîne d'action.
· Nouvelles instructions "ifperl", "ifmakeperl", "iftrue", "ifntrue", "ifsys" et "ifnsys".
· Les conditionnels "ifxxx" peuvent maintenant être regroupés avec "et" et "ou". Lorsqu'il est écrit sur le même
ligne après "else", ils créent une branche de la même instruction, plutôt que d'exiger
nidification.
· Prise en charge supplémentaire des dépendances sur les variables d'environnement, en utilisant l'option de règle ":env".
· Diverses corrections de gestion des signaux.
· Nouvelle commande "makeppclean" qui supprime efficacement les fichiers générés sans chargement
makefiles.
· Porté sur MinGW.
· Nouveaux caches de construction, pour mettre en cache des fichiers identiques. Cela signifie que si vous modifiez un
fichier et revenir, alors vous pouvez faire revenir makepp au .o immédiatement précédent
fichier sans reconstruire. Ou vous pouvez partager des versions de fichiers identiques entre des
arbres sources. Groupement nouvellement ajouté de caches de construction pour les grandes configurations, pouvant s'étendre
plusieurs machines.
· Au moins Perl 5.6 est requis.
Version 1.40 (Décembre (2004)
Merci à Anders Johnson et Daniel Pfeiffer pour les contributions majeures du code à ce
libérer.
· Trop de corrections de bogues à énumérer individuellement. Les correctifs les plus importants sont probablement de faire
cela fonctionne de manière beaucoup plus fiable sur Cygwin, mais il y avait aussi des correctifs pour la variable
extension, numérisation, référentiels, etc.
· Architecture de l'analyseur de commandes et de l'analyseur de fichiers réécrits afin qu'elle soit plus facilement
extensible. Makepp prend désormais en charge Verilog (un langage utilisé pour la conception de puces) en plus
vers C++ et Fortran. Il devrait être relativement simple de prendre en charge des
langues. (Anders Johnson)
· Nouvelle commande "makeppclient" qui permet aux builds de démarrer plus rapidement. (Daniel Pfeiffer)
· Si vous avez Perl 5.6.0 ou supérieur, la documentation HTML est désormais fournie avec le nouveau
logo de chameau et coloration syntaxique dans les exemples. (Daniel Pfeiffer)
· Nombreuses corrections et améliorations de la documentation. (Principalement Autres Johnson)
· Prise en charge de l'instruction "define" de GNU make pour définir des valeurs de variables multilignes.
· $(PWD) et $(CURDIR) fonctionnent désormais comme dans GNU make.
· Nouvelle option "--keep-repository-links" pour empêcher makepp de supprimer tous les logiciels
les liens qu'il crée lors de la création de référentiels.
· Nouvelles options "--assume-old", "--assume-new" et "--dont-build", et prise en charge de la
option "-n".
· La prise en charge des règles de double deux-points s'est légèrement améliorée, afin que nous puissions gérer les makefiles
produit par MakeMaker sans trop de problèmes.
· Ajout de la syntaxe pour exécuter le code Perl en tant qu'instruction et dans les règles "perl { ... }" ou
"makeperl { ... }". Ajout de fonctions pour évaluer les instructions Perl "$(perl ... )" ou
"$(makeperl ... )". Ajout de l'instruction "makesub { ... }". (Daniel Pfeiffer)
· Les options courtes peuvent maintenant être directement suivies d'un argument comme dans -j4. Options documentées
--jobs, --keep-going, --makefile, --what-if, --assume-new, --new-file, --assume-old &
--old-file sont maintenant vraiment acceptés. (Daniel Pfeiffer)
Version 1.19 (Juillet (2003)
Remerciements particuliers à Matthew Lovell et Chris van Engelen pour leurs nombreuses suggestions et
traquer les problèmes dans le code.
· La documentation a été réorganisée afin que des pages de manuel ainsi que des pages HTML puissent être produites,
et un livre de cuisine/FAQ a été ajouté (voir makepp_cookbook).
· Un script "configurer" a été ajouté afin que l'installation ressemble plus à d'autres produits logiciels
du point de vue de l'utilisateur.
· La fonction "$(origin )" de GNU make est désormais prise en charge.
· Les variables spécifiques à la cible sont désormais prises en charge comme dans GNU make, sauf qu'elles ne
propager leurs valeurs aux dépendances.
· Nouvelles fonctions "$(find_upwards )" et "$(relative_filename )" (contribué par Matthew
Lovell) et "$(relative_to )".
· Dans les commandes de compilation, "-I dir" et "-L dir" sont désormais pris en charge et fonctionnent comme
"-Idir" et "-Ldir".
· La recompilation des fichiers C se produira désormais si un commentaire multiligne a été inséré, ou si
la numérotation des lignes a changé de quelque façon que ce soit. Auparavant, il ignorait les nouvelles lignes en informatique
la somme de contrôle, ce qui signifie qu'un changement affectant les informations du débogueur pourrait ne pas forcer un
recompilation.
· Un bogue dans "$(shell )" qui l'a amené à retourner une chaîne nulle de temps en temps (surtout
lorsque le système était fortement chargé) a été corrigé.
· Les fichiers ou répertoires illisibles suppriment l'importation à partir des référentiels mais ne le sont pas
assortis de caractères génériques.
· Quelques autres bogues mineurs ont été corrigés.
Version 1.18 (Janvier (2002)
Le changement le plus important était la prise en charge de l'environnement de construction Cygwin. Vous pouvez maintenant courir
makepp avec la version Cygwin de Perl ; Je ne pense pas que cela fonctionnera correctement avec le
version Windows native de Perl pour le moment.
Quelques autres corrections de bogues sont entrées dans cette version.
Version 1.10 (Février (2001)
Le changement le plus important dans cette version est que makepp peut accepter un nombre beaucoup plus grand
de makefiles sans aucune option de ligne de commande en raison de certaines modifications apportées au
implémentation de make récursif. Il y a quelques améliorations mineures dans le make GNU
compatibilité et une légère amélioration de l'utilisation de la mémoire.
Il y a plusieurs changements visibles par l'utilisateur :
· "c_compilation_md5" est maintenant la méthode de signature par défaut. Cela signifie que par défaut,
makepp ne recompilera pas les modules C/C++ si seuls les espaces ou les commentaires ont changé.
· Une nouvelle méthode de signature "md5" a été ajoutée, qui exécute une somme de contrôle MD5 sur le fichier
Contenu. Ceci n'est pas activé par défaut ; makepp utilise toujours sa méthode d'origine
("exact_match") pour tous les fichiers autres que les fichiers source C/C++.
En raison de ces changements, makepp va tout recompiler la première fois que vous l'exécutez.
Version 1.05
En plus des corrections de bogues, cette version a un changement visible par l'utilisateur. Les
L'option de ligne de commande "--norc-substitution" a été introduite pour permettre une gestion compatible de
espace dans les makefiles.
Version 0.99 (Janvier (2001)
En plus de nombreuses corrections de bugs, cette version comporte plusieurs modifications visibles par l'utilisateur :
· Les cibles multiples d'une règle sont désormais traitées d'une manière plus compatible avec les anciennes
makefiles. Makepp a un algorithme heuristique pour deviner si la règle est supposée
pour créer toutes les cibles à la fois ou si la règle doit être invoquée plusieurs fois.
Je ne pense pas que cela brisera les makefiles existants, mais cela devrait permettre à makepp de
travailler avec beaucoup plus de makefiles conçus pour Unix make.
· L'option "--traditional-recursive-make" peut être utilisée pour les makefiles hérités qui utilisent
invocations récursives de make d'une manière qui ne fonctionnait pas avec la valeur par défaut de makepp
la mise en œuvre.
· Les référentiels fonctionnent désormais avec libtool.
· Les paramètres de variables sont désormais autorisés avec l'instruction "load_makefile" et avec
faire récursif.
Version 0.95
Cette version comporte plusieurs modifications visibles par l'utilisateur :
· Un tutoriel sur l'écriture de makefiles pour makepp a été ajouté.
· Les conditions de style GNU make (ifeq/ifneq/ifdef/ifndef) sont désormais prises en charge, tout comme
Fonction "$(si )".
· Par défaut, le caractère générique « % » correspond désormais uniquement aux fichiers d'un répertoire ; "%.c" est maintenant
équivalent à "*.c", et non à "**/*.c". La raison de ce changement était que les règles
jamais besoin d'utiliser le caractère générique plus compliqué, et cela a souvent causé des
répertoires à rechercher. Vous pouvez obtenir l'ancien comportement en spécifiant
"--percent-subdirs" sur la ligne de commande. (Je suis curieux de savoir ce que les gens pensent de ça
monnaie. Veuillez me faire savoir si vous avez de bonnes raisons pour que ce soit à sens unique ou le
autre.)
· Par défaut, les makefiles de tout répertoire contenant une dépendance ou
recherchés par un caractère générique, sont chargés automatiquement. Cela signifie généralement que vous n'avez pas besoin
aucune instruction "load_makefile". Si cela vous pose problème, vous pouvez désactiver
chargement implicite de makefiles en ajoutant "--no-implicit-load" à la ligne de commande.
(Je suis curieux de savoir si les gens aiment ou n'aiment pas le chargement implicite de makefiles.)
· Une cible peut maintenant être déclarée fausse sur la même ligne qui définit la cible en utilisant
la nouvelle fonction "$(phony )", comme ceci :
$(phony all): programme_1 programme_2
La fonction "$(phony )" renvoie simplement ses arguments, mais les marque comme faux
cibles. Vous pouvez toujours utiliser l'ancienne syntaxe qui ressemble à ceci :
tout : programme_1 programme_2
.PHONY : tous
La fonction "$(phony )" est une tentative pour améliorer la lisibilité des makefiles. Identifiant
bienvenue à d'autres suggestions, car je ne suis toujours pas entièrement satisfait de la syntaxe.
Version 0.90
Afin de prendre en charge des fonctionnalités telles que la fabrication parallèle, la plupart des composants internes devaient être
réorganisé ou réécrit. Le résultat est beaucoup plus propre et, espérons-le, plus fiable.
Les bugs trop nombreux pour être mentionnés ont été corrigés. Afin d'assurer la fiabilité, un test
suite a été développée. Il ne teste pas encore absolument tout, mais il teste
la plupart des choses, et j'espère le rendre plus étendu à l'avenir. Vous pouvez l'exécuter en tapant
"makepp test" dans le répertoire de distribution makepp. Si un makepp non modifié échoue, le
suite de tests, s'il vous plaît laissez-moi savoir afin que je puisse le réparer.
Il y a beaucoup de nouvelles fonctionnalités :
· Les référentiels sont désormais pris en charge.
· Il est désormais possible de spécifier différentes méthodes de calcul et de comparaison de fichier
signature. Par exemple, vous pouvez utiliser une somme de contrôle MD5 en ignorant les commentaires et
espace, ou vous pouvez simplement exiger que la cible soit plus récente que les dépendances
(la méthode que la fabrication traditionnelle utilise).
· Les Makefiles ne sont reconstruits que s'ils sont plus anciens que leurs dépendances ; un autre
La méthode de signature est utilisée dans ce cas particulier.
· Les versions parallèles sont désormais prises en charge, bien qu'il s'agisse toujours d'une fonctionnalité expérimentale. Voir
l'option "-j".
· Il est maintenant possible d'écrire vos propres fonctions. Voir la déclaration "sous" et
makepp_extending pour plus de détails.
· Les noms de fichiers avec des caractères tels que deux points ou espace sont désormais pris en charge avec une nouvelle citation
syntaxe.
· Des noms synonymes et moins cryptiques pour les variables automatiques ont été introduits pour
encourager des makefiles plus lisibles.
· Makepp se souvient maintenant de l'architecture de la machine sur laquelle vous avez construit et reconstruit si le
l'architecture est différente.
· Les répertoires peuvent désormais être des cibles ou des dépendances ; une restriction précédente que tous
répertoires devaient exister avant que le début de la construction ne soit levé.
· Makepp écrit maintenant un fichier journal appelé ".makepp_log" expliquant pourquoi il a été reconstruit
tout. Ceci est extrêmement utile pour le débogage.
· L'option habituelle "-k" pour continuer à construire même lorsqu'une erreur se produit est maintenant
prise en charge.
· La documentation a été réorganisée et étendue.
Il y a aussi (malheureusement) quelques incompatibilités avec les versions précédentes :
· Le format de fichier pour stocker les informations sur la dernière version a changé. Ainsi makepp
insistera pour tout reconstruire la première fois que vous exécutez la nouvelle version.
· load_makefile ne prend plus en charge les cibles ou les paramètres variables. Il prend désormais en charge
charger une liste de makefiles plutôt qu'un seul, donc le commutateur "-F" est maintenant
inutile (et n'est plus documenté).
· La fabrication récursive ignore maintenant les paramètres variables sur la ligne de commande. Ceci est nécessaire
pour charger les makefiles de manière cohérente.
· "$(INFERRED_OBJS)" n'est plus pris en charge (car ce n'était pas une interface bien conçue
De toute façon). Utilisez plutôt la nouvelle fonction "$(infer_objects)".
· $_ n'est plus pris en charge. Utilisez "$(foreach)" à la place.
· Quelques options de make GNU rarement utilisées telles que "-s", "-n" et "-q" ne sont plus
pris en charge en raison de changements d'architecture interne. "-n" sera probablement à nouveau pris en charge
dans les versions futures.
· Une page de manuel n'est plus fournie puisque la documentation n'est plus écrite dans le
Format de pod Perl. Utilisez plutôt la documentation HTML.
· La cible de nettoyage automatique n'est plus prise en charge. Une meilleure façon de le faire est avec
"$(seulement_cibles)".
Utilisez makepp_release_notes en ligne à l'aide des services onworks.net