This commit is contained in:
2025-10-21 20:45:45 +07:00
parent e0d0c21c53
commit 9216d798ac
10 changed files with 184 additions and 19 deletions

View File

@@ -1,27 +1,37 @@
# Makefile
CC = gcc
CFLAGS = -Wall -Wextra -std=c99
LDFLAGS = -ldl
LDFLAGS =
# Цель по умолчанию
all: task12 libtextlib.so
# Static build
static: main_static
# Основная программа
task12: task12.c
$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
main_static: main_static.o textlib_static.o
$(CC) $(CFLAGS) -o $@ main_static.o textlib_static.o
# Динамическая библиотека
libtextlib.so: textlib.c
$(CC) $(CFLAGS) -fPIC -shared -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 task12 libtextlib.so input.txt output.txt
rm -f *.o main_static main_dynamic libtextlib.so out.txt
@echo "Cleaned build artifacts."
# Тест
test: all
echo -e "Hello world\ntest line\nanother" > input.txt
./task12 input.txt output.txt 5 ./libtextlib.so
cat output.txt
.PHONY: all clean test
.PHONY: all static dynamic clean