CXX=g++ CPPFLAGS=-c -Wall -std=c++11 -I../include LDFLAGS= OBJDIR=obj LIBDIR=../lib SOURCES=my_lib.cpp # //OBJECTS=$(OBJDIR)$(SOURCES:.cpp=.o) OBJECTS=$(foreach bname, $(basename $(SOURCES)), $(OBJDIR)/$(bname).o) LIB=$(LIBDIR)/libmy_lib.a all: $(LIB) $(OBJDIR): mkdir $@ $(LIBDIR): mkdir $@ $(LIB): $(OBJECTS) | $(LIBDIR) ar -rcs $@ $< $(OBJDIR)/%.o: %.cpp | $(OBJDIR) $(CXX) $(CPPFLAGS) $< -o $@ clean: rm -f $(OBJECTS) $(LIB)