Как мне написать Makefile, который может отличить Intel OS X от Linux? - PullRequest
6 голосов
/ 01 июля 2011

Как записать условный файл в GNU make Makefile, который различает архитектуру (в данном случае Intel OS X против Linux), чтобы я мог установить соответствующие флаги, не требуя от конечного пользователя указывать Makefile, когда работает make -f?

EDIT

Я должен указать, что я получаю ошибку make-файла из оператора ifeq, который содержит команду оболочки, если это условие помещено вне цели:

'commands commence before first target. Stop.'

Ответы [ 2 ]

10 голосов
/ 01 июля 2011

Вы должны иметь возможность проверить вывод одного из вариантов uname, а затем выбрать различные действия с помощью makefile в зависимости от этого.

Выполнить man uname для деталей.

С точки зрения того, как вы используете ее из GNU make, вы можете получить информацию в переменную из функции shell и затем использовать ifeq для этой переменной:

platform=$(shell uname -o)

ifeq ($(platform),Cygwin)

defrule:
    echo I am running in Cygwin.

else

defrule:
    echo I am running elsewhere.

endif
1 голос
/ 01 июля 2011

uname твой друг.

$ uname -o
GNU/Linux
...