Я пытаюсь использовать переменную командной строки, чтобы выбрать набор инструментов, который мы используем для компиляции. В командной строке я использую строку типа:
make all-arm OUR_TOOLKIT=1
И в каждом подразумеваемом make-файле я добавляю это include
include ARM_Compiler.inc
Затем в каждом make-файле
all: setToolkit $(otherOperations)
А содержимое ARM _Compiler — это логика выбора компилятора:
setToolkit:
ifdef OUR_TOOLKIT
TOOLKIT=1
endif
ifdef CUSTOMER_TOOLKIT
TOOLKIT=2
endif
ifeq ($(TOOLKIT), 1)
$(info "=========Our toolkit selected======================")
rm=/bin/rm -f
CC= arm-linux-c++ -fPIC
CXX= arm-linux-c++ -fPIC
LINK= arm-linux-c++ -shared -Wl
AR= ar cq
RANLIB= ranlib
STRIP=arm-linux-strip
# para que se utilicen las herramientas y librerias del cross compiler
PATH:=$(PATH):/path/to/our/toolkit
LD_LIBRAY_PATH:=$(LD_LIBRAY_PATH):/path/to/our/toolkit
endif
ifeq ($(TOOLKIT), 2)
$(info "================Customer toolkit selected====================")
rm=/bin/rm -f
CC= arm-none-linux-gnueabi-c++ -fPIC
CXX= arm-none-linux-gnueabi-c++ -fPIC
LINK= arm-none-linux-gnueabi-c++ -shared -Wl
AR= ar cq
RANLIB= ranlib
STRIP= arm-none-linux-gnueabi-strip
# para que se utilicen las herramientas y librerias del cross compiler
PATH:=$(PATH):/path/to/other/toolkit
LD_LIBRAY_PATH:=$(LD_LIBRAY_PATH):/path/to/other/toolkit
endif
Благодаря помощи 0A0D я обнаружил, что значение TOOLKIT всегда пустое. Я немного изменил код.Теперь проблема в том, что make выдает ошибку
../makefile-includes/ARM-compiler.inc:10: *** commands commence before first target
в этой строке:
ifeq ($(TOOLKIT), 1)
У кого-нибудь есть идея? Спасибо