2013-10-08 114 views
0

我有一些目標(讓我們說3)。所以makefile運行後,我想有3個可執行文件。Makefile:多個目標的相同規則

這就是我現在做:

CC  = gcc 
CFLAGS = -Wall -pedantic -ansi 

ECHO = server_echo 
ECHO_O = echo.o 

FOO = server_foo 
FOO_O = foo.o 

ALL = $(ECHO) $(FOO) 
ALL_O = ECHO_O FOO_O 

all: $(ALL) 

$(ECHO): $(ECHO_O) 
     $(CC) $(CFLAGS) -o $(ECHO) $(ECHO_O) 

$(FOO): $(FOO_O) 
     $(CC) $(CFLAGS) -o $(FOO) $(FOO_O) 

.PHONY: clean 
clean:   
     - rm -f $(ALL) 
     - rm -f *.o 
     - rm -f core 

%.o: %.c 
     $(CC) $(CFLAGS) -c $< 

.PHONY: mci 
mci: clean $(ALL) 

有我有規則重複的目標$(ECHO)和$(FOO)。有沒有辦法,我可以消除重複?就像:

for target, target_o in $(ALL), $(ALL_O) 
target: target_o 
    $(CC) $(CFLAGS) -o target target_o 
end for 

或者有另一種方法來解決我的問題嗎?

感謝您的幫助

回答