나는 몇 가지 다른 프로그램을 만들기 위해 만들어진 Makefile을 가지고있다. 내 SOURCES
및 OBJECTS
은 PRODUCT
에 따라 달라지며, 이는 제작되는 제품이어야합니다. 지금이 순간, 나는 각 규칙에 OBJECTS
에 대한 종속성을 나열하기 전에 PRODUCT
을 설정의존성 변수를 재평가하지 마라.
CORE_LIB := libcore
SCANNER := scanner
FLETCHER := fletcher
PRODUCT := $(SCANNER)
SOURCE_DIR := ./src
BUILD_DIR := ./build
OBJECTS_DIR := $(BUILD_DIR)/intermediate
PRODUCT_DIR := $(BUILD_DIR)/product
SOURCES = $(wildcard $(SOURCE_DIR)/$(PRODUCT)/*.c) $(wildcard $(SOURCE_DIR)/$(PRODUCT)/*/*.c)
OBJECTS = $(SOURCES:$(SOURCE_DIR)/%.c=$(OBJECTS_DIR)/%.o)
# change PRODUCT based on rule being ran
$(SCANNER): PRODUCT := $(SCANNER)
$(SCANNER): $(OBJECTS)
# link stuff
$(CORE_LIB): PRODUCT := $(CORE_LIB)
$(CORE_LIB): $(OBJECTS)
# link stuff
그러나 OBJECTS
킵은 PRODUCT
이 설정되기 전에 평가되고,하고 규칙에 따라되지 변경됩니다 않았다. 제가 빠진 것이 있습니까?
가 대단히 감사합니다. 나는 2 차 확장 솔루션과 함께 가기로 결정했는데 완벽하게 작동합니다. – amyinorbit