You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

54 lines
855 B

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)