В разных системах make вполне может быть разный. Их много, и все со своим синтаксисом.
Версию можно узнать ключом -v, -V или --version. У всех тоже по-разному.
Можно ещё на этой же системе сделать man make и почитать, обычно документация соответствует установленному. По ней будет хорошо видно, разный синтаксис или нет.
Здравствуйте, Посторонним В., Вы писали:
ПВ>Здравствуйте, Kirikaza, Вы писали:
K>>Попробуйте gmake под BSD.
ПВ>Так скорее всего заработает, но хотелось бы для родного BSD make выкрутиться.
Остался один вопрос. В выделенной строке я хочу из списка a.cpp b.cpp c.cpp получить список src/a.h src/b.h src/c.h
Как это сделать передавая $(SOURCES_DIR), а не "src" ?
Есть как минимум два разных pmake. Но тот pmake что идёт в составе RedHat и подобных — это BSD make из 4.4BSD-Lite (то есть достаточно старый и глючный).
Здравствуйте, Посторонним В., Вы писали:
ПВ>DEPS=$(SOURCES:%.cpp=src/%.h)
ПВ>Остался один вопрос. В выделенной строке я хочу из списка a.cpp b.cpp c.cpp получить список src/a.h src/b.h src/c.h ПВ>Как это сделать передавая $(SOURCES_DIR), а не "src" ?
Может, используя :S ?
А то вот такие примеры есть:
_S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://}
PATCH_SITES_TMP+= ${site:S^%SUBDIR%^\${dir}^}
_IGNOREFILES?= ${IGNOREFILES:S/^/${DIST_SUBDIR}\//}
.for lang in ${MANLANG:S%^%man/%:S%^man/""$%man%:S%^man/"$%man%}
_MANPAGES+= ${MAN${sect}_${manlang:S%^man/%%:U}:S%^%${MAN${sect}PREFIX}/${manlang}/man${sect:L}/%}
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Посторонним В., Вы писали:
ПВ>>DEPS=$(SOURCES:%.cpp=src/%.h)
ПВ>>Остался один вопрос. В выделенной строке я хочу из списка a.cpp b.cpp c.cpp получить список src/a.h src/b.h src/c.h ПВ>>Как это сделать передавая $(SOURCES_DIR), а не "src" ?
N>Может, используя :S ?
Cпасибо, c :S заработало!
...
# replace .cpp with .h
DEPS=$(SOURCES:%.cpp=%h)
# add $(SOURCES_DIR)/ to each header
DEPS:=${DEPS:S/^/$(SOURCES_DIR)\//}
...