Existe-t-il un moyen connu de faire en sorte que Linux make
rejette l'utilisation involontaire d'extensions spécifiques à GNU-Make dans Makefile lors de l'édition ou de l'utilisation d'autres Makefile sous Linux? Je veux dire, restreindre GNU-Make à se comporter comme make
spécifié dans POSIX et rejeter toutes les extensions spécifiques à GNU-Make?
La .POSIX
cible spéciale n'est pas suffisante, selon « 4.9 Noms de cibles spéciales intégrées (gnu.org) ». La page de manuel ne mentionne pas d'option de ligne de commande pour cela.
L'utilisation d'un autre make
utilitaire peut être une option.
- Mise à jour 2018-10-19 -
Je n'ai toujours pas trouvé de réponse directe à ma question, mais voici au moins un document sur ce problème, un document qui n'existait pas au moment où j'ai eu cette question: Un tutoriel sur les Makefiles portables (nullprogram.com) .
make
qui était destinée à être utilisée avec le "Makefile de l'autre" en question. Vous avez également dit que "la.POSIX
cible de GNU n'est pas suffisante, selon" votre lecture de certains documents, mais vous ne l'avez pas démontré avec un cas réel, ce qui est un peu problématique XY .Réponses:
Je suis sûr qu'il n'y a aucun moyen de désactiver les extensions GNU make. La
.POSIX
cible améliore la compatibilité mais ne désactive pas les extensions compatibles telles que les fonctions, les cibles de points propriétaires, les%
modèles de cibles, etc.Je ne connais aucune implémentation de marque qui colle aux fonctionnalités POSIX. Par exemple, MINIX, Solaris, OpenBSD ont tous leurs propres extensions. Vous pouvez au moins essayer de construire vos programmes avec ces quatre implémentations (en supposant que vos programmes s'appuient sur toutes ces plateformes), ce qui vous donnera une assez bonne assurance de portabilité dans la pratique. Ajoutez Windows avec l'
make
utilitaire de Visual Studio, plus un port de certains outils shell Unix, si vous pouvez utiliser un système d'exploitation non libre (je pense qu'il existe une version gratuite de VS qui serait suffisante).la source
pmake
pour tester la portabilité de mes makefiles. Il prétend qu'il s'agit d'une saveur de NetBSD. (Dans les nouvelles versions de Debian, c'est le casbmake
.)