2009-08-02 26 views
5

Tôi có GNU makefile sau:Re-thực hiện mục tiêu khi quy định như phụ thuộc vào nhiều quy tắc

.PHONY a b c d 

a: b c 
b: d 
c: d 
d: 
    echo HI 

Tôi muốn mục tiêu 'd' được chạy hai lần - vì nó được xác định là một phụ thuộc bởi cả hai b & c. Thật không may, mục tiêu 'd' sẽ chỉ được thực hiện một lần. Đầu ra của việc thực hiện chạy sẽ đơn giản là 'HI', thay vì 'HI HI'.

Làm cách nào để khắc phục sự cố này?

Cảm ơn!

Để Làm rõ, mục tiêu là một cái gì đó như thế này:

subdirs = a b c 

build: x y 

x: target=build 
x: $(subdirs) 

y: target=prepare 
y: $(subdirs) 

$(subdirs): 
    $(make) -f [email protected]/makefile $(target) 

Trả lời

1

Bạn đang cố gắng để làm một cái gì đó như thế này:

.PHONY: a b c 

define print-hi 
@echo HI 
endef 

a: b c 
b: 
    $(print-hi) 
c: 
    $(print-hi) 
+0

Không hoàn toàn. Nhiều hơn một cái gì đó như thế này: subdirs = abc xây dựng: xy x: target = xây dựng x: $ (subdirs) y: target = chuẩn bị z: $ (subdirs) $ (subdirs): $ (make) -f $ @/makefile $ (mục tiêu) –

Các vấn đề liên quan