Tuesday, August 14, 2007

make - patsubst

Qestions: OBJS_GROUP and OBJS_GROUP2 are the same?

Here is the Makefile:

SRCS_FOO = foo1.cpp foo2.cpp
SRCS_BAR = bar.s
SRCS_GRP = $(SRCS_FOO) $(SRCS_BAR)
OBJS_FOO = $(SRCS_FOO:.cpp=.o)
OBJS_BAR = $(SRCS_BAR:.s=.o)
OBJS_GROUP = $(patsubst %.s,%.o, $(patsubst %.cpp,%.o, $(SRCS_GRP)))
OBJS_GROUP2 = $(patsubst %.s, %.o, $(SRCS_GRP:.cpp=.o))
debug:
@echo "objs list..." $(OBJS_GROUP)
@echo "objs list..." $(OBJS_GROUP2)
@echo "foos list..." $(OBJS_FOO)
@echo "bars list..." $(OBJS_BAR)


Answer: both generates "foo1.o foo2.o bar.o".