hnsk
10-11-2014, 01:16
Необходимо собрать порт для freebsd.
Запнулся, казалось бы, на очень простой вещи.
Есть список файлов в pkg-plist нужно его прогнать через цикл и разложить в нужные места, скажем в ${PREFIX}
Есть Makefile c целю pre-install с содержимым:
pre-install:
@FILES!=${CAT} ${PLIST} | ${XARGS}
${ECHO} ${FILES}
Cудя по man make все должно работать.
!= Expand the value and pass it to the shell for execution and
assign the result to the variable. Any newlines in the result
are replaced with spaces.
Но не работает:
#make pre-install
FILES!=/bin/cat: not found
echo
#
Причем:
# whereis cat
cat: /bin/cat /usr/share/man/man1/cat.1.gz
Заменя переменных на абсалютные пути ни к чему не приводит.
Меняем на:
pre-install:
@FILES= ${CAT} ${PLIST} | ${XARGS}
${ECHO} ${FILES}
# make pre-install
login.access nsswitch.conf
echo
#
Тут команды экзекутятся, но не присваивается к FILES. echo - ничего не выводит.
Собвсенно вопрос: где ошибка?:)
PS: не обращайте внимание на название целей и прочее. Сделано исключительно для демонстрации ошибки.
FreeBSD 9.2-STABLE
какой версии make сказать не могу pkg which молчит.
быстрое гугление дало только
strings `which make` | grep -B1 MAKE_VERSION
9201210220
MAKE_VERSION
Спасибо.
Запнулся, казалось бы, на очень простой вещи.
Есть список файлов в pkg-plist нужно его прогнать через цикл и разложить в нужные места, скажем в ${PREFIX}
Есть Makefile c целю pre-install с содержимым:
pre-install:
@FILES!=${CAT} ${PLIST} | ${XARGS}
${ECHO} ${FILES}
Cудя по man make все должно работать.
!= Expand the value and pass it to the shell for execution and
assign the result to the variable. Any newlines in the result
are replaced with spaces.
Но не работает:
#make pre-install
FILES!=/bin/cat: not found
echo
#
Причем:
# whereis cat
cat: /bin/cat /usr/share/man/man1/cat.1.gz
Заменя переменных на абсалютные пути ни к чему не приводит.
Меняем на:
pre-install:
@FILES= ${CAT} ${PLIST} | ${XARGS}
${ECHO} ${FILES}
# make pre-install
login.access nsswitch.conf
echo
#
Тут команды экзекутятся, но не присваивается к FILES. echo - ничего не выводит.
Собвсенно вопрос: где ошибка?:)
PS: не обращайте внимание на название целей и прочее. Сделано исключительно для демонстрации ошибки.
FreeBSD 9.2-STABLE
какой версии make сказать не могу pkg which молчит.
быстрое гугление дало только
strings `which make` | grep -B1 MAKE_VERSION
9201210220
MAKE_VERSION
Спасибо.