CC := gcc CFLAGS := -Wall DEBUG_FLAGS := -ggdb -Og VERSION:= 0.1 BUILD_DIR := build SRCS := eztester.c eztester_list.c STATIC_OBJS := $(addprefix $(BUILD_DIR)/static/,$(SRCS:.c=.o)) DYNAMIC_OBJS := $(addprefix $(BUILD_DIR)/dynamic/,$(SRCS:.c=.o)) STATIC_LIBS := $(BUILD_DIR)/static/libeztester.a $(BUILD_DIR)/static/libeztester_debug.a DYNAMIC_LIBS := $(BUILD_DIR)/dynamic/libeztester.so $(BUILD_DIR)/dynamic/libeztester_debug.so dynamic_so := -Wl,-soname,libeztester.so.1 .PHONY: all static dynamic clean info all: static dynamic header #static static: $(STATIC_LIBS) $(BUILD_DIR)/static/libeztester.a: $(STATIC_OBJS) ar rcs $@ $^ $(BUILD_DIR)/static/libeztester_debug.a: $(STATIC_OBJS:.c=_debug.o) ar rcs $@ $^ $(BUILD_DIR)/static/%.o: %.c $(BUILD_DIR)/static $(CC) -c $(CFLAGS) -O3 -o $@ $< $(BUILD_DIR)/static/%_debug.o: %.c $(BUILD_DIR)/static $(CC) -c $(DEBUG_FLAGS) $(CFLAGS) -o $@ $< $(BUILD_DIR)/static: mkdir -p $@ # dynamic dynamic: $(DYNAMIC_LIBS) $(BUILD_DIR)/dynamic/libeztester.so: $(DYNAMIC_OBJS) $(CC) -shared -o $@ $^ $(BUILD_DIR)/dynamic/libeztester_debug.so: $(DYNAMIC_OBJS:.c=_debug.o) $(CC) -shared -o $@ $^ $(BUILD_DIR)/dynamic/%.o: %.c $(BUILD_DIR)/dynamic $(CC) -fpic -c $(CFLAGS) -O3 -o $@ $< $(BUILD_DIR)/dynamic/%_debug.o: %.c $(BUILD_DIR)/dynamic $(CC) -fpic -c $(CFLAGS) $(DEBUG_FLAGS) -o $@ $< $(BUILD_DIR)/dynamic: mkdir -p $@ # header header: $(BUILD_DIR)/header/eztester.h $(BUILD_DIR)/header/eztester.h: eztester.h $(SRCS) $(BUILD_DIR)/header cat $< > $@ echo "#ifdef EZTESTER_IMPLEMENTATION" >> $@ sed '/include "eztester.h"/d' $(SRCS) >> $@ echo "#endif" >> $@ $(BUILD_DIR)/header: mkdir -p $@ info: @echo "SRCS: $(SRCS)" @echo "STATIC_OBJS: $(STATIC_OBJS)" @echo "STATIC_LIBS: $(STATIC_LIBS)" @echo "DYNAMIC_OBJS: $(DYNAMIC_OBJS)" @echo "DYNAMIC_LIBS: $(DYNAMIC_LIBS)" clean: rm -rf $(BUILD_DIR)/*