读书人

makefile eval 有关问题-共同探讨

发布时间: 2012-03-22 17:43:57 作者: rapoo

makefile eval 问题--共同探讨
请问一下:下面makefile中 $(1): $$($(1)_OBJS) $$($(1)_LIBS:%=-l%) 是什么意思? 尤其是 $(1)_LIBS:%=-l% 怎么理解。

##################### makefile ##########################

PROGRAMS = server client

server_OBJS = server.o server_priv.o server_access.o
server_LIBS = priv protocol

client_OBJS = client.o client_api.o client_mem.o
client_LIBS = protocol

# Everything after this is generic

.PHONY: all
all: $(PROGRAMS)

define PROGRAM_template
$(1): $$($(1)_OBJS) $$($(1)_LIBS:%=-l%)
ALL_OBJS += $$($(1)_OBJS)
endef

$(foreach prog,$(PROGRAMS),$(eval $(call PROGRAM_template,$(prog))))

$(PROGRAMS):
$(LINK.o) $^ $(LDLIBS) -o $@

clean:
rm -f $(ALL_OBJS) $(PROGRAMS)

########################### end ####################################


[解决办法]
linux shell 下 -1代表以前执行的命令的参数,
比如!-1 或者 !:! !:2 等等,

读书人网 >UNIXLINUX

热点推荐