Обмеження GNU-Make до POSIX Зробити поведінку


12

Чи відомий спосіб зробити так, щоб Linux makeвідкинув навмисне використання GNU-Зробити конкретні розширення в Makefile під час редагування або використання Makefile інших в Linux? Я маю на увазі обмеження GNU-Make змусити себе діяти так, як makeзазначено в POSIX, і відхилити будь-які GNU ‑ Make конкретні розширення?

.POSIXСпеціальна мета мало, в відповідно до « 4.9 Special Вбудований Цільових імен (gnu.org) ». Сторінка man не згадує для цього варіант командного рядка.

Використання іншої makeутиліти може бути варіантом.

- Оновлення 2018-10-19 -

Я досі не знайшов прямої відповіді на моє запитання, але ось принаймні документ про це питання, документ, який не існував на той момент, коли у мене виникло це запитання:  Навчальний посібник з портативних Makefiles (nullprogram.com) .


Дивлячись на цей список , не зрозуміло, що існував або коли-небудь існував суворий POSIX - так що, можливо, має більше сенсу почати замість того, makeщо було призначене для використання з відповідним "чужим Makefile". Ви також сказали, що " .POSIXціль GNU недостатня, згідно з" читанням якоїсь документації, але ви не продемонстрували це фактичним випадком, що є трохи проблемою XY .
goldilocks

@goldilocks, X стосується перевірки обмеження, якого я хотів би дотримуватися (для редагування та модифікації) через відсутність освоєння специфік GNU-Make, і щоб допомогти мені бути обізнаним про наявність деяких особливостей (коли вони є). Перевірка очей є схильною до помилок, не може бути механізованою, і я вважаю за краще уникати помилкових фільтрів grep / sed / awk, виготовлених помилками, щоб перевірити і звернути свою увагу.
Hibou57

Я також не є майстром майстра, але чи не було б краще про це прямо запитати? (Якщо так, переповнення стека може бути кращим місцем для цього.)
goldilocks

Можливо ти правий. До речі, після того як я опублікував це, я спершу видалив, а потім знову відмінив це питання (не знав про місце). Пізніше я можу надіслати запит на переповнення стека, як ви запропонуєте. Дякую за вашу турботу.
Hibou57

Відповіді:


6

Я майже впевнений, що немає можливості відключити розширення GNU. .POSIXМета покращує сумісність , але не відключає сумісні розширення , такі як функції, власні цілі, точкові %візерунки в цілі і т.д.

Я не знаю жодної реалізації реалізації, яка дотримується функцій POSIX. Наприклад, MINIX, Solaris, OpenBSD мають усі власні розширення. Ви можете принаймні спробувати створити свої програми за допомогою цих чотирьох реалізацій (якщо припустити, що ваші програми будуються на всіх цих платформах), що дасть вам досить хорошу надійність на практиці. Додайте Windows за допомогою makeутиліти Visual Studio, а також порт деяких інструментів оболонки Unix, якщо ви можете використовувати невільну ОС (я думаю, що є достатня версія VS, якої було б достатньо).


3
На Debian Linux я використовую pmakeдля тестування портативності моїх файлів. Він стверджує, що це аромат від NetBSD. (У новіших версіях Debian це bmake.)
Палець
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.