TARGET_C=lib_test_c99 TARGET_CXX=lib_test_cxx LIB_STATIC=liblib_test.a LIB_DYN=liblib_test.so CFLAGS+=-std=c99 -g -UNDEBUG CXXFLAGS+=-std=c++11 -g -UNDEBUG SRCS+=$(wildcard *.c) OBJS_C+=$(SRCS:.c=.o99) OBJS_CXX+=$(SRCS:.c=.oxx) .PHONY: all c99 cxx lib_static lib_dyn clean all: c99 cxx lib_static lib_dyn # Build the libs using C99 lib_static: $(LIB_STATIC) lib_dyn: $(LIB_DYN) $(LIB_STATIC): $(OBJS_C) $(AR) -rc $@ $^ $(LIB_DYN): $(OBJS_C) $(CC) $(CFLAGS) -shared -o $@ $^ # C99 c99: $(TARGET_C) %.o99 : %.c $(CC) $(CFLAGS) -c $< -o $@ $(TARGET_C) : $(OBJS_C) $(CC) $(LDFLAGS) -o $@ $^ # C++ cxx: $(TARGET_CXX) %.oxx : %.c $(CXX) $(CXXFLAGS) -c $< -o $@ $(TARGET_CXX) : $(OBJS_CXX) $(CXX) $(LDFLAGS) -o $@ $^ clean: rm -f $(TARGET_C) rm -f $(TARGET_CXX) rm -f $(LIB_STATIC) rm -f $(LIB_DYN) rm -f $(OBJS_C) rm -f $(OBJS_CXX)