CC = gcc CFLAGS = -Wall -Wextra -std=c99 LDFLAGS = # Static build static: main_static main_static: main_static.o textlib_static.o $(CC) $(CFLAGS) -o $@ main_static.o textlib_static.o main_static.o: main_static.c textlib_static.h $(CC) $(CFLAGS) -c -o $@ main_static.c textlib_static.o: textlib_static.c textlib_static.h $(CC) $(CFLAGS) -c -o $@ textlib_static.c # Dynamic build dynamic: main_dynamic libtextlib.so main_dynamic: main_dynamic.o $(CC) $(CFLAGS) -o $@ main_dynamic.o -ldl main_dynamic.o: main_dynamic.c $(CC) $(CFLAGS) -c -o $@ main_dynamic.c libtextlib.so: textlib_dynamic.c $(CC) $(CFLAGS) -fPIC -shared -o $@ textlib_dynamic.c # Build both all: static dynamic # Clean clean: rm -f *.o main_static main_dynamic libtextlib.so out.txt @echo "Cleaned build artifacts." .PHONY: all static dynamic clean