Makefile: обрабатывать разделенные двоеточиями переменные окружения - PullRequest
0 голосов
/ 28 августа 2018

Скажем, у меня есть переменная окружения, такая как

echo $CPATH
/share/software/user/open/metis/5.1.0/include:/share/software/user/restricted/imkl/2018/mkl/include

Как я могу использовать это в Makefile, где я компилирую код с помощью gcc (или чего-то еще)? Это не похоже на работу

gcc -I$(CPATH)

поскольку gcc не может их обработать.

Какое решение является предпочтительным? Должен ли я просто указать путь внутри моего Makefile или что-то еще более элегантное?

1 Ответ

0 голосов
/ 28 августа 2018

Если вы используете GNU make, я думаю, что следующее простое (и, возможно, элегантное) решение:

gcc -I $(subst :, -I ,${CPATH})

Корпус БСД составляет:

gcc -I ${CPATH:C,:, -I ,g}

И, возможно, вы также можете использовать C_INCLUDE_PATH переменную окружения:

C_INCLUDE_PATH=${CPATH} ; gcc ...
...