Как найти версию qcc в Makefile?

Подобный вопрос уже задавался для gcc. Однако qcc немного отличается (см. вывод версии ниже).

qcc -V
cc: targets available in /opt/qnx641/host/linux/x86/etc/qcc:
    4.3.3,gcc_ntoarmle_cpp
    4.3.3,gcc_ntoshle_acpp
    4.3.3,gcc_ntox86_cpp
    4.3.3,gcc_ntoppcbe
    4.3.3,gcc_ntomipsbe_cpp
    4.3.3,gcc_ntoshle_cpp
    4.3.3,gcc_ntoarmle_gpp
    4.3.3,gcc_ntoshle_ecpp-ne
    4.3.3,gcc_ntoshle_cpp-ne
    4.3.3,gcc_ntomipsbe_gpp
    4.3.3,gcc_ntomipsle_ecpp
    4.3.3,gcc_ntox86        (default)
    4.3.3,gcc_ntoppcbe_cpp-ne
    4.3.3,gcc_ntox86_ecpp-ne
    4.3.3,gcc_ntoshle_acpp-ne
    4.3.3,gcc_ntoppcbespe_acpp
    4.3.3,gcc_ntoppcbe_ecpp-ne
    4.3.3,gcc_ntomipsle
    4.3.3,gcc_ntoppcbe_ecpp
    4.3.3,gcc_ntoarmle_ecpp
    4.3.3,gcc_ntox86_gpp
    4.3.3,gcc_ntoshle_gpp
    4.3.3,gcc_ntoshle
    4.3.3,gcc_ntomipsbe_ecpp-ne
    4.3.3,gcc_ntomipsbe_acpp-ne
    4.3.3,gcc_ntoarmle
    4.3.3,gcc_ntomipsbe_acpp
    4.3.3,gcc_ntomipsle_cpp-ne
    4.3.3,gcc_ntoppcbespe_cpp
    4.3.3,gcc_ntoppcbespe_ecpp-ne
    4.3.3,gcc_ntox86_acpp-ne
    4.3.3,gcc_ntox86_acpp
    4.3.3,gcc_ntomipsle_acpp
    4.3.3,gcc_ntomipsle_acpp-ne
    4.3.3,gcc_ntoarmle_cpp-ne
    4.3.3,gcc_ntomipsbe_cpp-ne
    4.3.3,gcc_ntomipsle_ecpp-ne
    4.3.3,gcc_ntoppcbespe_ecpp
    4.3.3,gcc_ntoppcbespe_cpp-ne
    4.3.3,gcc_ntox86_ecpp
    4.3.3,gcc_ntoshle_ecpp
    4.3.3,gcc_ntoppcbespe_acpp-ne
    4.3.3,gcc_ntoppcbe_gpp
    4.3.3,gcc_ntoppcbe_acpp-ne
    4.3.3,gcc_ntoppcbespe_gpp
    4.3.3,gcc_ntoppcbe_cpp
    4.3.3,gcc_ntomipsbe_ecpp
    4.3.3,gcc_ntoppcbe_acpp
    4.3.3,gcc_ntoarmle_acpp-ne
    4.3.3,gcc_ntox86_cpp-ne
    4.3.3,gcc_ntomipsbe
    4.3.3,gcc_ntomipsle_cpp
    4.3.3,gcc_ntoarmle_acpp
    4.3.3,gcc_ntomipsle_gpp
    4.3.3,gcc_ntoarmle_ecpp-ne
    4.3.3,gcc_ntoppcbespe

Мне нужно сделать общий make-файл, чтобы различать два разных компилятора: тот, что выше, и версию 3.3.5.

Я знаю, как это сделать с помощью gcc (как показано здесь: Проверка версии gcc в Makefile?). Однако я не могу понять, как использовать это для создания ifeq или ifdef, которые будут работать с выводом, который я получаю от qcc.

Любые идеи?

EDIT Интересует только компилятор ntox86/ntox86_cpp


person Sagar    schedule 29.03.2012    source источник
comment
Я так понимаю, что вывод выше относится к версии 4.3.3, а вывод из версии 3.3.5 будет иметь тот же формат. Итак, вы хотите знать, как получить 4.3.3 или 3.5.5, а затем использовать технику ifeq, верно?   -  person Beta    schedule 30.03.2012
comment
Это правильно. Я пытался использовать ` | grep ntox86`, чтобы сократить список, но это не сработало.   -  person Sagar    schedule 30.03.2012


Ответы (1)


Пытаться

qcc -V | sed -n '/,/{s/,.*//;p;q}'

EDIT:
Как странно. Это займет несколько итераций. Не могли бы вы попробовать эти два эксперимента:

sed --version

а также

qcc -V | sed -n
person Beta    schedule 30.03.2012
comment
Нет радости. Он распечатал то же самое, что и выше, включая весь список - person Sagar; 30.03.2012
comment
qcc-V | sed -n напечатал использование, за которым сразу же последовал тот же список, что и выше. - person Sagar; 03.04.2012
comment
Оказывается, qcc отправлял свой список на стандартный вывод, а не на стандартный вывод. Я использовал ваш метод, за исключением того, что мне пришлось добавить 2›&1 к команде. - person Sagar; 22.09.2012