OBJS = $(patsubst %.cxx, %.o, \ $(patsubst %.cpp, %.o, \ $(patsubst %.cc, %.o, \ $(patsubst %.c, %.o, $(SRCS))))) all: lib$(LIB).a lib$(LIB).so.$(SHLIB_MAJOR).$(SHLIB_MINOR) lib$(LIB).a: $(OBJS) $(AR) rcs $@ $^ ifneq ($(SHLIB_MAJOR)$(SHLIB_MINOR),) SHLIB_CMD = $(CC) $(LDFLAGS) -shared -fPIC -o $@ $^ endif lib$(LIB).so.$(SHLIB_MAJOR).$(SHLIB_MINOR): $(OBJS) $(SHLIB_CMD) clean: rm -rf $(OBJS) lib$(LIB).a lib$(LIB).so.$(SHLIB_MAJOR).$(SHLIB_MINOR) %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ %.o: %.cxx $(CXX) $(CXXFLAGS) -c $< -o $@ %.o: %.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ %.o: %.cc $(CXX) $(CXXFLAGS) -c $< -o $@ .PHONY: all clean