makefile $ (()) в another () приводит к двойным скобкам - PullRequest
0 голосов
/ 28 декабря 2018

В моем make-файле я хочу вывести файл с форматом вывода команды size, используя содержимое выводов команды readelf.

Я могу успешно выполнять команды в сценарии оболочки, но когда я помещаю команды в make-файл, $((16#$${hex})) не работает, поэтому dec не имеет значений.Я предполагаю, что цвет текста пользовательского интерфейса vim может быть последним ) из $((16#$${hex})), который не соответствует должным образом.Я не совсем знаком с makefile, кто-нибудь знает, как с этим справиться?

size.txt : Makefile
    $(MAKE) objs
    echo " text    data     bss     dec     hex filename ">$@
    (for X in `find . -name '*.o' -print` ; do \
        hex=`readelf -S -W $$X | grep '\sAX\s' | sed 's/\s\s*/ /g' | cut -d ' ' -f 8`; \
        dec=`echo $((16#$${hex}))`;\
        echo " $${dec}   0    0    $${dec}    $${hex} $$X"; \
    done) >>$@

Теперь вывод 0 0 00000030 xxxx.o и ожидаемый вывод 48 0 0 48 00000030 xxxx.o.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...