CC = gcc CFLAGS = -Wall -Wextra -O2 -fPIC -D_GNU_SOURCE LDFLAGS = -shared -lpthread -lrt TARGET = libcrt.so OBJS = shm.o ringbuf.o cache.o .PHONY: all clean test all: $(TARGET) $(TARGET): $(OBJS) $(CC) $(LDFLAGS) -o $@ $^ %.o: %.c %.h $(CC) $(CFLAGS) -c $< -o $@ test: test_crt ./test_crt test_crt: test_crt.c $(TARGET) $(CC) -o $@ $< -L. -lcrt -Wl,-rpath,. clean: rm -f $(OBJS) $(TARGET) test_crt