Makefile: включить в цикл / цикл внешние цели - PullRequest
0 голосов
/ 10 октября 2018

В моем make-файле я хочу включить какой-нибудь другой make-файл в зависимости от переменной в цикл for. Возможно ли это.

Top Makefile:

CC          = gcc
CFLAGS      = -O0 -g3 -W -Wall -pedantic
LDFLAGS     =

DEFINES     =
PROJECT     = proj

INCLUDES    =
SOURCES     =

TEMP_PATH   := $(PROJECT)
include $(TEMP_PATH)/Makefile

$(for blocks in $(BLOCKS); do \
    include $$(blocks)/Makefile; \
done)

all : $(PROJECT).exe

$(PROJECT).exe :
    $(CC) $(CFLAGS) $(LDFLAGS) $(DEFINES) $(INCLUDES) $(SOURCES) -o $@

clean :
    rm -rf *.exe

proj / Makefile:

CC          =   gcc
CFLAGS      = -O0 -g3 -W -Wall -pedantic
LDFLAGS     = 

DEFINES     =  

BLOCKS      := std_communication

INCLUDES    := $(INCLUDES) -I $(TEMP_PATH)/Utils
INCLUDES    := $(INCLUDES) -I $(TEMP_PATH)/Communication

SOURCES     := $(SOURCES) $(wildcard $(TEMP_PATH)/Utils/*.c)
SOURCES     := $(SOURCES) $(wildcard $(TEMP_PATH)/Communication/*.c)
SOURCES     := $(SOURCES) $(wildcard $(TEMP_PATH)/main.c)

Синтаксис цикла for кажется неправильным вне цикла.

1 Ответ

0 голосов
/ 10 октября 2018

Вы не можете написать это так, но вы можете просто написать:

include $(addsuffix /Makefile,$(BLOCKS))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...