aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorJP Appel <jeanpierre.appel01@gmail.com>2024-07-22 14:38:04 -0400
committerJP Appel <jeanpierre.appel01@gmail.com>2024-07-22 14:38:04 -0400
commit6fe107fc27b9a900b20960335e15e4b90f93eb73 (patch)
tree137a6db145e0db1662304a893b2d46d1b70a3243 /Makefile
parent337ffc577ad20a457b086dee8b3af8bcde8c2881 (diff)
add dynamic targets to makefile
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile59
1 files changed, 49 insertions, 10 deletions
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