Hạn chế GNU ‑ Make to POSIX Thực hiện hành vi


12

Có cách nào để làm cho Linux maketừ chối sử dụng GNU ngoài ý muốn ‑ Tạo các phần mở rộng cụ thể trong Makefile khi chỉnh sửa hoặc sử dụng Makefile khác trong Linux không? Ý tôi là, hạn chế GNU Make để hành xử như makeđược chỉ định trong POSIX và từ chối mọi GNU ‑ Tạo các phần mở rộng cụ thể?

Các .POSIXmục tiêu đặc biệt là không đủ, theo “ 4.9 đặc biệt Built-in Target Names (gnu.org) ”. Trang man không đề cập đến một tùy chọn dòng lệnh cho việc này.

Sử dụng một maketiện ích khác có thể là một lựa chọn.

- Cập nhật 2018-10-19 -

Tôi vẫn chưa tìm thấy câu trả lời trực tiếp cho câu hỏi của mình, nhưng ít nhất đây là một tài liệu về vấn đề này, một tài liệu không tồn tại vào thời điểm tôi có câu hỏi này:  Hướng dẫn về Makefiles di động (nullprogram.com) .


Nhìn vào danh sách này , không rõ là có hoặc chưa từng có một POSIX nghiêm ngặt nào - vì vậy có lẽ sẽ hợp lý hơn khi bắt đầu thay vì makesử dụng với "Makefile khác" trong câu hỏi. Bạn cũng đã nói rằng " .POSIXmục tiêu của GNU là không đủ, theo" việc bạn đọc một số tài liệu, nhưng bạn chưa chứng minh điều này với một trường hợp thực tế, đó là một vấn đề XY nhỏ .
goldilocks

@goldilocks, X là về việc kiểm tra một hạn chế mà tôi muốn tuân theo (để chỉnh sửa và sửa đổi) do thiếu thông thạo GNU ‑ Tạo các đặc điểm và để giúp tôi biết về sự hiện diện của một số đặc thù (khi có). Mắt ‑ kiểm tra là lỗi dễ bị, không thể cơ giới hóa và tôi thích tránh lỗi house nhà dễ bị tạo các bộ lọc grep / sed / awk để kiểm tra và thu hút sự chú ý của tôi.
Hibou57

Tôi cũng không phải là phù thủy, nhưng sẽ tốt hơn nếu hỏi trực tiếp về điều đó? (Nếu vậy, Stack Overflow có thể là một nơi tốt hơn cho nó.)
goldilocks

Bạn có thể đúng. Nhân tiện, sau khi tôi đăng nó, lần đầu tiên tôi đã xóa rồi lại xóa câu hỏi này (không chắc chắn về địa điểm). Sau này tôi có thể hỏi lại về Stack Overflow như bạn đề xuất. Cảm ơn sự quan tâm của bạn.
Hibou57

Câu trả lời:


6

Tôi khá chắc chắn rằng không có cách nào để vô hiệu hóa GNU tạo tiện ích mở rộng. Các .POSIXmục tiêu cải thiện khả năng tương thích nhưng không mở rộng tương thích không vô hiệu hóa như chức năng, chấm mục tiêu độc quyền, %các mẫu trong các mục tiêu, vv

Tôi không biết về bất kỳ triển khai nào dính vào các tính năng POSIX. Ví dụ MINIX, Solaris, OpenBSD đều có tiện ích mở rộng riêng. Ít nhất bạn có thể cố gắng xây dựng các chương trình của mình với bốn triển khai này (giả sử rằng các chương trình của bạn xây dựng trên tất cả các nền tảng này), điều này sẽ mang lại cho bạn sự đảm bảo tính di động khá tốt trong thực tế. Thêm Windows với maketiện ích từ Visual Studio, cộng với một cổng của một số công cụ shell Unix, nếu bạn có thể sử dụng HĐH không miễn phí (Tôi nghĩ rằng có một phiên bản VS miễn phí là đủ).


3
Trên Debian Linux, tôi đang sử dụng pmakeđể kiểm tra tính di động của tệp tạo tệp của mình. Nó tuyên bố nó là hương vị từ NetBSD. (Trong các phiên bản mới hơn của Debian là vậy bmake.)
Palec
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.