Makefile теряет конфигурацию - PullRequest
1 голос
/ 09 июля 2020

Я в значительной степени новичок в создании make-файлов, поэтому я даже не знаю терминологии, которую ищу. Я пытаюсь собрать последнюю версию valgrind вместе с другими сторонними инструментами, которые использует моя компания. У меня в основном

../3rdparty/
           /Makefile <- What gets called to recursively build everything
           /valgrind/Makefile <- What I'm pasting below
           /valgrind/valgrind-3.16.1/Makefile <- what gets configure'd

, поэтому я могу go войти в ../3rdparty/valgrind/valgrind-3.16.0/ и позвонить ...

./configure --host=arm-linux-gnueabihf
make

... и добиться успеха без проблем. Однако, когда я пытаюсь собрать его из Makefile в ../3rdparty/valgrind, я получаю ошибки из-за потери сгенерированных конфигурацией переменных. Я вижу, как он все очищает, я вижу, что конфигурация прошла успешно, но когда начинается процесс make, я получаю предупреждения, которых не видно при использовании описанного выше процесса.

cc1: warning: switch -mcpu=cortex-a8 conflicts with -march=armv7ve switch

Что в конечном итоге приводит к ошибке

<command-line>:0:5: error: expected identifier or ‘(’ before numeric constant pub_core_basics.h:78:12: note: in expansion of macro ‘ARM’

Я в основном копирую, вставил то, что используется для других сторонних библиотек в нашу кодовую базу, и внес изменения там, где это применимо ....

include ../common.mak
VERSION=valgrind-3.16.1

all:  configure build #install

configure: configure_$(TARGET)
configure_$(TARGET):
        $(MAKE) distclean
        @echo -e "\nConfiguring $(VERSION) for $(TARGET)...\n"
        pushd $(VERSION)/ \
      && bash configure --host=${TARGET} \
      && popd
        touch $@
        @echo -e "\nConfiguration $(VERSION) complete for $(TARGET)...\n"

build: configure
        $(MAKE) "-SC" $(VERSION)

install: build
        $(MAKE) -SC $(VERSION) $@

# call folder's makefile targets verbatim
clean distclean:
        test -f $(VERSION)/Makefile && $(MAKE) -SC $(VERSION) $@ || :
        rm -f configure_*

uninstall:
        $(MAKE) -SC $(VERSION) $@

Я предполагаю, что это одна строчка, но мне также были бы интересны любые документы или веб-сайты, которые были бы полезны. Множество руководств по make файлам go по тому же материалу super basi c.

...