Ответ 1
Скорее всего, ваши директивы make не должны иметь вкладку с отступом, но начинаются в первом столбце.
Я также подозреваю, что вы хотите .if(...)
или аналогичный, а не простой ifdef
. Трудно сказать, не зная, какую реализацию make
вы используете.
В GNU make используются условные части, например. как это
ifeq ($(CC),gcc)
$(CC) -o foo $(objects) $(libs_for_gcc)
else
$(CC) -o foo $(objects) $(normal_libs)
endif
Инструкция GNU содержит все подробности.
Если вы действительно хотите протестировать переменную environment (в отличие от переменной make), просто сделайте это в командах:
SPOneDot:
if test -z "$$X"; then X=0.05; echo "X undefined, changed to $$X"; fi; \
if test -z "$$Y"; then Y=0.05; echo "Y undefined, changed to $$Y"; fi; \
python ./Submit3DSP.py -f OneDot.qdt -x $$X -y $$Y
Обратите внимание, что $$
передается оболочке как одиночный $
, и все должно быть единственной командой для оболочки, следовательно, точки с запятой и обратная косая черта/новые строки.