GNU/Linux >> Tutoriels Linux >  >> Linux

Restreindre Gnu-make au comportement Posix Make ?

Existe-t-il un moyen connu de créer le make de Linux rejeter l'utilisation involontaire d'extensions spécifiques à GNU-Make dans Makefile lors de l'édition ou de l'utilisation du Makefile d'un autre sous Linux ? Je veux dire, restreindre GNU-Make pour qu'il se comporte comme le make spécifié dans POSIX et rejeter toutes les extensions spécifiques à GNU-Make ?

Le .POSIX la cible spéciale n'est pas suffisante, selon "4.9 Noms de cibles intégrés spéciaux (gnu.org)". La page de manuel ne mentionne pas d'option de ligne de commande pour cela.

Utiliser 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'avais cette question : A Tutorial on Portable Makefiles (nullprogram.com).

Réponse acceptée :

Je suis presque sûr qu'il n'y a aucun moyen de désactiver les extensions GNU make. Le .POSIX target améliore la compatibilité mais ne désactive pas les extensions compatibles telles que les fonctions, les cibles de points propriétaires, % modèles dans les cibles, etc.

Je ne connais aucune implémentation de make qui colle aux fonctionnalités POSIX. Par exemple MINIX, Solaris, OpenBSD ont tous leurs propres extensions. Vous pourriez au moins essayer de construire vos programmes avec ces quatre implémentations (en supposant que vos programmes se construisent sur toutes ces plates-formes), ce qui vous donnera une assez bonne assurance de portabilité dans la pratique. Ajouter Windows avec le make utilitaire de Visual Studio, plus un portage 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 suffirait).


Linux
  1. Qu'est-ce que Posix exactement ?

  2. Bash :Maj+Flèches Make A,b,c,d ?

  3. Faire sortir Tail -f sur un tuyau cassé ?

  4. Grep -v Comportement inattendu ?

  5. Manuel du programmeur Posix Vs Manuel du programmeur Linux ?

Faire de la musique sur Linux avec Ardour

12 extensions pour votre bureau GNOME

Créer une clé USB persistante Kali Linux

Bash Select (créer des menus)

Comment rendre un fichier exécutable sous Linux

PiShrink - Rendre les images Raspberry Pi plus petites