GNU/Linux >> Linux Esercitazione >  >> Linux

Limitare il comportamento di Gnu‑make al comportamento di Posix Make?

Esiste un modo noto per creare make di Linux rifiutare l'uso non intenzionale di estensioni specifiche di GNU-Make in Makefile durante la modifica o l'utilizzo di Makefile di altri in Linux? Voglio dire, limitando GNU-Make a comportarsi come make specificato in POSIX e rifiutare qualsiasi estensione specifica di GNU‑Make?

Il .POSIX obiettivo speciale non è sufficiente, secondo "4.9 Nomi speciali di destinazione incorporati (gnu.org)". La pagina man non menziona un'opzione da riga di comando per questo.

Usando un altro make l'utilità potrebbe essere un'opzione.

— Aggiornamento 19-10-2018 —

Non ho ancora trovato una risposta diretta alla mia domanda, ma ecco almeno un documento su questo problema, un documento che non esisteva al momento in cui ho posto questa domanda: A Tutorial on Portable Makefiles (nullprogram.com).

Risposta accettata:

Sono abbastanza sicuro che non ci sia modo di disabilitare le estensioni GNU make. Il .POSIX target migliora la compatibilità ma non disabilita le estensioni compatibili come funzioni, dot target proprietari, % modelli negli obiettivi, ecc.

Non conosco alcuna implementazione di marca che si attenga alle funzionalità POSIX. Ad esempio MINIX, Solaris, OpenBSD hanno tutti le proprie estensioni. Potresti almeno provare a costruire i tuoi programmi con queste quattro implementazioni (supponendo che i tuoi programmi si basino su tutte queste piattaforme), il che ti darà una garanzia di portabilità abbastanza buona in pratica. Aggiungi Windows con make utilità di Visual Studio, oltre a un port di alcuni strumenti della shell Unix, se puoi utilizzare un sistema operativo non libero (penso che ci sia una versione gratuita di VS che sarebbe sufficiente).


Linux
  1. Come ripulire le estensioni dei file?

  2. Manuale del programmatore Posix Vs Manuale del programmatore Linux?

  3. Quale Bash è in esecuzione?

  4. Qual è il significato di POSIX?

  5. Come rendere il file sparse?

Crea musica su Linux con Ardor

12 estensioni per il tuo desktop GNOME

Crea una USB persistente Kali Linux

Bash Select (Crea menu)

Come rendere eseguibile un file in Linux

PiShrink:riduci le immagini di Raspberry Pi