GNU/Linux >> Znalost Linux >  >> Linux

Omezit chování Gnu-make na Posix Make?

Existuje nějaký známý způsob, jak vytvořit v Linuxu make odmítnout nezamýšlené použití specifických rozšíření GNU-Make v Makefile při úpravách nebo používání jiných Makefile v Linuxu? Myslím tím omezení GNU-Make, aby se chovalo jako make specifikované v POSIX a odmítnout jakákoli specifická rozšíření GNU-Make?

.POSIX speciální cíl nestačí, podle „4.9 Special Built-in Target Names (gnu.org)“. Manová stránka pro to nezmiňuje volbu příkazového řádku.

Použití jiného make utilita může být možností.

— Aktualizace 2018-10-19 —

Stále jsem nenašel přímou odpověď na svou otázku, ale zde je alespoň dokument o tomto problému, dokument, který v době, kdy jsem měl tuto otázku, neexistoval: Výukový program pro přenosné soubory Makefiles (nullprogram.com).

Přijatá odpověď:

Jsem si docela jistý, že neexistuje způsob, jak zakázat rozšíření GNU make. .POSIX target zlepšuje kompatibilitu, ale nezakazuje kompatibilní rozšíření, jako jsou funkce, proprietární tečkové cíle, % vzory v cílech atd.

Nevím o žádné implementaci značky, která by se držela funkcí POSIX. Například MINIX, Solaris, OpenBSD mají svá vlastní rozšíření. Můžete se alespoň pokusit vytvořit své programy pomocí těchto čtyř implementací (za předpokladu, že vaše programy staví na všech těchto platformách), což vám v praxi poskytne docela dobrou jistotu přenositelnosti. Přidejte Windows pomocí make nástroj z Visual Studia plus port některých unixových shell nástrojů, pokud můžete použít nesvobodný OS (myslím, že existuje bezplatná verze VS, která by stačila).


Linux
  1. Jak vyčistit přípony souborů?

  2. Posix Programmer’s Manual versus Linux Programmer’s Manual?

  3. Který Bash se provádí?

  1. Co přesně je Posix?

  2. Jak vytvořit VPN

  3. vytvořit soubor protokolu

  1. Bash:Shift+šipky Udělat A,b,c,d?

  2. Nechat Tail -f vyjet na prasklé potrubí?

  3. Grep -v Neočekávané chování?