GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Beschränken Sie Gnu-make auf Posix-Make-Verhalten?

Gibt es einen bekannten Weg, um make von Linux zu erstellen die unbeabsichtigte Verwendung von GNU-Make-spezifischen Erweiterungen in Makefile ablehnen, wenn das Makefile eines anderen unter Linux bearbeitet oder verwendet wird? Ich meine, GNU-Make darauf beschränken, sich wie make zu verhalten in POSIX angegeben und alle GNU-Make-spezifischen Erweiterungen ablehnen?

Die .POSIX spezielles Ziel ist laut „4.9 Special Built-in Target Names (gnu.org)“ nicht genug. Die Manpage erwähnt dafür keine Befehlszeilenoption.

Verwenden eines anderen make Dienstprogramm kann eine Option sein.

— Aktualisierung 19.10.2018 —

Ich habe immer noch keine direkte Antwort auf meine Frage gefunden, aber hier ist zumindest ein Dokument zu diesem Problem, ein Dokument, das zu dem Zeitpunkt, als ich diese Frage hatte, noch nicht existierte: A Tutorial on Portable Makefiles (nullprogram.com).

Akzeptierte Antwort:

Ich bin mir ziemlich sicher, dass es keine Möglichkeit gibt, GNU-Make-Erweiterungen zu deaktivieren. Die .POSIX target verbessert die Kompatibilität, deaktiviert jedoch nicht kompatible Erweiterungen wie Funktionen, proprietäre Punktziele, % Muster in Zielen usw.

Ich kenne keine make-Implementierung, die sich an POSIX-Funktionen hält. Zum Beispiel MINIX, Solaris, OpenBSD haben alle ihre eigenen Erweiterungen. Sie könnten zumindest versuchen, Ihre Programme mit diesen vier Implementierungen zu erstellen (vorausgesetzt, Ihre Programme bauen auf all diesen Plattformen auf), was Ihnen in der Praxis eine ziemlich gute Portabilitätsgarantie gibt. Fügen Sie Windows mit make hinzu Dienstprogramm von Visual Studio sowie eine Portierung einiger Unix-Shell-Tools, wenn Sie ein unfreies Betriebssystem verwenden können (ich denke, es gibt eine kostenlose Version von VS, die ausreichen würde).


Linux
  1. Bash:Umschalt+Pfeiltasten Machen A,b,c,d?

  2. Grep -v Unerwartetes Verhalten?

  3. Posix-Programmierhandbuch vs. Linux-Programmierhandbuch?

  4. Welche Bash wird ausgeführt?

  5. Wie macht man eine Datei spärlich?

Machen Sie Musik unter Linux mit Ardour

12 Erweiterungen für Ihren GNOME-Desktop

Erstellen Sie einen Kali Linux Persistent USB

Bash Select (Menüs erstellen)

Wie man eine Datei unter Linux ausführbar macht

PiShrink – Machen Sie Raspberry Pi-Bilder kleiner