37 lines
832 B
Makefile
37 lines
832 B
Makefile
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 |