GNU/Linux >> Belajar Linux >  >> Linux

Membatasi Gnu‑make Untuk Posix Make Behaviour?

Apakah ada cara yang diketahui untuk membuat make Linux tolak penggunaan GNU yang tidak diinginkan‑Buat ekstensi tertentu di Makefile saat mengedit atau menggunakan Makefile lain di Linux? Maksud saya, membatasi GNU‑Make untuk berperilaku sebagai make ditentukan dalam POSIX dan menolak GNU apa pun‑Buat ekstensi tertentu?

.POSIX target khusus tidak cukup, menurut “4.9 Nama Target Bawaan Khusus (gnu.org)”. Halaman manual tidak menyebutkan opsi baris perintah untuk ini.

Menggunakan make lain utilitas dapat menjadi pilihan.

— Pembaruan 19-10-2018 —

Saya masih belum menemukan jawaban langsung untuk pertanyaan saya, tetapi di sini setidaknya ada dokumen tentang masalah ini, dokumen yang tidak ada pada saat saya mengajukan pertanyaan ini: Tutorial tentang Makefile Portabel (nullprogram.com).

Jawaban yang Diterima:

Saya cukup yakin bahwa tidak ada cara untuk menonaktifkan ekstensi pembuatan GNU. .POSIX target meningkatkan kompatibilitas tetapi tidak menonaktifkan ekstensi yang kompatibel seperti fungsi, target titik kepemilikan, % pola dalam target, dll.

Saya tidak tahu ada implementasi make yang menempel pada fitur POSIX. Misalnya MINIX, Solaris, OpenBSD semuanya memiliki ekstensinya sendiri. Anda setidaknya dapat mencoba membangun program Anda dengan keempat implementasi ini (dengan asumsi bahwa program Anda dibangun di atas semua platform ini), yang akan memberi Anda jaminan portabilitas yang cukup baik dalam praktiknya. Tambahkan Windows dengan make utilitas dari Visual Studio, ditambah port dari beberapa alat shell Unix, jika Anda dapat menggunakan OS yang tidak gratis (saya pikir ada versi gratis dari VS yang sudah cukup).


Linux
  1. Bagaimana Cara Membersihkan Ekstensi File?

  2. Bash:Tombol Shift+panah Buat A,b,c,d?

  3. Membuat Tail -f Keluar Pada Pipa Rusak?

  1. Grep -v Perilaku Tak Terduga?

  2. Apa yang dimaksud dengan POSIX?

  3. Bagaimana cara membuat file jarang?

  1. Apa Sebenarnya Posix?

  2. Makefile untuk tidak melakukan apa-apa

  3. membuat file log