43 lines
1.2 KiB
Makefile
43 lines
1.2 KiB
Makefile
|
|
CC = gcc
|
|
CFLAGS = -I. -Wall -Wextra -O0 -g3
|
|
LFLAGS = -lssl -lcrypto
|
|
|
|
CFILES = $(shell find src -name "*.c")
|
|
HFILES = $(shell find src -name "*.h")
|
|
|
|
# Detect OS and set executable extension
|
|
ifeq ($(OS),Windows_NT)
|
|
EXT = .exe
|
|
else
|
|
EXT = .out
|
|
endif
|
|
|
|
EXAMPLES_CLIENT_SRC := $(shell ls examples/client/*.c 2>/dev/null)
|
|
EXAMPLES_SERVER_SRC := $(shell ls examples/server/*.c 2>/dev/null)
|
|
EXAMPLES_ENGINE_SRC := $(shell ls examples/engine/*.c 2>/dev/null)
|
|
|
|
EXAMPLES_CLIENT := $(patsubst %.c,%$(EXT),$(EXAMPLES_CLIENT_SRC))
|
|
EXAMPLES_SERVER := $(patsubst %.c,%$(EXT),$(EXAMPLES_SERVER_SRC))
|
|
EXAMPLES_ENGINE := $(patsubst %.c,%$(EXT),$(EXAMPLES_ENGINE_SRC))
|
|
|
|
all: chttp.c chttp.h examples
|
|
|
|
chttp.c chttp.h: $(HFILES) $(CFILES)
|
|
python misc/amalg.py
|
|
|
|
examples: $(EXAMPLES_CLIENT) $(EXAMPLES_SERVER) $(EXAMPLES_ENGINE)
|
|
|
|
examples/client/%$(EXT): examples/client/%.c chttp.c chttp.h
|
|
$(CC) $(CFLAGS) $< chttp.c -o $@ $(LFLAGS)
|
|
|
|
examples/server/%$(EXT): examples/server/%.c chttp.c chttp.h
|
|
$(CC) $(CFLAGS) $< chttp.c -o $@ $(LFLAGS)
|
|
|
|
examples/engine/%$(EXT): examples/engine/%.c chttp.c chttp.h
|
|
$(CC) $(CFLAGS) $< chttp.c -o $@ $(LFLAGS)
|
|
|
|
clean:
|
|
rm -f client_example server_example
|
|
rm -f examples/client/*$(EXT) examples/server/*$(EXT) examples/engine/*$(EXT)
|