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).