From 6fe107fc27b9a900b20960335e15e4b90f93eb73 Mon Sep 17 00:00:00 2001 From: JP Appel Date: Mon, 22 Jul 2024 14:38:04 -0400 Subject: add dynamic targets to makefile --- Makefile | 59 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 10 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index c0624ae..fe11165 100644 --- a/Makefile +++ b/Makefile @@ -2,25 +2,64 @@ CC := gcc CFLAGS := -Wall DEBUG_FLAGS := -ggdb -Og -SRCS := eztester.c -OBJS := eztester.o eztester_debug.o -STATIC_LIBS := libeztester.a libeztester_debug.a -DYNAMIC_LIBS := libeztester.a libeztester_debug.a +VERSION:= 0.1 -.PHONY: all static clean +BUILD_DIR := build +SRCS := eztester.c test_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 all: $(STATIC_LIBS) +.PHONY: all static dynamic clean info + +all: $(STATIC_LIBS) $(DYNAMIC_LIBS) + +#static static: $(STATIC_LIBS) -%.o: %.c +$(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 $@ $< -%_debug.o: %.c +$(BUILD_DIR)/static/%_debug.o: %.c $(BUILD_DIR)/static $(CC) -c $(DEBUG_FLAGS) $(CFLAGS) -o $@ $< -lib%.a: %.o - ar rcs $@ $< +$(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 $@ + +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 $(STATIC_LIBS) $(OBJS) + rm -rf $(BUILD_DIR)/static $(BUILD_DIR)/dynamic -- cgit v1.2.3