1 |
SOURCES = $(wildcard *.c) |
SOURCES = $(wildcard *.c) |
2 |
HEADERS = $(wildcard *.h) |
HEADERS = $(wildcard *.h) $(wildcard html/*.h) |
3 |
OBJECTS = $(SOURCES:.c=.o) |
OBJECTS = $(SOURCES:.c=.o) |
4 |
BIN = freehttpd |
BIN = freehttpd |
5 |
CFLAGS = -g -O2 -Wall -Wextra -Werror -std=c23 -pedantic -pedantic-errors -pthread -D_POSIX_C_SOURCE=200809L -D_GNU_SOURCE |
CFLAGS = -g -O2 -Wall -Wextra -std=c23 -pedantic -pedantic-errors -pthread -D_POSIX_C_SOURCE=200809L -D_GNU_SOURCE |
6 |
LDFLAGS = -pthread |
LDFLAGS = -pthread |
7 |
LDLIBS = -lmagic |
LDLIBS = -lmagic |
8 |
CC = gcc |
CC = gcc |
9 |
|
SUBDIRS = html |
10 |
|
|
11 |
all: $(BIN) |
all: $(SUBDIRS) $(BIN) |
12 |
|
|
13 |
|
.PHONY: all clean $(SUBDIRS) |
14 |
|
|
15 |
|
$(SUBDIRS): |
16 |
|
$(MAKE) -C $@ |
17 |
|
|
18 |
$(BIN): $(OBJECTS) $(HEADERS) |
$(BIN): $(OBJECTS) $(HEADERS) |
19 |
|
|
20 |
$(HEADERS): $(SOURCES) |
$(HEADERS): $(SOURCES) |
21 |
|
|
22 |
clean: |
clean: |
|
rm -f $(BIN) $(OBJECTS) |
|
23 |
|
rm -f $(BIN) $(OBJECTS) |
24 |
|
for dir in $(SUBDIRS); do \ |
25 |
|
$(MAKE) -C $$dir clean; \ |
26 |
|
done |