LINUX.ORG.RU

ошибка в makefile

 , ,


0

1

здравствуйте, в debian/rules пакета gcc-6 есть файл debian/rules.d/binary-libstdcxx.mk... в нем определен define(условие ifneq добавил я сам):

define __do_libstdcxx_dev
    /.что-то еще../
    ifneq($(2),32)
    mv $(d)/$(usr_lib$(2))/libstdc++.a $(d)/$(usr_lib$(2))/libstdc++fs.a $(d)/$(usr_lib$(2))/libsupc++.a $(d)/$(gcc_lib_dir$(2))
    endif

вызывается так:

$(binary_stamp)-lib32stdcxx-dev: $(install_stamp)
    $(call do_libstdcxx_dev,32)

в итоге пишет

/bin/bash: -c: line 0: syntax error near unexpected token `32,32'

если убрать условие, то синтаксически все верно, но мне надо именно отфильтровать чтобы при 32 не вызывался mv... помогите

★★

Последнее исправление: xperious (всего исправлений: 1)

хм, так прокатывает:

$(if $(filter $(2), 32),
           $(mv $(d)/$(usr_lib$(2))/libstdc++.a $(d)/$(usr_lib$(2))/libstdc++fs.a $(d)/$(usr_lib$(2))/libsupc++.a $(d)/$(gcc_lib_dir$(2)))
)

xperious ★★
() автор топика
Последнее исправление: xperious (всего исправлений: 1)
Ответ на: комментарий от xperious

В переменной $(2) мусор в виде знака `

Deleted
()

в общем вот так надо было:

$(if $(filter-out $(2), 32),
           $(mv $(d)/$(usr_lib$(2))/libstdc++.a $(d)/$(usr_lib$(2))/libstdc++fs.a $(d)/$(usr_lib$(2))/libsupc++.a $(d)/$(gcc_lib_dir$(2)))
)

xperious ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.