c_simple_http/Makefile
Stephen Seo 3bace3286f
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2s
Refactor "print request headers"
Resolves #1
2024-09-09 12:41:15 +09:00

63 lines
1.4 KiB
Makefile

CC ?= gcc
COMMON_FLAGS = -Wall -Wextra -Wpedantic \
-Ithird_party
DEBUG_FLAGS = -Og -g
RELEASE_FLAGS = -O3 -DNDEBUG
ifdef RELEASE
CFLAGS = ${COMMON_FLAGS} ${RELEASE_FLAGS}
else
CFLAGS = ${COMMON_FLAGS} ${DEBUG_FLAGS}
endif
HEADERS = \
src/arg_parse.h \
src/big_endian.h \
src/tcp_socket.h \
src/globals.h \
src/signal_handling.h \
src/constants.h \
src/http.h \
src/config.h \
src/http_template.h \
src/helpers.h
SOURCES = \
src/main.c \
src/arg_parse.c \
src/big_endian.c \
src/tcp_socket.c \
src/signal_handling.c \
src/globals.c \
src/http.c \
src/config.c \
src/http_template.c \
src/helpers.c \
third_party/SimpleArchiver/src/helpers.c \
third_party/SimpleArchiver/src/data_structures/linked_list.c \
third_party/SimpleArchiver/src/data_structures/hash_map.c \
third_party/SimpleArchiver/src/data_structures/priority_heap.c \
third_party/SimpleArchiver/src/algorithms/linear_congruential_gen.c
OBJECT_DIR = objs
OBJECTS = $(addprefix ${OBJECT_DIR}/,$(patsubst %.c,%.c.o,${SOURCES}))
all: c_simple_http unit_test
c_simple_http: ${OBJECTS}
${CC} -o c_simple_http ${CFLAGS} $^
unit_test: $(filter-out ${OBJECT_DIR}/src/main.c.o,${OBJECTS}) ${OBJECT_DIR}/src/test.c.o
${CC} -o unit_test ${CFLAGS} $^
.PHONY: clean
clean:
rm -f c_simple_http
rm -f unit_test
rm -rf ${OBJECT_DIR}
${OBJECT_DIR}/%.c.o: %.c ${HEADERS}
@mkdir -p $(dir $@)
${CC} -o $@ -c ${CFLAGS} $<